Belle II Software  release-05-02-19
ARICHGeometryPar.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Luka Santelj, Rok Pestotnik *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef ARICHGEOMETRYPAR_H
12 #define ARICHGEOMETRYPAR_H
13 
14 #include <vector>
15 #include <string>
16 #include <map>
17 #include <unordered_set>
18 #include <framework/gearbox/GearDir.h>
19 #include "TVector3.h"
20 #include "TVector2.h"
21 #include <G4ThreeVector.hh>
22 
23 #define MAX_N_ALAYERS 5
24 #define MAXPTS_QE 100
25 
26 namespace Belle2 {
31 
37 
38  public:
39 
42 
44  virtual ~ARICHGeometryPar();
45 
47 
50  static ARICHGeometryPar* Instance();
52  void Initialize(const GearDir& content);
54  void Initialize(const GearDir& content, const GearDir& mirrorinfo);
55 
57  void clear(void);
58 
60  void Print(void) const;
61 
63  void read(const GearDir& content);
64 
66  void readModuleInfo(const GearDir& content);
67 
69  double QE(double e) const;
70 
72  double getColEffi() const;
73 
75  double getSensitiveSurfaceSize() const;
77  int getNMCopies() const;
79  int getCopyNo(TVector3 hit);
81  TVector3 getOrigin(int copyno);
83  G4ThreeVector getOriginG4(int copyNo);
85  double getModAngle(int copyno);
87  int getChannelID(TVector2 hit);
89  TVector2 getChannelCenterLoc(int chID);
91  double getChannelQE(int moduleID, int channelID);
93  TVector2 getChipLocPos(int chipID);
95  int getChipID(TVector2 locpos);
97  TVector3 getChannelCenterGlob(int modID, int chanID);
99  TVector3 getMirrorNormal(int mirID);
101  TVector3 getMirrorPoint(int mirID);
103  double getAerogelTransmissionLength(int ilayer);
105  double getAerogelRefIndex(int ilayer);
107  double getAerogelThickness(int ilayer);
109  double getAerogelZPosition(int ilayer);
111  int getNMirrors();
113  double getMirrorsStartAngle();
115  double getMirrorsZPosition();
119  double getDetectorWindowRefIndex();
123  double getDetectorPadSize();
125  double getDetectorZPosition();
127  int getDetectorXPadNumber();
129  double getQEScaling();
131  double getWindowAbsorbtion();
133  double getChipNegativeCrosstalk();
135  int getNrTiles();
137  int getNphiTiles(int nRing);
139  double getTileGap();
141  double getAeroTubeRin();
143  double getAeroTubeRout();
145  void setAeroTransLength(int ilayer, double trlen);
147  void setAeroRefIndex(int ilayer, double n);
149  void setAerogelThickness(int ilayer, double thick);
151  void setAerogelZPosition(int ilayer, double zPos);
153  void setWindowRefIndex(double refInd);
155  bool isInit();
157  bool isSimple();
159  void initDetectorMask(int nmodules);
161  void setActive(int module, int channel, bool val);
163  bool isActive(int module, int channel);
164 
166  int getMergerFromCooper(int cooperID, int finesse);
168  int getBoardFromMerger(int mergerID, int slot);
170  int getNBoardsOnMerger(int mergerID);
171 
173  int getAerogelTileID(TVector2 locpos);
174 
176  const std::unordered_set<unsigned int>& getCopperIDs() const
177  {
178  return m_copperIDs;
179  }
180 
181  private:
182 
183  std::string m_version;
184  double m_padSize;
185  double m_chipGap;
188  double m_detZpos;
189  double m_modXSize;
190  double m_modZSize;
191  double m_winThick;
192  double m_winRefInd;
197  double m_mirrorZPos;
198  int m_nPadX;
199  int m_nRad;
200  bool m_init;
201  bool m_simple;
202  double m_aeroTrLength[MAX_N_ALAYERS];
203  double m_aeroRefIndex[MAX_N_ALAYERS];
204  double m_aeroZPosition[MAX_N_ALAYERS];
205  double m_aeroThickness[MAX_N_ALAYERS];
206  int m_nPads;
207  std::vector<uint32_t> m_DetectorMask;
208  std::vector<uint8_t> m_ChannelQE;
210  double m_ColEffi;
211  double m_LambdaFirst;
212  double m_LambdaStep;
214  double m_qeScale;
217  double m_QE[MAXPTS_QE];
219  int m_tileNr;
220  int m_tileNphi[5];
221  double m_tileGap;
222  double m_aeroRin;
223  double m_aeroRout;
225  void modulesPosition(const GearDir& content);
227 
229  void modulesPositionSimple(const GearDir& content);
230 
232  void chipLocPosition();
233 
235  void padPositions();
237 
239  void mirrorPositions(const GearDir& content);
240 
242  void readMirrorAlignment(const GearDir& content);
243 
245  void mirrorPositionSimple(const GearDir& content);
246 
248  void frontEndMapping(const GearDir& content);
249 
252  // vectors holding information on HAPDs and chips and pads positions.
253 
254  std::vector<int>
256  std::vector<double> m_fDFi;
257  std::vector<double> m_fDR;
258  int m_nrow;
259  std::vector<double> m_fR;
260  std::vector<double> m_fFi;
261  std::vector<double> m_fFiMod;
262  std::vector<TVector2> m_chipLocPos;
263  std::map<int, TVector2> m_padLocPositions;
264  std::vector<TVector2> m_padWorldPositions;
265  std::vector<TVector3> m_mirrornorm;
266  std::vector<TVector3> m_mirrorpoint;
268  std::map<std::pair<unsigned, int>, unsigned> m_copper2merger;
269  std::map<int, std::vector<unsigned>> m_merger2feb;
270  std::unordered_set<unsigned int> m_copperIDs;
271  std::unordered_set<unsigned int> m_mergerIDs;
272  std::unordered_set<unsigned int> m_boardIDs;
274  };
275 
276  //-----------------------------------------------------------------------------
277 
278  inline double ARICHGeometryPar::getColEffi() const
279  {
280  return m_ColEffi;
281  }
282 
284  {
285  return m_nPadX * m_padSize + m_chipGap;
286  }
287 
288  inline int ARICHGeometryPar::getNMCopies() const
289  {
290  return m_fR.size();
291  }
292 
293  inline TVector2 ARICHGeometryPar::getChipLocPos(int chipID)
294  {
295  return m_chipLocPos.at(chipID);
296  }
297 
299  {
300  return m_init;
301  }
302 
304  {
305  return m_simple;
306  }
307 
308 
310  {
311  return m_aeroTrLength[layer];
312  }
313 
314  inline double ARICHGeometryPar::getAerogelRefIndex(int layer)
315  {
316  return m_aeroRefIndex[layer];
317  }
318 
319  inline double ARICHGeometryPar::getAerogelThickness(int layer)
320  {
321  return m_aeroThickness[layer];
322  }
323 
324  inline double ARICHGeometryPar::getAerogelZPosition(int layer)
325  {
326  return m_aeroZPosition[layer];
327  }
328 
330  {
331  return m_nMirrors;
332  }
333 
335  {
336  return m_winThick;
337  }
338 
340  {
341  return m_winRefInd;
342  }
343 
345  {
346  return m_nRad;
347  }
348 
350  {
351  return m_padSize;
352  }
353 
355  {
356  return m_nPadX;
357  }
358 
360  {
361  return m_mirrorStartAng;
362  }
363 
365  {
366  return m_mirrorZPos;
367  }
368 
370  {
371  return m_detZpos;
372  }
373 
375  {
376  return m_qeScale;
377  }
378 
380  {
381  return m_windowAbsorbtion;
382  }
383 
385  {
387  }
388 
390  {
391  return m_tileNr;
392  }
393 
394  inline int ARICHGeometryPar::getNphiTiles(int nRing)
395  {
396  if (nRing > 4) return 0;
397  return m_tileNphi[nRing];
398  }
399 
401  {
402  return m_tileGap;
403  }
404 
406  {
407  return m_aeroRin;
408  }
409 
411  {
412  return m_aeroRout;
413  }
414 
415 
416 
418 } // end of namespace Belle2
419 
420 #endif
421 
Belle2::ARICHGeometryPar::m_mirrorpoint
std::vector< TVector3 > m_mirrorpoint
vector holding one point of each mirror plate
Definition: ARICHGeometryPar.h:266
Belle2::ARICHGeometryPar::m_padSize
double m_padSize
Detector pad size.
Definition: ARICHGeometryPar.h:184
Belle2::ARICHGeometryPar::getNumberOfAerogelRadiators
int getNumberOfAerogelRadiators()
get number of aerogel layers
Definition: ARICHGeometryPar.h:344
Belle2::ARICHGeometryPar::chipLocPosition
void chipLocPosition()
calculates the centers of chips in detector module local coordinates
Definition: ARICHGeometryPar.cc:409
Belle2::ARICHGeometryPar::isInit
bool isInit()
returns true if parametrisation is initialized, false otherwise
Definition: ARICHGeometryPar.h:298
Belle2::ARICHGeometryPar::m_fDR
std::vector< double > m_fDR
minimal distance between detector modules in radial direction
Definition: ARICHGeometryPar.h:257
Belle2::ARICHGeometryPar::m_LambdaStep
double m_LambdaStep
wavelength [nm]: step
Definition: ARICHGeometryPar.h:212
Belle2::ARICHGeometryPar::getChipID
int getChipID(TVector2 locpos)
get ID number of chip containing point "locpos"
Definition: ARICHGeometryPar.cc:419
Belle2::ARICHGeometryPar::getChannelQE
double getChannelQE(int moduleID, int channelID)
get channel quantum efficiency
Definition: ARICHGeometryPar.cc:306
Belle2::ARICHGeometryPar::m_nPads
int m_nPads
total number of pads in a sensor
Definition: ARICHGeometryPar.h:206
Belle2::ARICHGeometryPar::mirrorPositions
void mirrorPositions(const GearDir &content)
calculates parameters of all mirror planes (normal vector and point on plane)
Definition: ARICHGeometryPar.cc:469
Belle2::ARICHGeometryPar::getAerogelThickness
double getAerogelThickness(int ilayer)
get thickness of "ilayer" aerogel layer
Definition: ARICHGeometryPar.h:319
Belle2::ARICHGeometryPar::getNphiTiles
int getNphiTiles(int nRing)
get number of aerogel tiles in each radial ring
Definition: ARICHGeometryPar.h:394
Belle2::ARICHGeometryPar::m_fFi
std::vector< double > m_fFi
angular coordinate of detector modules
Definition: ARICHGeometryPar.h:260
Belle2::ARICHGeometryPar::~ARICHGeometryPar
virtual ~ARICHGeometryPar()
Destructor.
Definition: ARICHGeometryPar.cc:45
Belle2::ARICHGeometryPar::m_merger2feb
std::map< int, std::vector< unsigned > > m_merger2feb
mapping of front-end boards to mergers
Definition: ARICHGeometryPar.h:269
Belle2::ARICHGeometryPar::getNBoardsOnMerger
int getNBoardsOnMerger(int mergerID)
returns number of front-end boards connected to the merger
Definition: ARICHGeometryPar.cc:259
Belle2::ARICHGeometryPar::m_ChannelQE
std::vector< uint8_t > m_ChannelQE
Channel QE at 400nm.
Definition: ARICHGeometryPar.h:208
Belle2::ARICHGeometryPar::m_copperIDs
std::unordered_set< unsigned int > m_copperIDs
COPPER ID's.
Definition: ARICHGeometryPar.h:270
Belle2::ARICHGeometryPar::m_tileNr
int m_tileNr
Number of aerogel tiles in radial direction.
Definition: ARICHGeometryPar.h:219
Belle2::ARICHGeometryPar::m_nRad
int m_nRad
Number of aerogel layers.
Definition: ARICHGeometryPar.h:199
Belle2::ARICHGeometryPar::getQEScaling
double getQEScaling()
get QE scaling factor for photons internally reflected in HAPD window
Definition: ARICHGeometryPar.h:374
Belle2::ARICHGeometryPar::m_boardIDs
std::unordered_set< unsigned int > m_boardIDs
FEB ID's.
Definition: ARICHGeometryPar.h:272
Belle2::ARICHGeometryPar::getSensitiveSurfaceSize
double getSensitiveSurfaceSize() const
get size of detector sensitive surface (size of two chips + gap between)
Definition: ARICHGeometryPar.h:283
Belle2::ARICHGeometryPar::m_chipNegativeCrosstalk
double m_chipNegativeCrosstalk
to simulate opposite polarity crosstalk among channels on chip
Definition: ARICHGeometryPar.h:216
Belle2::ARICHGeometryPar::getMirrorNormal
TVector3 getMirrorNormal(int mirID)
get normal vector of mirID-th mirror plate
Definition: ARICHGeometryPar.cc:495
Belle2::ARICHGeometryPar::m_LambdaFirst
double m_LambdaFirst
wavelength [nm]: first QE data point
Definition: ARICHGeometryPar.h:211
Belle2::ARICHGeometryPar::getNrTiles
int getNrTiles()
get number of aerogel tiles in radial direction (number of rings)
Definition: ARICHGeometryPar.h:389
Belle2::ARICHGeometryPar::getAerogelZPosition
double getAerogelZPosition(int ilayer)
get z position of "ilayer" aerogel layer
Definition: ARICHGeometryPar.h:324
Belle2::ARICHGeometryPar::m_detOuterRadius
double m_detOuterRadius
Outer radius of detector tube.
Definition: ARICHGeometryPar.h:187
Belle2::ARICHGeometryPar::m_chipGap
double m_chipGap
Gap between chips in detector module.
Definition: ARICHGeometryPar.h:185
Belle2::ARICHGeometryPar::m_padWorldPositions
std::vector< TVector2 > m_padWorldPositions
map holding channel global positions
Definition: ARICHGeometryPar.h:264
Belle2::ARICHGeometryPar::Initialize
void Initialize(const GearDir &content)
calculates detector parameters needed for geometry build and reconstruction.
Definition: ARICHGeometryPar.cc:70
Belle2::ARICHGeometryPar::setAeroRefIndex
void setAeroRefIndex(int ilayer, double n)
set refractive index of "ilayer" aerogel layer
Definition: ARICHGeometryPar.cc:510
Belle2::ARICHGeometryPar::m_detInnerRadius
double m_detInnerRadius
Inner radius of detector tube.
Definition: ARICHGeometryPar.h:186
Belle2::ARICHGeometryPar::Instance
static ARICHGeometryPar * Instance()
Static method to get a reference to the ARICHGeometryPar instance.
Definition: ARICHGeometryPar.cc:32
Belle2::ARICHGeometryPar::m_winRefInd
double m_winRefInd
Detector window refractive index.
Definition: ARICHGeometryPar.h:192
Belle2::ARICHGeometryPar::clear
void clear(void)
Clears.
Definition: ARICHGeometryPar.cc:75
Belle2::ARICHGeometryPar::getAerogelRefIndex
double getAerogelRefIndex(int ilayer)
get refractive index of "ilayer" aerogel layer
Definition: ARICHGeometryPar.h:314
Belle2::ARICHGeometryPar::m_chipLocPos
std::vector< TVector2 > m_chipLocPos
vector holding chip positions (in detector module local coordinates)
Definition: ARICHGeometryPar.h:262
Belle2::ARICHGeometryPar::getMirrorsStartAngle
double getMirrorsStartAngle()
get the phi angle of first corner of mirror polygon
Definition: ARICHGeometryPar.h:359
Belle2::ARICHGeometryPar::m_DetectorMask
std::vector< uint32_t > m_DetectorMask
Detector Mask of inactive channels.
Definition: ARICHGeometryPar.h:207
Belle2::ARICHGeometryPar::m_windowAbsorbtion
double m_windowAbsorbtion
absorbtion probability for photons internally reflected in HAPD window
Definition: ARICHGeometryPar.h:215
Belle2::ARICHGeometryPar::m_tileNphi
int m_tileNphi[5]
Number of aerogel tiles in phi direction of each "radial" ring.
Definition: ARICHGeometryPar.h:220
Belle2::ARICHGeometryPar::m_nrow
int m_nrow
number of detector rings
Definition: ARICHGeometryPar.h:258
Belle2::ARICHGeometryPar::getNMirrors
int getNMirrors()
get number of mirror plates
Definition: ARICHGeometryPar.h:329
Belle2::ARICHGeometryPar::getMergerFromCooper
int getMergerFromCooper(int cooperID, int finesse)
returns merger board ID from cooperID and finesse
Definition: ARICHGeometryPar.cc:233
Belle2::ARICHGeometryPar::padPositions
void padPositions()
calculates the centers of channels in local (detector module) and global coordinates
Definition: ARICHGeometryPar.cc:442
Belle2::ARICHGeometryPar::QE
double QE(double e) const
get photocathode quantum efficiency at energy e.
Definition: ARICHGeometryPar.cc:291
Belle2::ARICHGeometryPar::m_mirrorStartAng
double m_mirrorStartAng
The angle of first corner of mirror plates polygon.
Definition: ARICHGeometryPar.h:195
Belle2::ARICHGeometryPar::getAeroTubeRin
double getAeroTubeRin()
get the inner size of aerogel tube
Definition: ARICHGeometryPar.h:405
Belle2::ARICHGeometryPar::m_aeroRin
double m_aeroRin
Inner radius of aerogel tube.
Definition: ARICHGeometryPar.h:222
Belle2::ARICHGeometryPar::getOrigin
TVector3 getOrigin(int copyno)
get the position of copyno-th HAPD module origin
Definition: ARICHGeometryPar.cc:391
Belle2::ARICHGeometryPar::getChannelID
int getChannelID(TVector2 hit)
get ID number of channel containing point "hit" (hit is in detector module local coordinates)
Definition: ARICHGeometryPar.cc:312
Belle2::ARICHGeometryPar::getMirrorsZPosition
double getMirrorsZPosition()
get the z position of mirror plates (starting z)
Definition: ARICHGeometryPar.h:364
Belle2::ARICHGeometryPar::m_modZSize
double m_modZSize
Detector module height.
Definition: ARICHGeometryPar.h:190
Belle2::ARICHGeometryPar::getAerogelTransmissionLength
double getAerogelTransmissionLength(int ilayer)
get transmission length of "ilayer" aerogel layer
Definition: ARICHGeometryPar.h:309
Belle2::ARICHGeometryPar::m_mirrorThickness
double m_mirrorThickness
Thickness of mirror plates.
Definition: ARICHGeometryPar.h:194
Belle2::ARICHGeometryPar::m_qeScale
double m_qeScale
QE scale factor for photons internally reflected in HAPD window.
Definition: ARICHGeometryPar.h:214
Belle2::ARICHGeometryPar::setActive
void setActive(int module, int channel, bool val)
set the channel on/off
Definition: ARICHGeometryPar.cc:541
Belle2::ARICHGeometryPar::getDetectorWindowRefIndex
double getDetectorWindowRefIndex()
get refractive index of detector module window
Definition: ARICHGeometryPar.h:339
Belle2::ARICHGeometryPar::m_aeroTrLength
double m_aeroTrLength[MAX_N_ALAYERS]
Array of aerogel transmission lenths.
Definition: ARICHGeometryPar.h:202
Belle2::ARICHGeometryPar::p_B4ARICHGeometryParDB
static ARICHGeometryPar * p_B4ARICHGeometryParDB
Pointer that saves the instance of this class.
Definition: ARICHGeometryPar.h:250
Belle2::ARICHGeometryPar::getModAngle
double getModAngle(int copyno)
get the angle of copyno-th HAPD rotation
Definition: ARICHGeometryPar.cc:404
Belle2::ARICHGeometryPar::m_aeroRout
double m_aeroRout
Outer radius of aerogel tube.
Definition: ARICHGeometryPar.h:223
Belle2::ARICHGeometryPar::getDetectorZPosition
double getDetectorZPosition()
get z position of detector plane (starting z)
Definition: ARICHGeometryPar.h:369
Belle2::ARICHGeometryPar::mirrorPositionSimple
void mirrorPositionSimple(const GearDir &content)
Gets mirrors positions directly from xml file (in case of simple "beamtest" geometry).
Definition: ARICHGeometryPar.cc:481
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ARICHGeometryPar::getAeroTubeRout
double getAeroTubeRout()
get the outer size of aerogel tube
Definition: ARICHGeometryPar.h:410
Belle2::ARICHGeometryPar::readModuleInfo
void readModuleInfo(const GearDir &content)
read parameters of each module from gearbox.
Definition: ARICHGeometryPar.cc:268
Belle2::ARICHGeometryPar::m_tileGap
double m_tileGap
Gap size between two aerogel tiles.
Definition: ARICHGeometryPar.h:221
Belle2::ARICHGeometryPar::getColEffi
double getColEffi() const
get HAPD collection efficiency.
Definition: ARICHGeometryPar.h:278
Belle2::ARICHGeometryPar::m_simple
bool m_simple
True if parametrization initialized with simple geometry (beamtest)
Definition: ARICHGeometryPar.h:201
Belle2::GearDir
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:41
Belle2::ARICHGeometryPar::m_QE
double m_QE[MAXPTS_QE]
quantum efficiency curve
Definition: ARICHGeometryPar.h:217
Belle2::ARICHGeometryPar::getBoardFromMerger
int getBoardFromMerger(int mergerID, int slot)
returns front-end board ID from merger ID and slot
Definition: ARICHGeometryPar.cc:245
Belle2::ARICHGeometryPar
The Class for ARICH Geometry Parameters.
Definition: ARICHGeometryPar.h:36
Belle2::ARICHGeometryPar::getCopyNo
int getCopyNo(TVector3 hit)
get the copy number of HAPD module containing point "hit"
Definition: ARICHGeometryPar.cc:374
Belle2::ARICHGeometryPar::m_ColEffi
double m_ColEffi
collection efficiency
Definition: ARICHGeometryPar.h:210
Belle2::ARICHGeometryPar::m_init
bool m_init
True if parametrization is already initialized.
Definition: ARICHGeometryPar.h:200
Belle2::ARICHGeometryPar::getChannelCenterLoc
TVector2 getChannelCenterLoc(int chID)
get center position of chID channel (in detector module local coordinates)
Definition: ARICHGeometryPar.cc:436
Belle2::ARICHGeometryPar::m_modXSize
double m_modXSize
Detector module length.
Definition: ARICHGeometryPar.h:189
Belle2::ARICHGeometryPar::m_version
std::string m_version
The version of geometry parameters.
Definition: ARICHGeometryPar.h:183
Belle2::ARICHGeometryPar::getCopperIDs
const std::unordered_set< unsigned int > & getCopperIDs() const
Returns a set of copper ID's.
Definition: ARICHGeometryPar.h:176
Belle2::ARICHGeometryPar::m_ncol
std::vector< int > m_ncol
m_ncol[i] gives number of detector modules in i-th detector ring (first one is the outer most)
Definition: ARICHGeometryPar.h:255
Belle2::ARICHGeometryPar::m_copper2merger
std::map< std::pair< unsigned, int >, unsigned > m_copper2merger
mapping of merger boards to cooper boards
Definition: ARICHGeometryPar.h:268
Belle2::ARICHGeometryPar::getDetectorXPadNumber
int getDetectorXPadNumber()
get number of pads of detector module (in one direction)
Definition: ARICHGeometryPar.h:354
Belle2::ARICHGeometryPar::m_aeroThickness
double m_aeroThickness[MAX_N_ALAYERS]
Array of aerogel thickness.
Definition: ARICHGeometryPar.h:205
Belle2::ARICHGeometryPar::ARICHGeometryPar
ARICHGeometryPar()
Constructor.
Definition: ARICHGeometryPar.cc:40
Belle2::ARICHGeometryPar::isActive
bool isActive(int module, int channel)
check the activity of the channel
Definition: ARICHGeometryPar.cc:553
Belle2::ARICHGeometryPar::m_aeroRefIndex
double m_aeroRefIndex[MAX_N_ALAYERS]
Array of aerogel refracive indices.
Definition: ARICHGeometryPar.h:203
Belle2::ARICHGeometryPar::modulesPosition
void modulesPosition(const GearDir &content)
calculates the positions of HAPD modules, with the parameters from xml.
Definition: ARICHGeometryPar.cc:326
Belle2::ARICHGeometryPar::m_detZpos
double m_detZpos
Z position of detector plane.
Definition: ARICHGeometryPar.h:188
Belle2::ARICHGeometryPar::setAerogelZPosition
void setAerogelZPosition(int ilayer, double zPos)
set z position of "ilayer" aerogel layer
Definition: ARICHGeometryPar.cc:521
Belle2::ARICHGeometryPar::m_fDFi
std::vector< double > m_fDFi
angle covered by one detector module in ring
Definition: ARICHGeometryPar.h:256
Belle2::ARICHGeometryPar::m_mirrorOuterRad
double m_mirrorOuterRad
Radius of circle outscribed to mirrors polygon.
Definition: ARICHGeometryPar.h:193
Belle2::ARICHGeometryPar::getTileGap
double getTileGap()
get size of the gap between aerogel tiles
Definition: ARICHGeometryPar.h:400
Belle2::ARICHGeometryPar::getDetectorPadSize
double getDetectorPadSize()
get detectors module pad size
Definition: ARICHGeometryPar.h:349
Belle2::ARICHGeometryPar::readMirrorAlignment
void readMirrorAlignment(const GearDir &content)
Reads mirror plates alignment parameters.
Definition: ARICHGeometryPar.cc:561
Belle2::ARICHGeometryPar::read
void read(const GearDir &content)
gets geometry parameters from gearbox.
Definition: ARICHGeometryPar.cc:121
Belle2::ARICHGeometryPar::setWindowRefIndex
void setWindowRefIndex(double refInd)
set detector module window refractive index
Definition: ARICHGeometryPar.cc:526
Belle2::ARICHGeometryPar::m_winThick
double m_winThick
Thickness of detector module window.
Definition: ARICHGeometryPar.h:191
Belle2::ARICHGeometryPar::getWindowAbsorbtion
double getWindowAbsorbtion()
get absorbtion probability for photons internally reflected in HAPD window
Definition: ARICHGeometryPar.h:379
Belle2::ARICHGeometryPar::m_fR
std::vector< double > m_fR
radial coordinate of detector modules
Definition: ARICHGeometryPar.h:259
Belle2::ARICHGeometryPar::setAeroTransLength
void setAeroTransLength(int ilayer, double trlen)
set transmission length of "ilayer" aerogel layer
Definition: ARICHGeometryPar.cc:505
Belle2::ARICHGeometryPar::modulesPositionSimple
void modulesPositionSimple(const GearDir &content)
gets modules positions directly from xml file (for simple "beamtest" geometry).
Definition: ARICHGeometryPar.cc:362
Belle2::ARICHGeometryPar::m_mirrornorm
std::vector< TVector3 > m_mirrornorm
vector holding normal vectors of mirror plates
Definition: ARICHGeometryPar.h:265
Belle2::ARICHGeometryPar::setAerogelThickness
void setAerogelThickness(int ilayer, double thick)
set thickness of "ilayer" aerogel layer
Definition: ARICHGeometryPar.cc:515
Belle2::ARICHGeometryPar::m_mergerIDs
std::unordered_set< unsigned int > m_mergerIDs
Merger ID's.
Definition: ARICHGeometryPar.h:271
Belle2::ARICHGeometryPar::getChipNegativeCrosstalk
double getChipNegativeCrosstalk()
get factor to suppress p.e. detection efficiency due to negative polarity crosstalk among chip channe...
Definition: ARICHGeometryPar.h:384
Belle2::ARICHGeometryPar::m_nPadX
int m_nPadX
Number of detector module pads in one direction.
Definition: ARICHGeometryPar.h:198
Belle2::ARICHGeometryPar::m_nMirrors
int m_nMirrors
Number of mirrors segments.
Definition: ARICHGeometryPar.h:196
Belle2::ARICHGeometryPar::m_fFiMod
std::vector< double > m_fFiMod
angle of detector module
Definition: ARICHGeometryPar.h:261
Belle2::ARICHGeometryPar::m_padLocPositions
std::map< int, TVector2 > m_padLocPositions
map holding channel local positions (in detector module local coordinates)
Definition: ARICHGeometryPar.h:263
Belle2::ARICHGeometryPar::initDetectorMask
void initDetectorMask(int nmodules)
initialize detector mask
Definition: ARICHGeometryPar.cc:531
Belle2::ARICHGeometryPar::getOriginG4
G4ThreeVector getOriginG4(int copyNo)
get the position of copyNo-th HAPD module origin (returns G4ThreeVector)
Definition: ARICHGeometryPar.cc:398
Belle2::ARICHGeometryPar::getChannelCenterGlob
TVector3 getChannelCenterGlob(int modID, int chanID)
get center of chanID channel of modID detector module (in global coordinates)
Definition: ARICHGeometryPar.cc:430
Belle2::ARICHGeometryPar::getChipLocPos
TVector2 getChipLocPos(int chipID)
get center position of chipID-th chip of detector module (in detector module local coordinates)
Definition: ARICHGeometryPar.h:293
Belle2::ARICHGeometryPar::m_aeroZPosition
double m_aeroZPosition[MAX_N_ALAYERS]
Array of aerogel Z positions.
Definition: ARICHGeometryPar.h:204
Belle2::ARICHGeometryPar::getDetectorWindowThickness
double getDetectorWindowThickness()
get thickness of detector module window
Definition: ARICHGeometryPar.h:334
Belle2::ARICHGeometryPar::getMirrorPoint
TVector3 getMirrorPoint(int mirID)
get one point lying on mirID-th mirror plate
Definition: ARICHGeometryPar.cc:500
Belle2::ARICHGeometryPar::getAerogelTileID
int getAerogelTileID(TVector2 locpos)
returns ID number of aerogel tile containing locpos (x-y) point.
Definition: ARICHGeometryPar.cc:577
Belle2::ARICHGeometryPar::isSimple
bool isSimple()
returns true if parametrisation is initialized with simple geometry (beamtest)
Definition: ARICHGeometryPar.h:303
Belle2::ARICHGeometryPar::m_NpointsQE
int m_NpointsQE
number of QE data points
Definition: ARICHGeometryPar.h:213
Belle2::ARICHGeometryPar::m_mirrorZPos
double m_mirrorZPos
Z position of mirror plates (starting z)
Definition: ARICHGeometryPar.h:197
Belle2::ARICHGeometryPar::Print
void Print(void) const
Print some debug information.
Definition: ARICHGeometryPar.cc:302
Belle2::ARICHGeometryPar::frontEndMapping
void frontEndMapping(const GearDir &content)
reads front-end board to merger to cooper mapping from an xml file
Definition: ARICHGeometryPar.cc:183
Belle2::ARICHGeometryPar::getNMCopies
int getNMCopies() const
get the total number of HAPD modules
Definition: ARICHGeometryPar.h:288