er  dev
ERPoint.h
1 /********************************************************************************
2  * Copyright (C) Joint Institute for Nuclear Research *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 
9 #ifndef ERPoint_H
10 #define ERPoint_H
11 
12 
13 #include "TObject.h"
14 #include "TVector3.h"
15 
16 #include "FairMCPoint.h"
17 
23 class ERPoint : public FairMCPoint
24 {
25 
26  public:
27 
29  ERPoint();
30 
31 
46  ERPoint(Int_t eventID, Int_t trackID,
47  Int_t mot0trackID,
48  Int_t fVolNb,
49  Double_t mass,
50  TVector3 posIn, TVector3 posInLoc,
51  TVector3 posOut, TVector3 momIn, TVector3 momOut,
52  Double_t timeIn, Double_t timeOut,Double_t trackLength, Double_t eLoss,
53  Double_t lightYield, Int_t pid, Double_t charge) ;
54 
56  ERPoint(const ERPoint&);
57 
58 
60  virtual ~ERPoint();
61 
62 
63  ERPoint& operator=(const ERPoint&) { return *this; }
64 
65 
67  Int_t GetEventID() const { return fEventID; }
68  Int_t GetMot0TrackID() const { return fMot0TrackID; }
69  Double_t GetXIn() const { return fX; }
70  Double_t GetYIn() const { return fY; }
71  Double_t GetZIn() const { return fZ; }
72  Double_t GetXInLocal() const { return fXlocal; }
73  Double_t GetYInLocal() const { return fYlocal; }
74  Double_t GetZInLocal() const { return fZlocal; }
75  Double_t GetXOut() const { return fX_out; }
76  Double_t GetYOut() const { return fY_out; }
77  Double_t GetZOut() const { return fZ_out; }
78  Double_t GetPxIn() const { return fPx; }
79  Double_t GetPyIn() const { return fPy; }
80  Double_t GetPzIn() const { return fPz; }
81  Double_t GetPxOut() const { return fPx_out; }
82  Double_t GetPyOut() const { return fPy_out; }
83  Double_t GetPzOut() const { return fPz_out; }
84  Double_t GetPIn() const;
85  Double_t GetPOut() const;
86  Double_t GetMass() const { return fMass; }
87  Double_t GetLightYield() const {return fLightYield;}
88  Int_t GetPID() const {return fPID;}
89  Double_t GetCharge() const {return fCharge;}
90  Double_t GetTime() const {return fTimeIn;}
91  Double_t GetTimeIn() const {return fTimeIn;}
92  Double_t GetTimeOut() const {return fTimeOut;}
93  Double_t GetVolNb() const {return fVolNb;}
94  Double_t GetLength() const;
95 
96  void PositionIn(TVector3& pos) { pos.SetXYZ(fX, fY, fZ); }
97  void PositionOut(TVector3& pos) { pos.SetXYZ(fX_out,fY_out,fZ_out); }
98  void MomentumOut(TVector3& mom) { mom.SetXYZ(fPx_out,fPy_out,fPz_out); }
99 
100 
102  //@todo проверить эти функции
103  Double_t GetX(Double_t z) const;
104  Double_t GetY(Double_t z) const;
105  Double_t GetP(Double_t pointLen) const;
106  Double_t GetTime(Double_t pointLen) const;
107 
109  Bool_t IsUsable() const;
110 
112  virtual void Print(const Option_t* opt = 0) const;
113 
115  void SetLightYield(Double_t ly) {fLightYield = ly;}
116  void SetTimeIn(Double_t t){fTimeIn = t;}
117  void SetXIn(Double_t xin) {fX = xin;}
118  void SetXOut(Double_t xout) {fX_out = xout;}
119  void SetYIn(Double_t yin) {fY = yin;}
120  void SetYOut(Double_t yout) {fY_out = yout;}
121  void SetZIn(Double_t zin) {fZ = zin;}
122  void SetZOut(Double_t zout) {fZ_out = zout;}
123 
124  protected:
125 
126  Int_t fEventID;
127  Int_t fMot0TrackID;
128  Int_t fVolNb;
129  Double_t fMass;
130  Double32_t fXlocal, fYlocal, fZlocal;
131  Double32_t fX_out, fY_out, fZ_out;
132  Double32_t fPx_out, fPy_out, fPz_out;
133  Double_t fTimeIn, fTimeOut;
134  Double_t fLightYield;
135  Int_t fPID;
136  Double_t fCharge;
137  Double_t fTrackLength;
138 
139  ClassDef(ERPoint,1)
140 };
141 #endif
Double_t GetX(Double_t z) const
Definition: ERPoint.cxx:83
virtual void Print(const Option_t *opt=0) const
Definition: ERPoint.cxx:69
virtual ~ERPoint()
Definition: ERPoint.cxx:61
Int_t GetEventID() const
Definition: ERPoint.h:67
void SetLightYield(Double_t ly)
Definition: ERPoint.h:115
Bool_t IsUsable() const
Definition: ERPoint.cxx:107
ERPoint()
Definition: ERPoint.cxx:17
The data class for storing pieces of charged tracks in sensitive volumes in NeuRad.
Definition: ERPoint.h:23