eic-smear  1.0.3
A collection of ROOT classes for Monte Carlo events and a fast-smearing code simulating detector effects for the Electron-Ion Collider task force
smear/EventSmear.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_EVENTSMEAR_H_
11 #define INCLUDE_EICSMEAR_SMEAR_EVENTSMEAR_H_
12 
13 #include <cmath>
14 #include <list>
15 #include <vector>
16 
17 #include <TObject.h>
18 
23 
24 namespace Smear {
25 
26 /*
27  A generator-independent DIS event with smeared kinematics and particles.
28  */
29 class Event : public erhic::EventDis {
30  public:
34  Event();
35 
39  virtual ~Event();
40 
44  virtual void Reset();
45 
49  virtual void ClearParticles();
50 
54  virtual UInt_t GetNTracks() const;
55 
61  virtual const ParticleMCS* GetTrack(UInt_t) const;
62 
68  virtual ParticleMCS* GetTrack(UInt_t);
69 
70  virtual void SetQ2(double Q2) { QSquared = Q2; }
71 
72  virtual void SetX(double xB) { x = xB; }
73 
74  virtual void SetY(double inelasticity) { y = inelasticity; }
75 
76  virtual void SetW2(double W2) { WSquared = W2; }
77 
78  virtual void SetNu(double Nu) { nu = Nu; }
79 
91  virtual const ParticleMCS* BeamLepton() const;
92 
100  virtual const ParticleMCS* BeamHadron() const;
101 
109  virtual const ParticleMCS* ExchangeBoson() const;
110 
119  virtual const ParticleMCS* ScatteredLepton() const;
120 
126  virtual void AddLast(ParticleMCS* particle);
127 
133  void HadronicFinalState(ParticlePtrList&) const;
134 
140  std::vector<const erhic::VirtualParticle*> GetTracks() const;
141 
145  virtual void SetScattered(int index);
146 
151  virtual void Print(Option_t* = "") const;
152 
153  protected:
154  Int_t nTracks;
155  std::vector<ParticleMCS*> particles;
157 
158  ClassDef(Smear::Event, 1)
159 };
160 
161 inline UInt_t Event::GetNTracks() const {
162  return particles.size();
163 }
164 
165 inline const Smear::ParticleMCS* Event::GetTrack(UInt_t u) const {
166  return (u < particles.size() ? particles.at(u) : NULL);
167 }
168 
170  return (u < particles.size() ? particles.at(u) : NULL);
171 }
172 
173 inline const ParticleMCS* Event::BeamLepton() const {
174  return (particles.empty() ? NULL : particles.front());
175 }
176 
177 inline const ParticleMCS* Event::BeamHadron() const {
178  return (particles.size() > 1 ? particles.at(1) : NULL);
179 }
180 
181 inline const ParticleMCS* Event::ExchangeBoson() const {
182  return NULL;
183 }
184 
185 } // namespace Smear
186 
188 
189 #endif // INCLUDE_EICSMEAR_SMEAR_EVENTSMEAR_H_
erhic::EventDis::WSquared
Double32_t WSquared
Invariant mass of the hadronic system.
Definition: EventDis.h:184
Smear::Event::GetNTracks
virtual UInt_t GetNTracks() const
Returns the number of tracks in the event.
Definition: smear/EventSmear.h:161
Smear
Definition: Acceptance.cxx:16
erhic::EventDis::QSquared
Double32_t QSquared
Q2 calculated from scattered electron.
Definition: EventDis.h:182
Smear::Event::AddLast
virtual void AddLast(ParticleMCS *particle)
Add a new track to the end of the track list.
Definition: smear/EventSmear.cxx:39
erhic::VirtualEvent::ParticlePtrList
std::vector< const erhic::VirtualParticle * > ParticlePtrList
typedef for a track pointer collection.
Definition: VirtualEvent.h:52
Smear::Event::SetNu
virtual void SetNu(double Nu)
Definition: smear/EventSmear.h:78
Smear::Event::Event
Event()
Default constructor.
Definition: smear/EventSmear.cxx:17
Smear::Event
Definition: smear/EventSmear.h:29
ParticleMCS.h
Smear::Event::SetY
virtual void SetY(double inelasticity)
Definition: smear/EventSmear.h:74
EventDis.h
Smear::Event::BeamHadron
virtual const ParticleMCS * BeamHadron() const
Returns a pointer to the incident hadron beam particle.
Definition: smear/EventSmear.h:177
Smear::Event::SetScattered
virtual void SetScattered(int index)
Set which particle is the scattered lepton.
Definition: smear/EventSmear.cxx:75
Smear::Event::ExchangeBoson
virtual const ParticleMCS * ExchangeBoson() const
Returns a pointer to the exchanged boson.
Definition: smear/EventSmear.h:181
Smear::Event::SetW2
virtual void SetW2(double W2)
Definition: smear/EventSmear.h:76
Smear::Event::BeamLepton
virtual const ParticleMCS * BeamLepton() const
Returns a pointer to the incident lepton beam particle.
Definition: smear/EventSmear.h:173
Smear::Event::GetTrack
virtual const ParticleMCS * GetTrack(UInt_t) const
Returns the nth track.
Definition: smear/EventSmear.h:165
Smear::Event::~Event
virtual ~Event()
Destructor.
Definition: smear/EventSmear.cxx:22
Smear::Event::nTracks
Int_t nTracks
Number of particles (intermediate + final)
Definition: smear/EventSmear.h:154
Smear::Event::particles
std::vector< ParticleMCS * > particles
The smeared particle list.
Definition: smear/EventSmear.h:155
Smear::Event::Print
virtual void Print(Option_t *="") const
Prints the attributes of this event to standard output.
Definition: smear/EventSmear.cxx:80
VirtualParticle.h
Smear::Event::GetTracks
std::vector< const erhic::VirtualParticle * > GetTracks() const
Returns a vector of pointers to all tracks in the event.
Definition: smear/EventSmear.cxx:67
Smear::Event::SetX
virtual void SetX(double xB)
Definition: smear/EventSmear.h:72
Smear::Event::mScatteredIndex
Int_t mScatteredIndex
Definition: smear/EventSmear.h:156
erhic::EventDis::nu
Double32_t nu
Energy transfer from the electron.
Definition: EventDis.h:185
erhic::EventDis
A deeply inelastic scattering event.
Definition: EventDis.h:37
Smear::ParticleMCS
A smeared Monte Carlo particle.
Definition: ParticleMCS.h:27
erhic::EventDis::x
Double32_t x
Bjorken scaling variable.
Definition: EventDis.h:181
Smear::Event::HadronicFinalState
void HadronicFinalState(ParticlePtrList &) const
Yields all particles that belong to the hadronic final state.
Definition: smear/EventSmear.cxx:55
Smear::Event::Reset
virtual void Reset()
Clear the particle list, sets event properties to default values.
Definition: smear/EventSmear.cxx:34
erhic::EventDis::y
Double32_t y
Inelasticity.
Definition: EventDis.h:183
Smear::Event::ScatteredLepton
virtual const ParticleMCS * ScatteredLepton() const
Returns a pointer to the lepton beam particle after scattering.
Definition: smear/EventSmear.cxx:44
Smear::Event::ClearParticles
virtual void ClearParticles()
Clears particle array, leaves event variables unchanged.
Definition: smear/EventSmear.cxx:26
Smear::Event::SetQ2
virtual void SetQ2(double Q2)
Definition: smear/EventSmear.h:70
EventS
Smear::Event EventS
Definition: smear/EventSmear.h:187
Kinematics.h