EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VirtualParticle.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file VirtualParticle.h
1 
10 #ifndef INCLUDE_EICSMEAR_ERHIC_VIRTUALPARTICLE_H_
11 #define INCLUDE_EICSMEAR_ERHIC_VIRTUALPARTICLE_H_
12 
13 #include <TLorentzVector.h>
14 #include <TVector3.h>
15 
16 #include "eicsmear/erhic/Pid.h"
17 
18 namespace erhic {
19 
23 class VirtualParticle : public TObject {
24  public:
28  virtual ~VirtualParticle() { }
29 
33  virtual Pid Id() const = 0;
34 
38  virtual TLorentzVector Get4Vector() const = 0;
39 
43  virtual Double_t GetPx() const = 0;
44 
48  virtual Double_t GetPy() const = 0;
49 
53  virtual Double_t GetPz() const = 0;
54 
58  virtual Double_t GetE() const = 0;
59 
63  virtual Double_t GetP() const = 0;
64 
68  virtual Double_t GetM() const = 0;
69 
73  virtual Double_t GetPt() const = 0;
74 
78  virtual Double_t GetTheta() const = 0;
79 
83  virtual Double_t GetPhi() const = 0;
84 
88  virtual Double_t GetRapidity() const = 0;
89 
93  virtual Double_t GetEta() const = 0;
94 
99  virtual TVector3 GetVertex() const = 0;
100 
105  virtual UShort_t GetStatus() const = 0;
106 
110  virtual UShort_t GetParentIndex() const = 0;
111 
115  virtual void SetVertex(const TVector3& /* (x, y, z) */) = 0;
116 
121  virtual void Set4Vector(const TLorentzVector& /* (px, py, pz, E) */) = 0;
122 
123  ClassDef(erhic::VirtualParticle, 1)
124 };
125 
126 } // namespace erhic
127 
128 #endif // INCLUDE_EICSMEAR_ERHIC_VIRTUALPARTICLE_H_