er  dev
ERNeuRadPoint.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 ERNeuRadPoint_H
10 #define ERNeuRadPoint_H
11 
12 #include "TObject.h"
13 #include "TVector3.h"
14 
15 #include "FairMCPoint.h"
16 
22 class ERNeuRadPoint : public FairMCPoint
23 {
24 
25 public:
26 
28  ERNeuRadPoint();
29 
44  ERNeuRadPoint(Int_t eventID, Int_t trackID,
45  Int_t mot0trackID,
46  Int_t fiberNb, Int_t pixelNb, Int_t moduleNb,
47  Double_t mass,
48  TVector3 posIn, TVector3 posInLoc,
49  TVector3 posOut, TVector3 momIn, TVector3 momOut,
50  Double_t timeIn, Double_t timeOut,Double_t trackLength, Double_t eLoss,
51  Double_t lightYield, Int_t pid, Double_t charge) ;
52 
55 
57  virtual ~ERNeuRadPoint();
58 
59  ERNeuRadPoint& operator=(const ERNeuRadPoint&) { return *this; }
60 
62  Int_t GetEventID() const { return fEventID; }
63  Int_t GetMot0TrackID() const { return fMot0TrackID; }
64  Double_t GetXIn() const { return fX; }
65  Double_t GetYIn() const { return fY; }
66  Double_t GetZIn() const { return fZ; }
67  Double_t GetXInLocal() const { return fXlocal; }
68  Double_t GetYInLocal() const { return fYlocal; }
69  Double_t GetZInLocal() const { return fZlocal; }
70  Double_t GetXOut() const { return fX_out; }
71  Double_t GetYOut() const { return fY_out; }
72  Double_t GetZOut() const { return fZ_out; }
73  Double_t GetPxIn() const { return fPx; }
74  Double_t GetPyIn() const { return fPy; }
75  Double_t GetPzIn() const { return fPz; }
76  Double_t GetPxOut() const { return fPx_out; }
77  Double_t GetPyOut() const { return fPy_out; }
78  Double_t GetPzOut() const { return fPz_out; }
79  Double_t GetPIn() const;
80  Double_t GetPOut() const;
81  Double_t GetMass() const { return fMass; }
82  Double_t GetLightYield() const {return fLightYield;}
83  Int_t GetModuleNb(){return fModuleNb;}
84  Int_t GetPixelNb(){return fPixelNb;}
85  Int_t GetFiberNb() const {return fFiberNb;}
86  Int_t GetPID() const {return fPID;}
87  Double_t GetCharge() const {return fCharge;}
88  Double_t GetTime() const {return fTimeIn;}
89  Double_t GetTimeIn() const {return fTimeIn;}
90  Double_t GetTimeOut() const {return fTimeOut;}
91  Double_t GetLength() const;
92 
93  void PositionIn(TVector3& pos) { pos.SetXYZ(fX, fY, fZ); }
94  void PositionOut(TVector3& pos) { pos.SetXYZ(fX_out,fY_out,fZ_out); }
95  void MomentumOut(TVector3& mom) { mom.SetXYZ(fPx_out,fPy_out,fPz_out); }
96 
98  //@todo проверить эти функции
99  Double_t GetX(Double_t z) const;
100  Double_t GetY(Double_t z) const;
101  Double_t GetP(Double_t pointLen) const;
102  Double_t GetTime(Double_t pointLen) const;
103 
105  Bool_t IsUsable() const;
106 
108  virtual void Print(const Option_t* opt = 0) const;
109 
111  void SetLightYield(Double_t ly) {fLightYield = ly;}
112  void SetTimeIn(Double_t t) {fTimeIn = t;}
113  void SetXIn(Double_t xin) {fX = xin;}
114  void SetXOut(Double_t xout) {fX_out = xout;}
115  void SetYIn(Double_t yin) {fY = yin;}
116  void SetYOut(Double_t yout) {fY_out = yout;}
117  void SetZIn(Double_t zin) {fZ = zin;}
118  void SetZOut(Double_t zout) {fZ_out = zout;}
119 
120 protected:
121 
122  Int_t fEventID;
123  Int_t fMot0TrackID;
124  Int_t fFiberNb;
125  Int_t fPixelNb;
126  Int_t fModuleNb;
127  Double_t fMass;
128  Double32_t fXlocal, fYlocal, fZlocal;
129  Double32_t fX_out, fY_out, fZ_out;
130  Double32_t fPx_out, fPy_out, fPz_out;
131  Double_t fTimeIn, fTimeOut;
132  Double_t fLightYield;
133  Int_t fPID;
134  Double_t fCharge;
135  Double_t fTrackLength;
136 
137  ClassDef(ERNeuRadPoint,1)
138 };
139 
140 #endif // ERNeuRadPoint_H
void SetLightYield(Double_t ly)
Int_t GetEventID() const
Definition: ERNeuRadPoint.h:62
Bool_t IsUsable() const
virtual void Print(const Option_t *opt=0) const
virtual ~ERNeuRadPoint()
Double_t GetX(Double_t z) const
The data class for storing pieces of charged tracks in sensitive volumes in NeuRad.
Definition: ERNeuRadPoint.h:22