Belle II Software  release-08-01-10
ARICHGeometryPar Class Reference

The Class for ARICH Geometry Parameters. More...

#include <ARICHGeometryPar.h>

Collaboration diagram for ARICHGeometryPar:

Public Member Functions

 ARICHGeometryPar ()
 Constructor.
 
virtual ~ARICHGeometryPar ()
 Destructor.
 
void Initialize (const GearDir &content)
 calculates detector parameters needed for geometry build and reconstruction.
 
void Initialize (const GearDir &content, const GearDir &mirrorinfo)
 calculates detector parameters needed for geometry build and reconstruction - the mirrorinfo can be in separate directory
 
void clear (void)
 Clears.
 
void Print (void) const
 Print some debug information.
 
void read (const GearDir &content)
 gets geometry parameters from gearbox.
 
void readModuleInfo (const GearDir &content)
 read parameters of each module from gearbox.
 
double QE (double e) const
 get photocathode quantum efficiency at energy e.
 
double getColEffi () const
 get HAPD collection efficiency.
 
double getSensitiveSurfaceSize () const
 get size of detector sensitive surface (size of two chips + gap between)
 
int getNMCopies () const
 get the total number of HAPD modules
 
int getCopyNo (TVector3 hit)
 get the copy number of HAPD module containing point "hit"
 
int getCopyNo (const ROOT::Math::XYZVector &hit)
 get the copy number of HAPD module containing point "hit"
 
TVector3 getOrigin (int copyno)
 get the position of copyno-th HAPD module origin
 
G4ThreeVector getOriginG4 (int copyNo)
 get the position of copyNo-th HAPD module origin (returns G4ThreeVector)
 
double getModAngle (int copyno)
 get the angle of copyno-th HAPD rotation
 
int getChannelID (TVector2 hit)
 get ID number of channel containing point "hit" (hit is in detector module local coordinates)
 
TVector2 getChannelCenterLoc (int chID)
 get center position of chID channel (in detector module local coordinates)
 
double getChannelQE (int moduleID, int channelID)
 get channel quantum efficiency
 
TVector2 getChipLocPos (int chipID)
 get center position of chipID-th chip of detector module (in detector module local coordinates)
 
int getChipID (TVector2 locpos)
 get ID number of chip containing point "locpos"
 
TVector3 getChannelCenterGlob (int modID, int chanID)
 get center of chanID channel of modID detector module (in global coordinates)
 
TVector3 getMirrorNormal (int mirID)
 get normal vector of mirID-th mirror plate
 
TVector3 getMirrorPoint (int mirID)
 get one point lying on mirID-th mirror plate
 
double getAerogelTransmissionLength (int ilayer)
 get transmission length of "ilayer" aerogel layer
 
double getAerogelRefIndex (int ilayer)
 get refractive index of "ilayer" aerogel layer
 
double getAerogelThickness (int ilayer)
 get thickness of "ilayer" aerogel layer
 
double getAerogelZPosition (int ilayer)
 get z position of "ilayer" aerogel layer
 
int getNMirrors ()
 get number of mirror plates
 
double getMirrorsStartAngle ()
 get the phi angle of first corner of mirror polygon
 
double getMirrorsZPosition ()
 get the z position of mirror plates (starting z)
 
double getDetectorWindowThickness ()
 get thickness of detector module window
 
double getDetectorWindowRefIndex ()
 get refractive index of detector module window
 
int getNumberOfAerogelRadiators ()
 get number of aerogel layers
 
double getDetectorPadSize ()
 get detectors module pad size
 
double getDetectorZPosition ()
 get z position of detector plane (starting z)
 
int getDetectorXPadNumber ()
 get number of pads of detector module (in one direction)
 
double getQEScaling ()
 get QE scaling factor for photons internally reflected in HAPD window
 
double getWindowAbsorbtion ()
 get absorbtion probability for photons internally reflected in HAPD window
 
double getChipNegativeCrosstalk ()
 get factor to suppress p.e. detection efficiency due to negative polarity crosstalk among chip channels
 
int getNrTiles ()
 get number of aerogel tiles in radial direction (number of rings)
 
int getNphiTiles (int nRing)
 get number of aerogel tiles in each radial ring
 
double getTileGap ()
 get size of the gap between aerogel tiles
 
double getAeroTubeRin ()
 get the inner size of aerogel tube
 
double getAeroTubeRout ()
 get the outer size of aerogel tube
 
void setAeroTransLength (int ilayer, double trlen)
 set transmission length of "ilayer" aerogel layer
 
void setAeroRefIndex (int ilayer, double n)
 set refractive index of "ilayer" aerogel layer
 
void setAerogelThickness (int ilayer, double thick)
 set thickness of "ilayer" aerogel layer
 
void setAerogelZPosition (int ilayer, double zPos)
 set z position of "ilayer" aerogel layer
 
void setWindowRefIndex (double refInd)
 set detector module window refractive index
 
bool isInit ()
 returns true if parametrisation is initialized, false otherwise
 
bool isSimple ()
 returns true if parametrisation is initialized with simple geometry (beamtest)
 
void initDetectorMask (int nmodules)
 initialize detector mask
 
void setActive (int module, int channel, bool val)
 set the channel on/off
 
bool isActive (int module, int channel)
 check the activity of the channel
 
int getMergerFromCooper (int cooperID, int finesse)
 returns merger board ID from cooperID and finesse
 
int getBoardFromMerger (int mergerID, int slot)
 returns front-end board ID from merger ID and slot
 
int getNBoardsOnMerger (int mergerID)
 returns number of front-end boards connected to the merger
 
int getAerogelTileID (TVector2 locpos)
 returns ID number of aerogel tile containing locpos (x-y) point.
 
const std::unordered_set< unsigned int > & getCopperIDs () const
 Returns a set of copper ID's.
 

Static Public Member Functions

static ARICHGeometryParInstance ()
 Static method to get a reference to the ARICHGeometryPar instance. More...
 

Private Member Functions

void modulesPosition (const GearDir &content)
 calculates the positions of HAPD modules, with the parameters from xml.
 
void modulesPositionSimple (const GearDir &content)
 gets modules positions directly from xml file (for simple "beamtest" geometry).
 
void chipLocPosition ()
 calculates the centers of chips in detector module local coordinates
 
void padPositions ()
 calculates the centers of channels in local (detector module) and global coordinates
 
void mirrorPositions (const GearDir &content)
 calculates parameters of all mirror planes (normal vector and point on plane) More...
 
void readMirrorAlignment (const GearDir &content)
 Reads mirror plates alignment parameters.
 
void mirrorPositionSimple (const GearDir &content)
 Gets mirrors positions directly from xml file (in case of simple "beamtest" geometry).
 
void frontEndMapping (const GearDir &content)
 reads front-end board to merger to cooper mapping from an xml file
 

Private Attributes

std::string m_version
 The version of geometry parameters.
 
double m_padSize
 Detector pad size.
 
double m_chipGap
 Gap between chips in detector module.
 
double m_detInnerRadius
 Inner radius of detector tube.
 
double m_detOuterRadius
 Outer radius of detector tube.
 
double m_detZpos
 Z position of detector plane.
 
double m_modXSize
 Detector module length.
 
double m_modZSize
 Detector module height.
 
double m_winThick
 Thickness of detector module window.
 
double m_winRefInd
 Detector window refractive index.
 
double m_mirrorOuterRad
 Radius of circle outscribed to mirrors polygon.
 
double m_mirrorThickness
 Thickness of mirror plates.
 
double m_mirrorStartAng
 The angle of first corner of mirror plates polygon.
 
int m_nMirrors
 Number of mirrors segments.
 
double m_mirrorZPos
 Z position of mirror plates (starting z)
 
int m_nPadX
 Number of detector module pads in one direction.
 
int m_nRad
 Number of aerogel layers.
 
bool m_init
 True if parametrization is already initialized.
 
bool m_simple
 True if parametrization initialized with simple geometry (beamtest)
 
double m_aeroTrLength [MAX_N_ALAYERS]
 Array of aerogel transmission lenths.
 
double m_aeroRefIndex [MAX_N_ALAYERS]
 Array of aerogel refracive indices.
 
double m_aeroZPosition [MAX_N_ALAYERS]
 Array of aerogel Z positions.
 
double m_aeroThickness [MAX_N_ALAYERS]
 Array of aerogel thickness.
 
int m_nPads
 total number of pads in a sensor
 
std::vector< uint32_t > m_DetectorMask
 Detector Mask of inactive channels.
 
std::vector< uint8_t > m_ChannelQE
 Channel QE at 400nm.
 
double m_ColEffi
 collection efficiency
 
double m_LambdaFirst
 wavelength [nm]: first QE data point
 
double m_LambdaStep
 wavelength [nm]: step
 
int m_NpointsQE
 number of QE data points
 
double m_qeScale
 QE scale factor for photons internally reflected in HAPD window.
 
double m_windowAbsorbtion
 absorbtion probability for photons internally reflected in HAPD window
 
double m_chipNegativeCrosstalk
 to simulate opposite polarity crosstalk among channels on chip
 
double m_QE [MAXPTS_QE]
 quantum efficiency curve
 
int m_tileNr
 Number of aerogel tiles in radial direction.
 
int m_tileNphi [5]
 Number of aerogel tiles in phi direction of each "radial" ring.
 
double m_tileGap
 Gap size between two aerogel tiles.
 
double m_aeroRin
 Inner radius of aerogel tube.
 
double m_aeroRout
 Outer radius of aerogel tube.
 
std::vector< int > m_ncol
 m_ncol[i] gives number of detector modules in i-th detector ring (first one is the outer most)
 
std::vector< double > m_fDFi
 angle covered by one detector module in ring
 
std::vector< double > m_fDR
 minimal distance between detector modules in radial direction
 
int m_nrow
 number of detector rings
 
std::vector< double > m_fR
 radial coordinate of detector modules
 
std::vector< double > m_fFi
 angular coordinate of detector modules
 
std::vector< double > m_fFiMod
 angle of detector module
 
std::vector< TVector2 > m_chipLocPos
 vector holding chip positions (in detector module local coordinates)
 
std::map< int, TVector2 > m_padLocPositions
 map holding channel local positions (in detector module local coordinates)
 
std::vector< TVector2 > m_padWorldPositions
 map holding channel global positions

 
std::vector< TVector3 > m_mirrornorm
 vector holding normal vectors of mirror plates
 
std::vector< TVector3 > m_mirrorpoint
 vector holding one point of each mirror plate
 
std::map< std::pair< unsigned, int >, unsigned > m_copper2merger
 mapping of merger boards to cooper boards
 
std::map< int, std::vector< unsigned > > m_merger2feb
 mapping of front-end boards to mergers
 
std::unordered_set< unsigned int > m_copperIDs
 COPPER ID's.
 
std::unordered_set< unsigned int > m_mergerIDs
 Merger ID's.
 
std::unordered_set< unsigned int > m_boardIDs
 FEB ID's.
 

Static Private Attributes

static ARICHGeometryParp_B4ARICHGeometryParDB = 0
 Pointer that saves the instance of this class.
 

Detailed Description

The Class for ARICH Geometry Parameters.

This class provides ARICH gemetry paramters for simulation, reconstruction and so on. These parameters are gotten from gearbox.

Definition at line 35 of file ARICHGeometryPar.h.


The documentation for this class was generated from the following files: