Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-05-12 09:05:02

0001 // -*- C++ -*-
0002 #ifndef RIVET_HadronicFinalState_HH
0003 #define RIVET_HadronicFinalState_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 Project only hadronic final state particles.
0016   class HadronicFinalState : public FinalState {
0017   public:
0018 
0019     /// Constructor: the supplied FinalState projection is assumed to live through the run.
0020     HadronicFinalState(const FinalState& fsp) {
0021       setName("HadronicFinalState");
0022       declare(fsp, "FS");
0023     }
0024 
0025     HadronicFinalState(const Cut& c=Cuts::open()) {
0026       setName("HadronicFinalState");
0027       declare(FinalState(c), "FS");
0028     }
0029 
0030     /// Clone on the heap.
0031     RIVET_DEFAULT_PROJ_CLONE(HadronicFinalState);
0032 
0033     /// Import to avoid warnings about overload-hiding
0034     using Projection::operator =;
0035 
0036 
0037   protected:
0038 
0039     /// Apply the projection on the supplied event.
0040     void project(const Event& e);
0041 
0042     /// Compare projections.
0043     CmpState compare(const Projection& p) const;
0044 
0045   };
0046 
0047 
0048 }
0049 
0050 #endif