Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_GammaGammaKinematics_HH
0003 #define RIVET_GammaGammaKinematics_HH
0004 
0005 #include "Rivet/Particle.hh"
0006 #include "Rivet/Event.hh"
0007 #include "Rivet/Projection.hh"
0008 #include "Rivet/Projections/GammaGammaLeptons.hh"
0009 #include "Rivet/Projections/Beam.hh"
0010 
0011 namespace Rivet {
0012 
0013 
0014   /// @brief Get the gamma gamma kinematic variables and relevant boosts for an event.
0015   class GammaGammaKinematics : public Projection {
0016   public:
0017 
0018     /// The default constructor.
0019     GammaGammaKinematics(const GammaGammaLeptons& lepton=GammaGammaLeptons())
0020       : _theQ2(make_pair(-1.0,-1.0)), _theW2(-1.0)
0021     {
0022       setName("GammaGammaKinematics");
0023       //addPdgIdPair(ANY, hadid);
0024       declare(Beam(), "Beam");
0025       declare(lepton, "Lepton");
0026     }
0027 
0028     /// Clone on the heap.
0029     RIVET_DEFAULT_PROJ_CLONE(GammaGammaKinematics);
0030 
0031 
0032     /// Import to avoid warnings about overload-hiding
0033     using Projection::operator =;
0034 
0035 
0036   protected:
0037 
0038     /// Perform the projection operation on the supplied event.
0039     virtual void project(const Event& e);
0040 
0041     /// Compare with other projections.
0042     virtual CmpState compare(const Projection& p) const;
0043 
0044 
0045   public:
0046 
0047     /// The \f$Q^2\f$.
0048     pair<double,double> Q2() const { return _theQ2; }
0049 
0050     /// The \f$W^2\f$.
0051     double W2() const { return _theW2; }
0052 
0053     /// The incoming lepton beam particle
0054     const ParticlePair& beamLeptons() const {
0055       return _inLepton;
0056     }
0057 
0058     /// The scattered GammaGamma lepton
0059     const ParticlePair & scatteredLeptons() const {
0060       return _outLepton;
0061     }
0062 
0063 
0064 
0065   protected:
0066 
0067     /// The \f$Q^2\f$.
0068     pair<double,double> _theQ2;
0069 
0070     /// The \f$W^2\f$.
0071     double _theW2;
0072 
0073     /// Incoming and outgoing GammaGamma particles
0074     ParticlePair _inLepton, _outLepton;
0075 
0076   };
0077 
0078 
0079 }
0080 
0081 #endif