EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EventPythia.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EventPythia.h
1 
10 #ifndef INCLUDE_EICSMEAR_ERHIC_EVENTPYTHIA_H_
11 #define INCLUDE_EICSMEAR_ERHIC_EVENTPYTHIA_H_
12 
13 #include <string>
14 
15 #include <Rtypes.h>
16 
17 #include "eicsmear/erhic/EventMC.h"
18 
19 namespace erhic {
20 
28 class EventPythia : public EventMC {
29  public:
39  explicit EventPythia(const std::string& str = "");
40 
44  virtual ~EventPythia();
45 
52  virtual bool Parse(const std::string&);
53 
58  virtual void SetNucleon(int n);
59 
65  virtual void SetTargetParton(int n);
66 
72  virtual void SetBeamParton(int n);
73 
78  virtual void SetGenEvent(int n);
79 
83  virtual void SetTargetPartonX(double xB);
84 
88  virtual void SetBeamPartonX(double xB);
89 
94  virtual void SetBeamPartonTheta(double radians);
95 
100  virtual void SetLeptonPhi(double radians);
101 
105  virtual void SetF1(double f1);
106 
110  virtual void SetF2(double f2);
111 
115  virtual void SetSigmaRad(double sr);
116 
120  virtual void SetHardS(double s);
121 
125  virtual void SetHardT(double t);
126 
130  virtual void SetHardU(double u);
131 
135  virtual void SetHardQ2(double Q2);
136 
140  virtual void SetHardPt2(double pt2);
141 
145  virtual void SetSigRadCor(double s);
146 
150  virtual void SetEBrems(double e);
151 
155  virtual void SetPhotonFlux(double f);
156 
160  virtual void SetTrueY(double inelasticity);
161 
165  virtual void SetTrueQ2(double Q2);
166 
170  virtual void SetTrueX(double x);
171 
175  virtual void SetTrueW2(double W2);
176 
180  virtual void SetTrueNu(double Nu);
181 
185  virtual void SetR(double r);
186 
190  virtual int GetGenEvent() const;
191 
195  virtual double GetTargetPartonX() const;
196 
200  virtual double GetBeamPartonX() const;
201 
206  virtual double GetBeamPartonTheta() const;
207 
213  virtual double GetLeptonPhi() const;
214 
218  virtual double GetF1() const;
219 
223  virtual double GetF2() const;
224 
228  virtual double GetSigmaRad() const;
229 
233  virtual double GetHardS() const;
234 
238  virtual double GetHardT() const;
239 
243  virtual double GetHardU() const;
244 
248  virtual double GetHardQ2() const;
249 
253  virtual double GetHardPt2() const;
254 
258  virtual double GetSigRadCor() const;
259 
263  virtual double GetEBrems() const;
264 
268  virtual double GetPhotonFlux() const;
269 
273  virtual double GetTrueY() const;
274 
278  virtual double GetTrueQ2() const;
279 
283  virtual double GetTrueX() const;
284 
288  virtual double GetTrueW2() const;
289 
293  virtual double GetTrueNu() const;
294 
298  virtual double GetR() const;
299 
306  virtual const ParticleMC* ScatteredLepton() const;
307 
308  // Let them all be public; this access method dances for POD does not make sense;
309  //protected:
310  // Inline comments after field names will appear in ROOT
311  // when EventPythia::Dump() is called.
312  Int_t nucleon;
313 
314  Int_t tgtparton;
315 
316  Int_t beamparton;
317 
318 
319  Int_t genevent;
320  Double32_t xtgtparton;
321 
322  Double32_t xbeamparton;
323 
324  Double32_t thetabeamparton;
325 
326 
327  Double32_t leptonphi;
328 
329  Double32_t F1;
330  Double32_t sigma_rad;
331  Double32_t t_hat;
332 
333  Double32_t u_hat;
334 
335  Double32_t Q2_hat;
336 
337  Double32_t SigRadCor;
338  Double32_t EBrems;
339 
340  Double32_t photonflux;
341  Double32_t trueY;
342 
343  Double32_t trueQ2;
344 
345  Double32_t trueX;
346  Double32_t trueW2;
347  Double32_t trueNu;
348  Double32_t F2;
349  Double32_t R;
350  Double32_t pt2_hat;
351 
352  Double32_t sHat;
353 
354  ClassDef(erhic::EventPythia, 2)
355 };
356 
357 inline void EventPythia::SetNucleon(int n) {
358  nucleon = n;
359 }
360 
361 inline void EventPythia::SetTargetParton(int n) {
362  tgtparton = n;
363 }
364 
365 inline void EventPythia::SetBeamParton(int n) {
366  beamparton = n;
367 }
368 
369 inline void EventPythia::SetGenEvent(int n) {
370  genevent = n;
371 }
372 
373 inline void EventPythia::SetTargetPartonX(double xB) {
374  xtgtparton = xB;
375 }
376 
377 inline void EventPythia::SetBeamPartonX(double xB) {
378  xbeamparton = xB;
379 }
380 
381 inline void EventPythia::SetBeamPartonTheta(double radians) {
382  thetabeamparton = radians;
383 }
384 
385 inline void EventPythia::SetLeptonPhi(double radians) {
386  leptonphi = radians;
387 }
388 
389 inline void EventPythia::SetF1(double f1) {
390  F1 = f1;
391 }
392 
393 inline void EventPythia::SetF2(double f2) {
394  F2 = f2;
395 }
396 
397 inline void EventPythia::SetSigmaRad(double sr) {
398  sigma_rad = sr;
399 }
400 
401 inline void EventPythia::SetHardS(double s) {
402  sHat = s;
403 }
404 
405 inline void EventPythia::SetHardT(double t) {
406  t_hat = t;
407 }
408 
409 inline void EventPythia::SetHardU(double u) {
410  u_hat = u;
411 }
412 
413 inline void EventPythia::SetHardQ2(double Q2) {
414  Q2_hat = Q2;
415 }
416 
417 inline void EventPythia::SetHardPt2(double pt2) {
418  pt2_hat = pt2;
419 }
420 
421 inline void EventPythia::SetSigRadCor(double s) {
422  SigRadCor = s;
423 }
424 
425 inline void EventPythia::SetEBrems(double e) {
426  EBrems = e;
427 }
428 
429 inline void EventPythia::SetPhotonFlux(double f) {
430  photonflux = f;
431 }
432 
433 inline void EventPythia::SetTrueY(double inelasticity) {
434  trueY = inelasticity;
435 }
436 
437 inline void EventPythia::SetTrueQ2(double Q2) {
438  trueQ2 = Q2;
439 }
440 
441 inline void EventPythia::SetTrueX(double xB) {
442  trueX = xB;
443 }
444 
445 inline void EventPythia::SetTrueW2(double W2) {
446  trueW2 = W2;
447 }
448 
449 inline void EventPythia::SetTrueNu(double Nu) {
450  trueNu = Nu;
451 }
452 
453 inline void EventPythia::SetR(double r) {
454  R = r;
455 }
456 
457 inline int EventPythia::GetGenEvent() const {
458  return genevent;
459 }
460 
461 inline double EventPythia::GetTargetPartonX() const {
462  return xtgtparton;
463 }
464 
465 inline double EventPythia::GetBeamPartonX() const {
466  return xbeamparton;
467 }
468 
469 inline double EventPythia::GetBeamPartonTheta() const {
470  return thetabeamparton;
471 }
472 
473 inline double EventPythia::GetLeptonPhi() const {
474  return leptonphi;
475 }
476 
477 inline double EventPythia::GetF1() const {
478  return F1;
479 }
480 
481 inline double EventPythia::GetF2() const {
482  return F2;
483 }
484 
485 inline double EventPythia::GetSigmaRad() const {
486  return sigma_rad;
487 }
488 
489 inline double EventPythia::GetHardS() const {
490  return sHat;
491 }
492 
493 inline double EventPythia::GetHardT() const {
494  return t_hat;
495 }
496 
497 inline double EventPythia::GetHardU() const {
498  return u_hat;
499 }
500 
501 inline double EventPythia::GetHardQ2() const {
502  return Q2_hat;
503 }
504 
505 inline double EventPythia::GetHardPt2() const {
506  return pt2_hat;
507 }
508 
509 inline double EventPythia::GetSigRadCor() const {
510  return SigRadCor;
511 }
512 
513 inline double EventPythia::GetEBrems() const {
514  return EBrems;
515 }
516 
517 inline double EventPythia::GetPhotonFlux() const {
518  return photonflux;
519 }
520 
521 inline double EventPythia::GetTrueY() const {
522  return trueY;
523 }
524 
525 inline double EventPythia::GetTrueQ2() const {
526  return trueQ2;
527 }
528 
529 inline double EventPythia::GetTrueX() const {
530  return trueX;
531 }
532 
533 inline double EventPythia::GetTrueW2() const {
534  return trueW2;
535 }
536 
537 inline double EventPythia::GetTrueNu() const {
538  return trueNu;
539 }
540 
541 inline double EventPythia::GetR() const {
542  return R;
543 }
544 
545 
546 class EventBeagle : public EventPythia {
547  public:
548  explicit EventBeagle(const std::string& str = "");
549 
550  ~EventBeagle();
551 
552  bool RequiresEaParticleFields() { return true; };
553 
554  bool Parse(const std::string&);
555 
557  //put in the public region to be easily accessed
558  Int_t lepton;
559  Int_t Atarg;
560  Int_t Ztarg;
561  Double32_t pzlep;
562  Double32_t pztarg;
563  Double32_t pznucl;
564  Double32_t crang;
565  Double32_t crori;
566  Double32_t b;
567  Double32_t Phib;
568  Double32_t Thickness;
569  Double32_t ThickScl;
570  Int_t Ncollt;
571  Int_t Ncolli;
572  Int_t Nwound;
573  Int_t Nwdch;
574  Int_t Nnevap;
575  Int_t Npevap;
576  Int_t Aremn;
577  Int_t NINC;
578  Int_t NINCch;
579  Double32_t d1st;
580  Double32_t davg;
581  Double32_t pxf;
582  Double32_t pyf;
583  Double32_t pzf;
584  Double32_t Eexc;
585  Double32_t RAevt;
586  Double32_t User1;
587  Double32_t User2;
588  Double32_t User3;
589 
590  ClassDef(erhic::EventBeagle, 1)
591 };
592 
593 } // namespace erhic
594 
595 #endif // INCLUDE_EICSMEAR_ERHIC_EVENTPYTHIA_H_