Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-07-03 07:05:10

0001 /**
0002  \file
0003  Declaration of class BeamParticles.
0004  
0005  \author    Thomas Burton
0006  \date      2011-06-24
0007  \copyright 2011 Brookhaven National Lab
0008  */
0009 
0010 #ifndef INCLUDE_EICSMEAR_ERHIC_BEAMPARTICLES_H_
0011 #define INCLUDE_EICSMEAR_ERHIC_BEAMPARTICLES_H_
0012 
0013 #include <Rtypes.h>
0014 #include <TLorentzVector.h>
0015 
0016 /**
0017  Wrapper class around energy-momentum 4-vectors defining the incident and
0018  scattered beams and the exchanged boson.
0019  */
0020 class BeamParticles {
0021  public:
0022   /**
0023    Default constructor.
0024    Initialises all vector components to not-a-number.
0025    */
0026   BeamParticles();
0027 
0028   /**
0029    Constructor initialsing all particles.
0030    */
0031   BeamParticles(const TLorentzVector& hadronBeam,
0032                 const TLorentzVector& leptonBeam,
0033                 const TLorentzVector& scatteredHadron,
0034                 const TLorentzVector& scatteredLepton,
0035                 const TLorentzVector& exchangedBoson);
0036 
0037   /**
0038    Destructor.
0039    */
0040   virtual ~BeamParticles();
0041 
0042   /**
0043    Sets all the 4-vectors' components to not-a-number.
0044    */
0045   void Reset();
0046 
0047   void SetBeamHadron(const TLorentzVector&);
0048 
0049   void SetBeamLepton(const TLorentzVector&);
0050 
0051   void SetScatteredHadron(const TLorentzVector&);
0052 
0053   void SetScatteredLepton(const TLorentzVector&);
0054 
0055   void SetBoson(const TLorentzVector&);
0056 
0057   const TLorentzVector& BeamHadron() const;
0058 
0059   const TLorentzVector& BeamLepton() const;
0060 
0061   const TLorentzVector& GetScatteredHadron() const;
0062 
0063   const TLorentzVector& ScatteredLepton() const;
0064 
0065   const TLorentzVector& GetBoson() const;
0066 
0067  protected:
0068   TLorentzVector mBeamHadron;       ///< Incident hadron beam
0069   TLorentzVector mBeamLepton;       ///< Incident lepton beam
0070   TLorentzVector mScatteredHadron;  ///< Scattered hadron beam
0071   TLorentzVector mScatteredLepton;  ///< Scattered lepton beam
0072   TLorentzVector mBoson;            ///< Exchanged boson
0073 
0074   ClassDef(BeamParticles, 1)
0075 };
0076 
0077 inline const TLorentzVector& BeamParticles::BeamHadron() const {
0078   return mBeamHadron;
0079 }
0080 
0081 inline const TLorentzVector& BeamParticles::BeamLepton() const {
0082   return mBeamLepton;
0083 }
0084 
0085 inline const TLorentzVector& BeamParticles::GetScatteredHadron() const {
0086   return mScatteredHadron;
0087 }
0088 
0089 inline const TLorentzVector& BeamParticles::ScatteredLepton() const {
0090   return mScatteredLepton;
0091 }
0092 
0093 inline const TLorentzVector& BeamParticles::GetBoson() const {
0094   return mBoson;
0095 }
0096 
0097 inline void BeamParticles::SetBeamHadron(const TLorentzVector& vec) {
0098   mBeamHadron = vec;
0099 }
0100 
0101 inline void BeamParticles::SetBeamLepton(const TLorentzVector& vec) {
0102   mBeamLepton = vec;
0103 }
0104 
0105 inline void BeamParticles::SetScatteredHadron(const TLorentzVector& vec) {
0106   mScatteredHadron = vec;
0107 }
0108 
0109 inline void BeamParticles::SetScatteredLepton(const TLorentzVector& vec) {
0110   mScatteredLepton = vec;
0111 }
0112 
0113 inline void BeamParticles::SetBoson(const TLorentzVector& vec) {
0114   mBoson = vec;
0115 }
0116 
0117 #endif  // INCLUDE_EICSMEAR_ERHIC_BEAMPARTICLES_H_