Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-13 10:26:11

0001 // -*- C++ -*-
0002 #ifndef RIVET_MergedFinalState_HH
0003 #define RIVET_MergedFinalState_HH
0004 
0005 #include "Rivet/Tools/Logging.hh"
0006 #include "Rivet/Config/RivetCommon.hh"
0007 #include "Rivet/Particle.hh"
0008 #include "Rivet/Event.hh"
0009 #include "Rivet/Projection.hh"
0010 #include "Rivet/Projections/FinalState.hh"
0011 
0012 namespace Rivet {
0013 
0014 
0015   /// @brief Get final state particles merged from two FinalState projections.
0016   ///
0017   /// @todo Extend to merging many FS projections
0018   class MergedFinalState : public FinalState {
0019   public:
0020 
0021     /// @name Constructors
0022     /// @{
0023     MergedFinalState(const FinalState& fspa, const FinalState& fspb) {
0024       setName("MergedFinalState");
0025       declare(fspa, "FSA");
0026       declare(fspb, "FSB");
0027     }
0028 
0029     /// Clone on the heap.
0030     RIVET_DEFAULT_PROJ_CLONE(MergedFinalState);
0031 
0032     /// @}
0033 
0034     /// Import to avoid warnings about overload-hiding
0035     using Projection::operator =;
0036 
0037 
0038   protected:
0039 
0040     /// Apply the projection on the supplied event.
0041     void project(const Event& e);
0042 
0043     /// Compare projections.
0044     CmpState compare(const Projection& p) const;
0045   };
0046 
0047 
0048 }
0049 
0050 
0051 #endif