Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_VisibleFinalState_HH
0003 #define RIVET_VisibleFinalState_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 Final state modifier excluding particles which are not experimentally visible
0016   class VisibleFinalState : public FinalState {
0017   public:
0018 
0019     /// @name Constructors
0020     /// @{
0021 
0022     /// Constructor with min and max pseudorapidity \f$ \eta \f$ and min \f$ p_T \f$ (in GeV).
0023     VisibleFinalState(const Cut& c=Cuts::open())
0024     {
0025       setName("VisibleFinalState");
0026       declare(FinalState(c), "FS");
0027     }
0028 
0029     /// Constructor with specific FinalState.
0030     VisibleFinalState(const FinalState& fsp)
0031     {
0032       setName("VisibleFinalState");
0033       declare(fsp, "FS");
0034     }
0035 
0036     /// Clone on the heap.
0037     RIVET_DEFAULT_PROJ_CLONE(VisibleFinalState);
0038 
0039     /// @}
0040 
0041     /// Import to avoid warnings about overload-hiding
0042     using Projection::operator =;
0043 
0044 
0045     /// Apply the projection on the supplied event.
0046     void project(const Event& e);
0047 
0048     /// Compare projections.
0049     CmpState compare(const Projection& p) const;
0050 
0051   };
0052 
0053 
0054 }
0055 
0056 #endif