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
EventDis.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_ERHIC_EVENTDIS_H_
11 #define INCLUDE_EICSMEAR_ERHIC_EVENTDIS_H_
12 
13 #include <cmath> // For pow
14 
15 #include <Rtypes.h> // For ClassDef
16 
18 
19 namespace erhic {
20 
21 struct DisKinematics;
22 class VirtualParticle;
23 
37 class EventDis : public VirtualEvent {
38  public:
42  virtual ~EventDis();
43 
47  EventDis();
48 
52  EventDis(const EventDis&);
53 
57  EventDis& operator=(const EventDis&);
58 
63  virtual Double_t GetX() const;
64 
70  virtual Double_t GetQ2() const;
76  virtual Double_t GetY() const;
81  virtual Double_t GetYPlus() const;
87  virtual Double_t GetW2() const;
93  virtual Double_t GetNu() const;
97  virtual double GetXDoubleAngle() const;
98 
102  virtual double GetQ2DoubleAngle() const;
103 
107  virtual double GetYDoubleAngle() const;
108 
112  virtual double GetW2DoubleAngle() const;
113 
117  virtual double GetXJacquetBlondel() const;
121  virtual double GetQ2JacquetBlondel() const;
122 
126  virtual double GetYJacquetBlondel() const;
127 
131  virtual double GetW2JacquetBlondel() const;
132 
136  virtual void SetLeptonKinematics(const DisKinematics&);
137 
141  virtual void SetJacquetBlondelKinematics(const DisKinematics&);
142 
146  virtual void SetDoubleAngleKinematics(const DisKinematics&);
147 
153  virtual const VirtualParticle* BeamLepton() const = 0;
154 
160  virtual const VirtualParticle* BeamHadron() const = 0;
161 
167  virtual const VirtualParticle* ExchangeBoson() const = 0;
168 
174  virtual const VirtualParticle* ScatteredLepton() const = 0;
175 
176 // protected:
180  virtual void CopyKinematics(const EventDis&);
181  Double32_t x;
182  Double32_t QSquared;
183  Double32_t y;
184  Double32_t WSquared;
185  Double32_t nu;
186  Double32_t yJB;
187  Double32_t QSquaredJB;
188  Double32_t xJB;
189  Double32_t WSquaredJB;
190  Double32_t yDA;
191  Double32_t QSquaredDA;
192  Double32_t xDA;
193  Double32_t WSquaredDA;
194 
195  ClassDef(erhic::EventDis, 1)
196 };
197 
198 inline Double_t EventDis::GetX() const {
199  return x;
200 }
201 
202 inline Double_t EventDis::GetNu() const {
203  return nu;
204 }
205 
206 inline Double_t EventDis::GetQ2() const {
207  return QSquared;
208 }
209 
210 inline Double_t EventDis::GetW2() const {
211  return WSquared;
212 }
213 
214 inline Double_t EventDis::GetY() const {
215  return y;
216 }
217 
218 inline Double_t EventDis::GetYPlus() const {
219  return pow(GetY(), 2.) / (1. + pow(1. - GetY(), 2.));
220 }
221 
222 inline double EventDis::GetXDoubleAngle() const {
223  return xDA;
224 }
225 
226 inline double EventDis::GetQ2DoubleAngle() const {
227  return QSquaredDA;
228 }
229 
230 inline double EventDis::GetYDoubleAngle() const {
231  return yDA;
232 }
233 
234 inline double EventDis::GetW2DoubleAngle() const {
235  return WSquaredDA;
236 }
237 
238 inline double EventDis::GetXJacquetBlondel() const {
239  return xJB;
240 }
241 
242 inline double EventDis::GetQ2JacquetBlondel() const {
243  return QSquaredJB;
244 }
245 
246 inline double EventDis::GetYJacquetBlondel() const {
247  return yJB;
248 }
249 
250 inline double EventDis::GetW2JacquetBlondel() const {
251  return WSquaredJB;
252 }
253 
254 } // namespace erhic
255 
256 #endif // INCLUDE_EICSMEAR_ERHIC_EVENTDIS_H_
Double32_t yDA
y calculated via the double-angle method
Definition: EventDis.h:190
Double32_t xJB
x calculated via the Jacquet-Blondel method
Definition: EventDis.h:188
virtual void SetLeptonKinematics(const DisKinematics &)
Definition: EventDis.cxx:61
virtual void CopyKinematics(const EventDis &)
Definition: EventDis.cxx:52
Double32_t QSquared
Q2 calculated from scattered electron.
Definition: EventDis.h:182
virtual void SetJacquetBlondelKinematics(const DisKinematics &)
Definition: EventDis.cxx:69
Double32_t nu
Energy transfer from the electron.
Definition: EventDis.h:185
virtual double GetYJacquetBlondel() const
Definition: EventDis.h:246
Double32_t y
Inelasticity.
Definition: EventDis.h:183
Double32_t WSquaredJB
W2 calculated via the Jacquet-Blondel method.
Definition: EventDis.h:189
virtual void SetDoubleAngleKinematics(const DisKinematics &)
Definition: EventDis.cxx:76
Abstract base class for a physics event.
Definition: VirtualEvent.h:25
Double32_t WSquaredDA
W2 calculated via the double-angle method.
Definition: EventDis.h:193
Double32_t yJB
y calculated via the Jacquet-Blondel method
Definition: EventDis.h:186
virtual double GetW2JacquetBlondel() const
Definition: EventDis.h:250
virtual double GetXDoubleAngle() const
Definition: EventDis.h:222
virtual const VirtualParticle * BeamLepton() const =0
Double32_t WSquared
Invariant mass of the hadronic system.
Definition: EventDis.h:184
virtual Double_t GetQ2() const
Definition: EventDis.h:206
virtual Double_t GetX() const
Definition: EventDis.h:198
virtual ~EventDis()
Definition: EventDis.cxx:16
virtual Double_t GetY() const
Definition: EventDis.h:214
virtual const VirtualParticle * ScatteredLepton() const =0
virtual double GetQ2DoubleAngle() const
Definition: EventDis.h:226
Double32_t QSquaredJB
Q2 calculated via the Jacquet-Blondel method.
Definition: EventDis.h:187
virtual Double_t GetNu() const
Definition: EventDis.h:202
virtual double GetXJacquetBlondel() const
Definition: EventDis.h:238
virtual const VirtualParticle * BeamHadron() const =0
virtual Double_t GetW2() const
Definition: EventDis.h:210
Abstract base class for a general particle.
virtual double GetW2DoubleAngle() const
Definition: EventDis.h:234
Double32_t x
Bjorken scaling variable.
Definition: EventDis.h:181
Double32_t xDA
x calculated via the double-angle method
Definition: EventDis.h:192
virtual double GetYDoubleAngle() const
Definition: EventDis.h:230
virtual const VirtualParticle * ExchangeBoson() const =0
virtual Double_t GetYPlus() const
Definition: EventDis.h:218
Double32_t QSquaredDA
Q2 calculated via the double-angle method.
Definition: EventDis.h:191
EventDis & operator=(const EventDis &)
Definition: EventDis.cxx:45
virtual double GetQ2JacquetBlondel() const
Definition: EventDis.h:242