File indexing completed on 2025-02-22 10:33:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef INCLUDE_EICSMEAR_SMEAR_EVENTSMEAR_H_
0011 #define INCLUDE_EICSMEAR_SMEAR_EVENTSMEAR_H_
0012
0013 #include <cmath>
0014 #include <list>
0015 #include <vector>
0016
0017 #include <TObject.h>
0018
0019 #include "eicsmear/erhic/EventDis.h"
0020 #include "eicsmear/erhic/Kinematics.h"
0021 #include "eicsmear/smear/ParticleMCS.h"
0022 #include "eicsmear/erhic/VirtualParticle.h"
0023
0024 namespace Smear {
0025
0026
0027
0028
0029 class Event : public erhic::EventDis {
0030 public:
0031
0032
0033
0034 Event();
0035
0036
0037
0038
0039 virtual ~Event();
0040
0041
0042
0043
0044 virtual void Reset();
0045
0046
0047
0048
0049 virtual void ClearParticles();
0050
0051
0052
0053
0054 virtual UInt_t GetNTracks() const;
0055
0056
0057
0058
0059
0060
0061 virtual const ParticleMCS* GetTrack(UInt_t) const;
0062
0063
0064
0065
0066
0067
0068 virtual ParticleMCS* GetTrack(UInt_t);
0069
0070 virtual void SetQ2(double Q2) { QSquared = Q2; }
0071
0072 virtual void SetX(double xB) { x = xB; }
0073
0074 virtual void SetY(double inelasticity) { y = inelasticity; }
0075
0076 virtual void SetW2(double W2) { WSquared = W2; }
0077
0078 virtual void SetNu(double Nu) { nu = Nu; }
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091 virtual const ParticleMCS* BeamLepton() const;
0092
0093
0094
0095
0096
0097
0098
0099
0100 virtual const ParticleMCS* BeamHadron() const;
0101
0102
0103
0104
0105
0106
0107
0108
0109 virtual const ParticleMCS* ExchangeBoson() const;
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119 virtual const ParticleMCS* ScatteredLepton() const;
0120
0121
0122
0123
0124
0125
0126 virtual void AddLast(ParticleMCS* particle);
0127
0128
0129
0130
0131
0132
0133 void HadronicFinalState(ParticlePtrList&) const;
0134
0135
0136
0137
0138
0139
0140 std::vector<const erhic::VirtualParticle*> GetTracks() const;
0141
0142
0143
0144
0145 virtual void SetScattered(int index);
0146
0147
0148
0149
0150
0151 virtual void Print(Option_t* = "") const;
0152
0153 protected:
0154 Int_t nTracks;
0155 std::vector<ParticleMCS*> particles;
0156 Int_t mScatteredIndex;
0157
0158 ClassDef(Smear::Event, 1)
0159 };
0160
0161 inline UInt_t Event::GetNTracks() const {
0162 return particles.size();
0163 }
0164
0165 inline const Smear::ParticleMCS* Event::GetTrack(UInt_t u) const {
0166 return (u < particles.size() ? particles.at(u) : NULL);
0167 }
0168
0169 inline Smear::ParticleMCS* Event::GetTrack(UInt_t u) {
0170 return (u < particles.size() ? particles.at(u) : NULL);
0171 }
0172
0173 inline const ParticleMCS* Event::BeamLepton() const {
0174 return (particles.empty() ? NULL : particles.front());
0175 }
0176
0177 inline const ParticleMCS* Event::BeamHadron() const {
0178 return (particles.size() > 1 ? particles.at(1) : NULL);
0179 }
0180
0181 inline const ParticleMCS* Event::ExchangeBoson() const {
0182 return NULL;
0183 }
0184
0185 }
0186
0187 typedef Smear::Event EventS;
0188
0189 #endif