PandaRoot
PndRich.h
Go to the documentation of this file.
1 #ifndef PNDRICH_H
2 #define PNDRICH_H
3 
4 #include "FairDetector.h"
5 #include "PndGeoHandling.h"
6 #include "PndRichGeo.h"
7 
8 #include "TVector3.h"
9 #include "TLorentzVector.h"
10 
11 class PndRichPDPoint;
12 class PndRichBarPoint;
13 class FairVolume;
14 class TClonesArray;
15 
16 class PndRich : public FairDetector {
17 
18  public:
23  PndRich(const char *Name, Bool_t Active);
24 
26  PndRich();
27 
29  virtual ~PndRich();
30 
32  virtual void Initialize();
33 
37  virtual Bool_t ProcessHits(FairVolume *v = 0);
38 
40  virtual void Register();
41 
43  virtual TClonesArray *GetCollection(Int_t iColl) const;
44 
46  virtual void Reset();
47 
49  void ConstructGeometry();
50  void ConstructOpGeometry();
51 
52  void SetRunCherenkov(Bool_t const &ch) { fRunCherenkov = ch; };
53 
54  void SetGeoVersion(UInt_t const &version) { fGeoVersion = version; };
55 
56  void UseProtection(Bool_t const &up) { fUseProtection = up; };
57 
58  std::vector<std::string> fListOfSensitives;
59  bool CheckIfSensitive(std::string name);
60 
61  Double_t lhcbaerindex(Double_t n400, Double_t wl);
62 
66  PndRichPDPoint *AddPDPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, UInt_t EventId = 0);
67  PndRichBarPoint *AddBarPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Int_t pdgCode, Double_t thetaC, Int_t eventID, Double_t mass,
68  TVector3 pos0, TVector3 mom0);
69 
74  virtual void CopyClones(TClonesArray *, TClonesArray *, Int_t) { ; } // cl1 cl2 offset //[R.K.03/2017] unused variable(s)
75  virtual void SetSpecialPhysicsCuts() { ; }
76  virtual void EndOfEvent();
77  virtual void FinishPrimary() { ; }
78  virtual void FinishRun();
79  virtual void BeginPrimary() { ; }
80  virtual void PostTrack() { ; }
81  virtual void PreTrack() { ; }
82  virtual void BeginEvent();
83 
84  private:
88  Int_t fTrackID;
89  Int_t fVolumeID;
90  TLorentzVector fPos;
91  TLorentzVector fMom;
92  Double_t fTime;
93  Double_t fLength;
94  Double_t fELoss;
95 
96  PndRichGeo *fGeo;
97  PndGeoHandling *fGeoH;
98 
99  Bool_t fUseProtection;
100  Bool_t fRunCherenkov;
101  UInt_t fGeoVersion;
102 
105  TClonesArray *fPndRichPDPointCollection;
106  TClonesArray *fPndRichBarPointCollection;
107 
108  PndRich(const PndRich &);
109  PndRich &operator=(const PndRich &);
110 
111  void DefGeoVersion();
112 
113  std::vector<Double_t> fWlPhoton;
114  std::vector<Double_t> fPDE;
115 
116  std::map<Int_t, Int_t> trackid;
117 
118  Double_t fnOpt;
119  Double_t fZabar;
120 
121  // TGeoElement *C;
122  // TGeoElement *H;
123  // TGeoElement *B;
124  // TGeoIsotope *B10;
125  // TGeoIsotope *B11;
126  // TGeoMaterial *matRcihProt;
127  // TGeoMedium *med;
128 
129  ClassDef(PndRich, 1)
130 };
131 
132 #endif // PNDRICH_H
virtual void Initialize()
bool CheckIfSensitive(std::string name)
virtual void SetSpecialPhysicsCuts()
Definition: PndRich.h:75
void SetRunCherenkov(Bool_t const &ch)
Definition: PndRich.h:52
virtual void FinishPrimary()
Definition: PndRich.h:77
virtual void FinishRun()
virtual void BeginPrimary()
Definition: PndRich.h:79
virtual void PostTrack()
Definition: PndRich.h:80
PndRichPDPoint * AddPDPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, UInt_t EventId=0)
void UseProtection(Bool_t const &up)
Definition: PndRich.h:56
virtual ~PndRich()
__m128 v
Definition: P4_F32vec4.h:3
Class to access the naming information of the MVD.
virtual void PreTrack()
Definition: PndRich.h:81
void ConstructOpGeometry()
std::vector< std::string > fListOfSensitives
Definition: PndRich.h:56
virtual void BeginEvent()
virtual void EndOfEvent()
Double_t lhcbaerindex(Double_t n400, Double_t wl)
void SetGeoVersion(UInt_t const &version)
Definition: PndRich.h:54
virtual void CopyClones(TClonesArray *, TClonesArray *, Int_t)
Definition: PndRich.h:74
virtual Bool_t ProcessHits(FairVolume *v=0)
virtual void Reset()
void ConstructGeometry()
virtual TClonesArray * GetCollection(Int_t iColl) const
virtual void Register()
PndRichBarPoint * AddBarPoint(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Int_t pdgCode, Double_t thetaC, Int_t eventID, Double_t mass, TVector3 pos0, TVector3 mom0)