er  dev
ERGadastCsIPoint.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 ERGadastCsIPoint_H
10 #define ERGadastCsIPoint_H
11 
12 #include "TVector3.h"
13 
14 #include "FairMCPoint.h"
15 
21 class ERGadastCsIPoint : public FairMCPoint
22 {
23 
24 public:
25 
28 
45  ERGadastCsIPoint(Int_t eventID, Int_t trackID,
46  Int_t mot0trackID,
47  Double_t mass,
48  TVector3 posIn,
49  TVector3 posOut, TVector3 momIn, TVector3 momOut,
50  Double_t tof, Double_t length, Double_t eLoss, Int_t pdg,
51  Int_t wall, Int_t block, Int_t cell);
52 
55 
56 
58  virtual ~ERGadastCsIPoint();
59 
61  ERGadastCsIPoint& operator=(const ERGadastCsIPoint&) { return *this; }
62 
65  Int_t GetEventID() const { return fEventID; }
66  Int_t GetMot0TrackID() const { return fMot0TrackID; }
67  Double_t GetXIn() const { return fX; }
68  Double_t GetYIn() const { return fY; }
69  Double_t GetZIn() const { return fZ; }
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 GetPxOut() const { return fPx_out; }
74  Double_t GetPyOut() const { return fPy_out; }
75  Double_t GetPzOut() const { return fPz_out; }
76  Double_t GetMass() const { return fMass; }
77  Int_t GetWall() const { return fWall; }
78  Int_t GetBlock() const { return fBlock; }
79  Int_t GetCell() const { return fCell; }
80  void PositionIn(TVector3& pos) const { pos.SetXYZ(fX, fY, fZ); }
81  void PositionOut(TVector3& pos) const { pos.SetXYZ(fX_out,fY_out,fZ_out); }
82  void MomentumOut(TVector3& mom) const { mom.SetXYZ(fPx_out,fPy_out,fPz_out); }
83 
85  Double_t GetX(Double_t z) const;
86 
88  Double_t GetY(Double_t z) const;
89 
91  Bool_t IsUsable() const;
92 
93 public:
94 
96  virtual void Print(const Option_t* opt = 0) const;
97 
98 protected:
99 
100  Int_t fEventID;
101  Int_t fMot0TrackID;
102  Double_t fMass;
103  Double32_t fX_out, fY_out, fZ_out;
104  Double32_t fPx_out, fPy_out, fPz_out;
105  Int_t fPDG;
106  Int_t fWall;
107  Int_t fBlock;
108  Int_t fCell;
109 
110  ClassDef(ERGadastCsIPoint,1)
111 };
112 
113 #endif
Int_t fBlock
CsI Block number.
Double32_t fZ_out
point out coordinate
Double_t fMass
mass
virtual void Print(const Option_t *opt=0) const
Print point information to screen.
Bool_t IsUsable() const
Check for distance between in and out.
Int_t fEventID
event index
Int_t fMot0TrackID
0th mother track index
Int_t fPDG
particle PDG
Int_t fWall
CsI Wall number.
The data class for storing pieces of charged tracks in sensitive volumes in CsI crystall.
virtual ~ERGadastCsIPoint()
Destructor.
ERGadastCsIPoint & operator=(const ERGadastCsIPoint &)
operator=
ERGadastCsIPoint()
Default constructor.
Double_t GetX(Double_t z) const
Point X coordinate at given z from linear extrapolation.
Int_t GetEventID() const
Double_t GetY(Double_t z) const
Point Y coordinate at given z from linear extrapolation.
Int_t fCell
CsI Cell number.
Double32_t fPz_out
point out momentum