Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_DISDiffHadron_HH
0003 #define RIVET_DISDiffHadron_HH
0004 
0005 #include "Rivet/Projections/Beam.hh"
0006 #include "Rivet/Projections/HadronicFinalState.hh"
0007 #include "Rivet/Particle.hh"
0008 #include "Rivet/Event.hh"
0009 
0010 namespace Rivet {
0011 
0012 
0013   /// @brief Get the incoming and outgoing hadron in a diffractive ep
0014   /// event.
0015   class DISDiffHadron : public Projection {
0016   public:
0017 
0018     /// @name Constructors.
0019     /// @{
0020 
0021     /// Default constructor.
0022     DISDiffHadron() {
0023       setName("DISDiffHadron");
0024       declare(Beam(), "Beam");
0025       declare(FinalState(), "FS");
0026     }
0027 
0028     /// Clone on the heap.
0029     RIVET_DEFAULT_PROJ_CLONE(DISDiffHadron);
0030 
0031     /// @}
0032 
0033     /// Import to avoid warnings about overload-hiding
0034     using Projection::operator =;
0035 
0036 
0037   protected:
0038 
0039     /// Perform the projection operation on the supplied event.
0040     virtual void project(const Event& e);
0041 
0042     /// Compare with other projections.
0043     virtual CmpState compare(const Projection& p) const;
0044 
0045 
0046   public:
0047 
0048     /// The incoming lepton
0049     const Particle& in() const { return _incoming; }
0050 
0051     /// The outgoing lepton
0052     const Particle& out() const { return _outgoing; }
0053 
0054 
0055   protected:
0056 
0057     /// The incoming lepton
0058     Particle _incoming;
0059 
0060     /// The outgoing lepton
0061     Particle _outgoing;
0062 
0063   };
0064 
0065 }
0066 
0067 
0068 #endif