EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EventDis.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EventDis.h
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_