Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_GammaGammaFinalState_HH
0003 #define RIVET_GammaGammaFinalState_HH
0004 
0005 #include "Rivet/Projections/FinalState.hh"
0006 #include "Rivet/Projections/GammaGammaKinematics.hh"
0007 
0008 namespace Rivet {
0009 
0010 
0011   /// @brief Final state particles boosted to the hadronic center of mass system.
0012   ///
0013   /// NB. The GammaGamma scattered leptons are not included in the final state particles.
0014   class GammaGammaFinalState: public FinalState {
0015   public:
0016 
0017     /// @name Constructors
0018     /// @{
0019     /// Constructor with optional FinalState
0020     /// @note The GammaGammaKinematics has no parameters, hence explicitly passing it as an arg shouldn't be necessary.
0021     GammaGammaFinalState(const FinalState& fs=FinalState(), const GammaGammaKinematics& kinematicsp=GammaGammaKinematics())
0022     {
0023       setName("GammaGammaFinalState");
0024       declare(fs, "FS");
0025       declare(kinematicsp, "Kinematics");
0026     }
0027 
0028     /// Constructor with explicit cuts to define final-state particles
0029     /// @note The GammaGammaKinematics has no parameters, hence explicitly passing it as an arg shouldn't be necessary.
0030     GammaGammaFinalState(const Cut& c, const GammaGammaKinematics& kinematicsp=GammaGammaKinematics())
0031       : GammaGammaFinalState(FinalState(c), kinematicsp)
0032     {    }
0033 
0034     // /// @brief Constructor with default FinalState
0035     // /// @note The GammaGammaKinematics has no parameters, hence explicitly passing it as an arg shouldn't be necessary.
0036     // GammaGammaFinalState(const GammaGammaKinematics& kinematicsp=GammaGammaKinematics())
0037     //   : GammaGammaFinalState(FinalState(), kinematicsp)
0038     // {    }
0039 
0040 
0041     /// Clone on the heap.
0042     RIVET_DEFAULT_PROJ_CLONE(GammaGammaFinalState);
0043 
0044     /// @}
0045 
0046 
0047     /// Import to avoid warnings about overload-hiding
0048     using Projection::operator =;
0049 
0050 
0051   protected:
0052 
0053     /// Apply the projection on the supplied event.
0054     void project(const Event& e);
0055 
0056     /// Compare projections.
0057     CmpState compare(const Projection& p) const {
0058       return mkNamedPCmp(p, "Kinematics") || mkNamedPCmp(p, "FS");
0059     }
0060 
0061 
0062   };
0063 
0064 
0065 }
0066 
0067 #endif