Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_NeutralFinalState_HH
0003 #define RIVET_NeutralFinalState_HH
0004 
0005 #include "Rivet/Projections/FinalState.hh"
0006 
0007 namespace Rivet {
0008 
0009 
0010   /// @brief Project only neutral final state particles.
0011   class NeutralFinalState : public FinalState {
0012   public:
0013 
0014     /// @name Constructors
0015     /// @{
0016 
0017     /// Construction from another FinalState
0018     NeutralFinalState(const FinalState& fsp, double etmin=0*GeV)
0019       : _Etmin(etmin)
0020     {
0021       setName("NeutralFinalState");
0022       declare(fsp, "FS");
0023     }
0024 
0025     /// Construction using Cuts object
0026     NeutralFinalState(const Cut& c=Cuts::open()) : _Etmin(0.0*GeV) {
0027       setName("NeutralFinalState");
0028       declare(FinalState(c), "FS");
0029     }
0030 
0031     /// Clone on the heap.
0032     RIVET_DEFAULT_PROJ_CLONE(NeutralFinalState);
0033 
0034     /// @}
0035 
0036     /// Import to avoid warnings about overload-hiding
0037     using Projection::operator =;
0038 
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   protected:
0048 
0049     /// The minimum allowed transverse energy.
0050     /// @todo Remove in favour of a Cut
0051     double _Etmin;
0052 
0053   };
0054 
0055 
0056 }
0057 
0058 
0059 #endif