Belle II Software
release-08-01-10
|
The Class for ARICH Geometry Parameters. More...
#include <ARICHGeometryPar.h>
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 ARICHGeometryPar * | Instance () |
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 ARICHGeometryPar * | p_B4ARICHGeometryParDB = 0 |
Pointer that saves the instance of this class. | |
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.