FairRoot/PandaRoot
PndRichGeo.h
Go to the documentation of this file.
1 #ifndef PNDRICHGEO_H
2 #define PNDRICHGEO_H
3 
4 #include "FairGeoSet.h"
5 #include "TVector3.h"
6 #include "TGraph.h"
7 
8 class PndRichGeo : public FairGeoSet
9 {
10 
11  private:
12  TVector3 fRichOffset;
13  TVector3 fAlBoxSize;
15 
16  TVector3 fAerogelSize;
17  TVector3 fAerogelOffset;
18  std::vector<Double_t> fnOpt;
19  std::vector<Double_t> fAerogelLayers;
20 
22  double fAngleExtansionOuter;
25  double fMirrorCurvature;
30  double fMirrorLength;
31 
32  double fPhDetLength;
33  double fPhDetThickness;
34 
35  double fBeamPipeHoleX;
36  double fBeamPipeHoleY;
37 
38  size_t fMirrorType;
39 
44  double fMirrorRadius;
45  TVector3 fMirrorAxis;
46  TVector3 fMirrorAxisGlob;
47 
49  std::vector<Double_t> fFlatMirrorZ;
50  std::vector<Double_t> fFlatMirrorY;
51  std::vector<Double_t> fFlatMirrorZGlob;
52  std::vector<Double_t> fFlatMirrorYGlob;
53 
55  std::vector<Double_t> fPhDetZ;
56  std::vector<Double_t> fPhDetY;
57  std::vector<Double_t> fWlPhoton;
58  std::vector<Double_t> fPDE;
59  TGraph *fPhDetEff;
60 
61  UInt_t fSenseLevel;
65  Int_t fSensorIndex;
66  TVector3 fSensorPosition;
67 
73  UInt_t fPhDetNumX;
74  UInt_t fPhDetNumY;
77 
78  UInt_t fPhDetDev;
83  UInt_t fiXmax, fiYmax;
84 
85  protected:
86  char modName[20]; // name of module
87  char eleName[20]; // substring for elements in module
88  public:
89  PndRichGeo();
91  const char* getModuleName(Int_t);
92  const char* getEleName(Int_t);
93  inline Int_t getModNumInMod(const TString&);
94 
95  void init(size_t ver = 0);
100  TVector3 mirrorAxis() {return fMirrorAxis;}
101  TVector3 mirrorAxisGlob() {return fMirrorAxisGlob;}
103  TVector3 PhDetPositionLocal(TVector3 pos);
104  TVector3 PhDetPositionGlobal(TVector3 pos);
105  TVector3 PositionDiscretization(TVector3 pos, bool cell = true);
106  TVector3 LocalPositionDiscretization(TVector3 pos,
107  Double_t dX = -1,
108  Double_t dY = -1,
109  Double_t dZ = -1);
110  UInt_t IndexX(TVector3 pos);
111  UInt_t IndexY(TVector3 pos);
112  TVector3 PixelPosition(UInt_t ix, UInt_t iy);
113  TVector3 PixelPositionLocal(UInt_t ix, UInt_t iy);
114  TVector3 PixelPositionGlobal(UInt_t ix, UInt_t iy);
115 
117  TVector3 richOffset() {return fRichOffset;}
118 
120  TVector3 alBoxSize() {return fAlBoxSize;}
121 
124 
126  TVector3 aerogelSize() {return fAerogelSize;}
127 
129  TVector3 aerogelOffset() {return fAerogelOffset;}
130 
132  std::vector<Double_t> nOpt() {return fnOpt;}
133 
135  std::vector<Double_t> aerogelLayers() {return fAerogelLayers;}
136 
139 
142 
145 
148 
151 
154 
157 
160 
163 
166 
168  std::vector<Double_t> flatMirrorY() {return fFlatMirrorY;}
169 
171  std::vector<Double_t> flatMirrorZ() {return fFlatMirrorZ;}
172 
174  std::vector<Double_t> flatMirrorYGlob() {return fFlatMirrorYGlob;}
175 
177  std::vector<Double_t> flatMirrorZGlob() {return fFlatMirrorZGlob;}
178 
180  std::vector<Double_t> phDetY() {return fPhDetY;}
181 
183  std::vector<Double_t> phDetZ() {return fPhDetZ;}
184 
186  UInt_t sensorIndex() {return fSensorIndex;}
187 
189  UInt_t phDetNPixelMaxX() {return fPhDetPixelNumX;}
190 
192  UInt_t phDetNPixelMaxY() {return fPhDetPixelNumY;}
193 
196 
199 
202 
205 
208 
210  UInt_t phDetNumX() {return fPhDetNumX;}
211 
213  UInt_t phDetNumY() {return fPhDetNumY;}
214 
217 
218  ClassDef(PndRichGeo,1)
219 };
220 
222 {
228  return (Int_t)(name[4]-'0')-1; //
229 }
230 
231 #endif
Int_t fSensorIndexY
Definition: PndRichGeo.h:64
double fAlBoxWallThickness
Definition: PndRichGeo.h:14
UInt_t fSensorsPerDevice
Definition: PndRichGeo.h:62
Double_t mirrorCurvature()
Definition: PndRichGeo.h:144
TVector3 mirrorAxis()
Definition: PndRichGeo.h:100
UInt_t fiYmax
Definition: PndRichGeo.h:83
std::vector< Double_t > fnOpt
refraction index of the aerogel
Definition: PndRichGeo.h:18
char eleName[20]
Definition: PndRichGeo.h:87
TVector3 pos
UInt_t fPhDetNumX
Definition: PndRichGeo.h:73
Double_t phDetQEff(Double_t wl)
Definition: PndRichGeo.cxx:531
size_t fMirrorType
Definition: PndRichGeo.h:38
std::vector< Double_t > fFlatMirrorY
No idea (SS)
Definition: PndRichGeo.h:50
double fMirrorRadius
Definition: PndRichGeo.h:44
double fBeamPipeHoleX
X size of the beam pipe hole [cm].
Definition: PndRichGeo.h:35
double fAerogelEntrancePositionZ
Definition: PndRichGeo.h:41
UInt_t IndexY(TVector3 pos)
Definition: PndRichGeo.cxx:787
Double_t mirrorThetaMin()
Definition: PndRichGeo.h:97
double fAngleOfMirrorPosition
Angle of the mirror chord [degree].
Definition: PndRichGeo.h:28
TVector3 aerogelOffset()
Definition: PndRichGeo.h:129
UInt_t fiXmax
Definition: PndRichGeo.h:83
TVector3 fMirrorAxis
Definition: PndRichGeo.h:45
TVector3 PhDetPositionLocal(TVector3 pos)
Definition: PndRichGeo.cxx:536
std::vector< Double_t > phDetZ()
Definition: PndRichGeo.h:183
TVector3 fRichOffset
Rich system offset [cm].
Definition: PndRichGeo.h:12
TVector3 aerogelSize()
Definition: PndRichGeo.h:126
std::vector< Double_t > fPhDetZ
No idea (SS)
Definition: PndRichGeo.h:55
Double_t fPhDetGapX
Definition: PndRichGeo.h:71
TVector3 PositionDiscretization(TVector3 pos, bool cell=true)
Definition: PndRichGeo.cxx:557
Double_t angleOfMirrorPosition()
Definition: PndRichGeo.h:147
const char * getEleName(Int_t)
Definition: PndRichGeo.cxx:819
UInt_t sensorsPerDevice()
Definition: PndRichGeo.h:216
double fMirrorCurvature
Mirror curvature [degree].
Definition: PndRichGeo.h:27
double fBeamPipeHoleY
Y size of the beam pipe hole [cm].
Definition: PndRichGeo.h:36
UInt_t fPhDetPixelNumX
Definition: PndRichGeo.h:75
TGraph * fPhDetEff
Definition: PndRichGeo.h:59
UInt_t fPhDetDev
Definition: PndRichGeo.h:78
std::vector< Double_t > phDetY()
Definition: PndRichGeo.h:180
UInt_t phDetNPixelMaxY()
Definition: PndRichGeo.h:192
TVector3 fAlBoxSize
Aluminium Box size [cm].
Definition: PndRichGeo.h:13
Double_t alBoxWallThickness()
Definition: PndRichGeo.h:123
double fAngleExtansionOuter
Definition: PndRichGeo.h:24
Double_t mirrorThickness()
Definition: PndRichGeo.h:150
double fMirrorThetaMax
Definition: PndRichGeo.h:43
TVector3 fPhDetNyU
Definition: PndRichGeo.h:80
UInt_t phDetNPixelMaxX()
Definition: PndRichGeo.h:189
std::vector< Double_t > fFlatMirrorZGlob
No idea (SS)
Definition: PndRichGeo.h:51
Double_t mirrorRadius()
Definition: PndRichGeo.h:99
std::vector< Double_t > fFlatMirrorYGlob
No idea (SS)
Definition: PndRichGeo.h:52
Double_t phDetSizeX()
Definition: PndRichGeo.h:198
TVector3 fPhDetNxU
Definition: PndRichGeo.h:80
TVector3 fPhDetNzU
Definition: PndRichGeo.h:80
double fPhDetThickness
Thickness or the photodetector plate [cm].
Definition: PndRichGeo.h:33
std::vector< Double_t > aerogelLayers()
Definition: PndRichGeo.h:135
Double_t phDetGapY()
Definition: PndRichGeo.h:207
TVector3 fAerogelOffset
Aerogel offset [cm].
Definition: PndRichGeo.h:17
TVector3 PhDetPositionGlobal(TVector3 pos)
Definition: PndRichGeo.cxx:549
std::vector< Double_t > fFlatMirrorZ
No idea (SS)
Definition: PndRichGeo.h:49
Double_t
UInt_t IndexX(TVector3 pos)
Definition: PndRichGeo.cxx:780
std::vector< Double_t > fWlPhoton
Definition: PndRichGeo.h:57
UInt_t phDetNumY()
Definition: PndRichGeo.h:213
double fMirrorThickness
Mirror thickness [cm].
Definition: PndRichGeo.h:29
Int_t fSensorIndex
Definition: PndRichGeo.h:65
Double_t fPhDetGapY
Definition: PndRichGeo.h:72
void init(size_t ver=0)
Definition: PndRichGeo.cxx:82
double fAngleExtansionInner
Definition: PndRichGeo.h:21
double fPhDetLength
Length of the photodetector plate [cm].
Definition: PndRichGeo.h:32
Double_t angleExtansionOuter()
Definition: PndRichGeo.h:141
Int_t getModNumInMod(const TString &)
Definition: PndRichGeo.h:221
UInt_t sensorIndex()
Definition: PndRichGeo.h:186
std::vector< Double_t > fAerogelLayers
No idea (SS)
Definition: PndRichGeo.h:19
Double_t beamPipeHoleY()
Definition: PndRichGeo.h:165
TString name
TVector3 PixelPositionLocal(UInt_t ix, UInt_t iy)
Definition: PndRichGeo.cxx:794
TVector3 PixelPositionGlobal(UInt_t ix, UInt_t iy)
Definition: PndRichGeo.cxx:801
Double_t fdZ
Definition: PndRichGeo.h:82
std::vector< Double_t > flatMirrorZGlob()
Definition: PndRichGeo.h:177
Double_t aerogelEntrancePositionZ()
Definition: PndRichGeo.h:96
UInt_t phDetNumX()
Definition: PndRichGeo.h:210
UInt_t fSenseLevel
Definition: PndRichGeo.h:61
UInt_t fPhDetNumY
Definition: PndRichGeo.h:74
Double_t phDetSizeY()
Definition: PndRichGeo.h:201
Double_t fPhDetAngle
Definition: PndRichGeo.h:79
Double_t angleExtansionInner()
Definition: PndRichGeo.h:138
Double_t phDetThickness()
Definition: PndRichGeo.h:159
TVector3 LocalPositionDiscretization(TVector3 pos, Double_t dX=-1, Double_t dY=-1, Double_t dZ=-1)
Definition: PndRichGeo.cxx:762
Double_t phDetAngle()
Definition: PndRichGeo.h:102
Double_t phDetGapX()
Definition: PndRichGeo.h:204
Double_t mirrorLength()
Definition: PndRichGeo.h:153
Double_t fPhDetSizeX
Definition: PndRichGeo.h:69
std::vector< Double_t > fPhDetY
No idea (SS)
Definition: PndRichGeo.h:56
TVector3 richOffset()
Definition: PndRichGeo.h:117
TVector3 fPhDetNzD
Definition: PndRichGeo.h:81
std::vector< Double_t > fPDE
Definition: PndRichGeo.h:58
TVector3 fMirrorAxisGlob
Definition: PndRichGeo.h:46
double fMirrorLength
Mirror length [cm].
Definition: PndRichGeo.h:30
Double_t phDetLength()
Definition: PndRichGeo.h:156
TVector3 fAerogelSize
Aerogel size [cm].
Definition: PndRichGeo.h:16
std::vector< Double_t > flatMirrorY()
Definition: PndRichGeo.h:168
TVector3 fPhDetNyD
Definition: PndRichGeo.h:81
char modName[20]
Definition: PndRichGeo.h:86
const char * getModuleName(Int_t)
Definition: PndRichGeo.cxx:808
Double_t beamPipeHoleX()
Definition: PndRichGeo.h:162
std::vector< Double_t > nOpt()
Definition: PndRichGeo.h:132
Double_t mirrorThetaMax()
Definition: PndRichGeo.h:98
UInt_t fPhDetPixelNumY
Definition: PndRichGeo.h:76
Double_t fdX
Definition: PndRichGeo.h:82
TVector3 mirrorAxisGlob()
Definition: PndRichGeo.h:101
Double_t fdY
Definition: PndRichGeo.h:82
TVector3 fSensorPosition
Definition: PndRichGeo.h:66
TVector3 alBoxSize()
Definition: PndRichGeo.h:120
std::vector< Double_t > flatMirrorZ()
Definition: PndRichGeo.h:171
TVector3 fPhDetP0D
Definition: PndRichGeo.h:81
Double_t fPhDetSizeY
Definition: PndRichGeo.h:70
Int_t fSensorIndexX
Definition: PndRichGeo.h:63
TVector3 PixelPosition(UInt_t ix, UInt_t iy)
Definition: PndRichGeo.cxx:681
TVector3 fPhDetP0U
Definition: PndRichGeo.h:80
double fMirrorThetaMin
Definition: PndRichGeo.h:42
TVector3 fPhDetNxD
Definition: PndRichGeo.h:81
std::vector< Double_t > flatMirrorYGlob()
Definition: PndRichGeo.h:174