EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CbmMCEvent.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file CbmMCEvent.h
1 
9 #ifndef CBMMCEVENT_H
10 #define CBMMCEVENT_H 1
11 
12 
13 #include "TNamed.h"
14 #include "TVector3.h"
15 
16 
17 class CbmMCEvent : public TNamed
18 {
19 
20  public:
21 
23  CbmMCEvent();
24 
25 
36  CbmMCEvent(UInt_t runId, Int_t iEvent,
37  Double_t x, Double_t y, Double_t z, Double_t t,
38  Double_t b, Double_t phi, Int_t nPrim);
39 
40 
42  CbmMCEvent(UInt_t runId);
43 
44 
46  virtual ~CbmMCEvent();
47 
48 
50  UInt_t GetRunID() const { return fRunId; } // run identifier
51  Int_t GetEventID() const { return fEventId; } // event identifier
52  Double_t GetX() const { return fX; } // vertex x [cm]
53  Double_t GetY() const { return fY; } // vertex y [cm]
54  Double_t GetZ() const { return fZ; } // vertex z [cm]
55  Double_t GetT() const { return fT; } // event time [ns]
56  Double_t GetB() const { return fB; } // impact parameter [fm]
57  Double_t GetPhi() const { return fPhi; } // event plane angle [rad]
58  Int_t GetNPrim() const { return fNPrim; } // number of input tracks
59  Bool_t IsSet() const { return fIsSet; } // Flag
60  void GetVertex(TVector3& vertex) { vertex.SetXYZ(fX, fY, fZ); }
61 
62 
64  void SetEventID(Int_t eventId) { fEventId = eventId; }
65  void SetTime(Double_t t) { fT = t; }
66  void SetB(Double_t b) { fB = b; }
67  void SetPhi(Double_t phi) { fPhi = phi; }
68  void SetNPrim(Int_t nPrim) { fNPrim = nPrim; }
69  void MarkSet(Bool_t isSet) { fIsSet = isSet; }
70  void SetVertex(Double_t x, Double_t y, Double_t z);
71  void SetVertex(const TVector3& vertex);
72 
73 
75  void Reset();
76 
77 
78 
79  private:
80 
81  UInt_t fRunId; // Run identifier
82  UInt_t fEventId; // Event identifier
83  Double32_t fX; // Primary vertex x [cm]
84  Double32_t fY; // Primary vertex y [cm]
85  Double32_t fZ; // Primary vertex z [cm]
86  Double32_t fT; // Event time [s]
87  Double32_t fB; // Impact parameter [fm] (if relevant)
88  Double32_t fPhi; // Event plane angle [rad] (if relevant)
89  Int_t fNPrim; // Number of input tracks
90  Bool_t fIsSet; // Flag whether variables are filled
91 
92 
94 
95 };
96 
97 
98 inline void CbmMCEvent::SetVertex(Double_t x, Double_t y,
99  Double_t z) {
100  fX = x;
101  fY = y;
102  fZ = z;
103 }
104 
105 
106 inline void CbmMCEvent::SetVertex(const TVector3& vertex) {
107  fX = vertex.X();
108  fY = vertex.Y();
109  fZ = vertex.Z();
110 }
111 
112 
113 #endif