PandaRoot
PndRich.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PNDRICH_H
14 #define PNDRICH_H
15 
16 #include "FairDetector.h"
17 #include "PndGeoHandling.h"
18 #include "PndRichGeo.h"
19 
20 #include "TVector3.h"
21 #include "TLorentzVector.h"
22 
23 class PndRichPDPoint;
24 class PndRichBarPoint;
25 class FairVolume;
26 class TClonesArray;
27 
28 class PndRich : public FairDetector {
29 
30  public:
35  PndRich(const char *Name, Bool_t Active);
36 
38  PndRich();
39 
41  virtual ~PndRich();
42 
44  virtual void Initialize();
45 
49  virtual Bool_t ProcessHits(FairVolume *v = 0);
50 
52  virtual void Register();
53 
55  virtual TClonesArray *GetCollection(Int_t iColl) const;
56 
58  virtual void Reset();
59 
61  void ConstructGeometry();
62  void ConstructOpGeometry();
63 
64  void SetRunCherenkov(Bool_t const &ch) { fRunCherenkov = ch; };
65 
66  void SetGeoVersion(UInt_t const &version) { fGeoVersion = version; };
67 
68  void UseProtection(Bool_t const &up) { fUseProtection = up; };
69 
70  std::vector<std::string> fListOfSensitives;
71  bool CheckIfSensitive(std::string name);
72 
73  Double_t lhcbaerindex(Double_t n400, Double_t wl);
74 
78  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);
79  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,
80  TVector3 pos0, TVector3 mom0);
81 
86  virtual void CopyClones(TClonesArray *, TClonesArray *, Int_t) { ; } // cl1 cl2 offset //[R.K.03/2017] unused variable(s)
87  virtual void SetSpecialPhysicsCuts() { ; }
88  virtual void EndOfEvent();
89  virtual void FinishPrimary() { ; }
90  virtual void FinishRun();
91  virtual void BeginPrimary() { ; }
92  virtual void PostTrack() { ; }
93  virtual void PreTrack() { ; }
94  virtual void BeginEvent();
95 
96  private:
100  Int_t fTrackID;
101  Int_t fVolumeID;
102  TLorentzVector fPos;
103  TLorentzVector fMom;
104  Double_t fTime;
105  Double_t fLength;
106  Double_t fELoss;
107 
108  PndRichGeo *fGeo;
109  PndGeoHandling *fGeoH;
110 
111  Bool_t fUseProtection;
112  Bool_t fRunCherenkov;
113  UInt_t fGeoVersion;
114 
117  TClonesArray *fPndRichPDPointCollection;
118  TClonesArray *fPndRichBarPointCollection;
119 
120  PndRich(const PndRich &);
121  PndRich &operator=(const PndRich &);
122 
123  void DefGeoVersion();
124 
125  std::vector<Double_t> fWlPhoton;
126  std::vector<Double_t> fPDE;
127 
128  std::map<Int_t, Int_t> trackid;
129 
130  Double_t fnOpt;
131  Double_t fZabar;
132 
133  // TGeoElement *C;
134  // TGeoElement *H;
135  // TGeoElement *B;
136  // TGeoIsotope *B10;
137  // TGeoIsotope *B11;
138  // TGeoMaterial *matRcihProt;
139  // TGeoMedium *med;
140 
141  ClassDef(PndRich, 1)
142 };
143 
144 #endif // PNDRICH_H
virtual void Initialize()
bool CheckIfSensitive(std::string name)
virtual void SetSpecialPhysicsCuts()
Definition: PndRich.h:87
void SetRunCherenkov(Bool_t const &ch)
Definition: PndRich.h:64
virtual void FinishPrimary()
Definition: PndRich.h:89
virtual void FinishRun()
virtual void BeginPrimary()
Definition: PndRich.h:91
virtual void PostTrack()
Definition: PndRich.h:92
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:68
virtual ~PndRich()
__m128 v
Definition: P4_F32vec4.h:15
Class to access the naming information of the MVD.
virtual void PreTrack()
Definition: PndRich.h:93
void ConstructOpGeometry()
std::vector< std::string > fListOfSensitives
Definition: PndRich.h:68
virtual void BeginEvent()
virtual void EndOfEvent()
Double_t lhcbaerindex(Double_t n400, Double_t wl)
void SetGeoVersion(UInt_t const &version)
Definition: PndRich.h:66
virtual void CopyClones(TClonesArray *, TClonesArray *, Int_t)
Definition: PndRich.h:86
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)