Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_NonHadronicFinalState_HH
0003 #define RIVET_NonHadronicFinalState_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 NonHadronicFinalState : public FinalState {
0017   public:
0018 
0019     /// Constructor: the supplied FinalState projection is assumed to live through the run.
0020     NonHadronicFinalState(FinalState& fsp)
0021     {
0022       setName("NonHadronicFinalState");
0023       declare(fsp, "FS");
0024     }
0025 
0026     NonHadronicFinalState(const Cut& c=Cuts::open())
0027     {
0028       setName("NonHadronicFinalState");
0029       declare(FinalState(c), "FS");
0030     }
0031 
0032     /// Clone on the heap.
0033     RIVET_DEFAULT_PROJ_CLONE(NonHadronicFinalState);
0034 
0035     /// Import to avoid warnings about overload-hiding
0036     using Projection::operator =;
0037 
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 
0051 #endif