Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_UndressBeamLeptons_HH
0003 #define RIVET_UndressBeamLeptons_HH
0004 
0005 #include "Rivet/Projections/Beam.hh"
0006 #include "Rivet/Projections/FinalState.hh"
0007 
0008 namespace Rivet {
0009 
0010 
0011   /// @brief Incoming lepton beams with collinear photons subtracted
0012   class UndressBeamLeptons : public Beam {
0013   public:
0014 
0015     using Beam::operator=;
0016 
0017     /// @brief Constructor with an angle as argument
0018     ///
0019     /// The momentum of any photon within this angle w.r.t. a charged
0020     /// lepton beam will be subtracted from the beam-lepton momentum.
0021     UndressBeamLeptons(double theta = 0.0): _thetamax(theta) {
0022       setName("UndressBeamLeptons");
0023       declare(FinalState(), "FS");
0024     }
0025 
0026     /// Clone on the heap
0027     RIVET_DEFAULT_PROJ_CLONE(UndressBeamLeptons);
0028 
0029     /// Import to avoid warnings about overload-hiding
0030     using Projection::operator =;
0031 
0032 
0033     /// Project on to the Event
0034     virtual void project(const Event& e);
0035 
0036 
0037   protected:
0038 
0039     /// Compare with other projections.
0040     virtual CmpState compare(const Projection & p) const;
0041 
0042     /// The beam particles in the current collision
0043     double _thetamax;
0044 
0045   };
0046 
0047 
0048 }
0049 
0050 #endif