File indexing completed on 2024-11-16 09:02:04
0001
0002
0003
0004
0005
0006
0007
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
0018
0019
0020 class BeamParticles {
0021 public:
0022
0023
0024
0025
0026 BeamParticles();
0027
0028
0029
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
0039
0040 virtual ~BeamParticles();
0041
0042
0043
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;
0069 TLorentzVector mBeamLepton;
0070 TLorentzVector mScatteredHadron;
0071 TLorentzVector mScatteredLepton;
0072 TLorentzVector mBoson;
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