Belle II Software development
|
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 (const ROOT::Math::XYZVector &hit) |
get the copy number of HAPD module containing point "hit" | |
ROOT::Math::XYZVector | 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 (ROOT::Math::XYVector hit) |
get ID number of channel containing point "hit" (hit is in detector module local coordinates) | |
ROOT::Math::XYVector | getChannelCenterLoc (int chID) |
get center position of chID channel (in detector module local coordinates) | |
double | getChannelQE (int moduleID, int channelID) |
get channel quantum efficiency | |
ROOT::Math::XYVector | getChipLocPos (int chipID) |
get center position of chipID-th chip of detector module (in detector module local coordinates) | |
int | getChipID (ROOT::Math::XYVector locpos) |
get ID number of chip containing point "locpos" | |
ROOT::Math::XYZVector | getChannelCenterGlob (int modID, int chanID) |
get center of chanID channel of modID detector module (in global coordinates) | |
ROOT::Math::XYZVector | getMirrorNormal (int mirID) |
get normal vector of mirID-th mirror plate | |
ROOT::Math::XYZVector | 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 (ROOT::Math::XYVector 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. | |
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) | |
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< ROOT::Math::XYVector > | m_chipLocPos |
vector holding chip positions (in detector module local coordinates) | |
std::map< int, ROOT::Math::XYVector > | m_padLocPositions |
map holding channel local positions (in detector module local coordinates) | |
std::vector< ROOT::Math::XYVector > | m_padWorldPositions |
map holding channel global positions | |
std::vector< ROOT::Math::XYZVector > | m_mirrornorm |
vector holding normal vectors of mirror plates | |
std::vector< ROOT::Math::XYZVector > | 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 34 of file ARICHGeometryPar.h.
|
inline |
Returns a set of copper ID's.
Definition at line 174 of file ARICHGeometryPar.h.
|
private |
Array of aerogel refracive indices.
Definition at line 201 of file ARICHGeometryPar.h.
|
private |
Inner radius of aerogel tube.
Definition at line 220 of file ARICHGeometryPar.h.
|
private |
Outer radius of aerogel tube.
Definition at line 221 of file ARICHGeometryPar.h.
|
private |
Array of aerogel thickness.
Definition at line 203 of file ARICHGeometryPar.h.
|
private |
Array of aerogel transmission lenths.
Definition at line 200 of file ARICHGeometryPar.h.
|
private |
Array of aerogel Z positions.
Definition at line 202 of file ARICHGeometryPar.h.
|
private |
FEB ID's.
Definition at line 271 of file ARICHGeometryPar.h.
|
private |
Channel QE at 400nm.
Definition at line 206 of file ARICHGeometryPar.h.
|
private |
Gap between chips in detector module.
Definition at line 183 of file ARICHGeometryPar.h.
|
private |
vector holding chip positions (in detector module local coordinates)
Definition at line 260 of file ARICHGeometryPar.h.
|
private |
to simulate opposite polarity crosstalk among channels on chip
Definition at line 214 of file ARICHGeometryPar.h.
|
private |
collection efficiency
Definition at line 208 of file ARICHGeometryPar.h.
|
private |
mapping of merger boards to cooper boards
Definition at line 267 of file ARICHGeometryPar.h.
|
private |
COPPER ID's.
Definition at line 269 of file ARICHGeometryPar.h.
|
private |
Detector Mask of inactive channels.
Definition at line 205 of file ARICHGeometryPar.h.
|
private |
Inner radius of detector tube.
Definition at line 184 of file ARICHGeometryPar.h.
|
private |
Outer radius of detector tube.
Definition at line 185 of file ARICHGeometryPar.h.
|
private |
Z position of detector plane.
Definition at line 186 of file ARICHGeometryPar.h.
|
private |
angle covered by one detector module in ring
Definition at line 254 of file ARICHGeometryPar.h.
|
private |
minimal distance between detector modules in radial direction
Definition at line 255 of file ARICHGeometryPar.h.
|
private |
angular coordinate of detector modules
Definition at line 258 of file ARICHGeometryPar.h.
|
private |
angle of detector module
Definition at line 259 of file ARICHGeometryPar.h.
|
private |
radial coordinate of detector modules
Definition at line 257 of file ARICHGeometryPar.h.
|
private |
True if parametrization is already initialized.
Definition at line 198 of file ARICHGeometryPar.h.
|
private |
wavelength [nm]: first QE data point
Definition at line 209 of file ARICHGeometryPar.h.
|
private |
wavelength [nm]: step
Definition at line 210 of file ARICHGeometryPar.h.
|
private |
mapping of front-end boards to mergers
Definition at line 268 of file ARICHGeometryPar.h.
|
private |
Merger ID's.
Definition at line 270 of file ARICHGeometryPar.h.
|
private |
vector holding normal vectors of mirror plates
Definition at line 264 of file ARICHGeometryPar.h.
|
private |
Radius of circle outscribed to mirrors polygon.
Definition at line 191 of file ARICHGeometryPar.h.
|
private |
vector holding one point of each mirror plate
Definition at line 265 of file ARICHGeometryPar.h.
|
private |
The angle of first corner of mirror plates polygon.
Definition at line 193 of file ARICHGeometryPar.h.
|
private |
Thickness of mirror plates.
Definition at line 192 of file ARICHGeometryPar.h.
|
private |
Z position of mirror plates (starting z)
Definition at line 195 of file ARICHGeometryPar.h.
|
private |
Detector module length.
Definition at line 187 of file ARICHGeometryPar.h.
|
private |
Detector module height.
Definition at line 188 of file ARICHGeometryPar.h.
|
private |
m_ncol[i] gives number of detector modules in i-th detector ring (first one is the outer most)
Definition at line 253 of file ARICHGeometryPar.h.
|
private |
Number of mirrors segments.
Definition at line 194 of file ARICHGeometryPar.h.
|
private |
total number of pads in a sensor
Definition at line 204 of file ARICHGeometryPar.h.
|
private |
Number of detector module pads in one direction.
Definition at line 196 of file ARICHGeometryPar.h.
|
private |
number of QE data points
Definition at line 211 of file ARICHGeometryPar.h.
|
private |
Number of aerogel layers.
Definition at line 197 of file ARICHGeometryPar.h.
|
private |
number of detector rings
Definition at line 256 of file ARICHGeometryPar.h.
|
private |
map holding channel local positions (in detector module local coordinates)
Definition at line 262 of file ARICHGeometryPar.h.
|
private |
Detector pad size.
Definition at line 182 of file ARICHGeometryPar.h.
|
private |
map holding channel global positions
Definition at line 263 of file ARICHGeometryPar.h.
|
private |
quantum efficiency curve
Definition at line 215 of file ARICHGeometryPar.h.
|
private |
QE scale factor for photons internally reflected in HAPD window.
Definition at line 212 of file ARICHGeometryPar.h.
|
private |
True if parametrization initialized with simple geometry (beamtest)
Definition at line 199 of file ARICHGeometryPar.h.
|
private |
Gap size between two aerogel tiles.
Definition at line 219 of file ARICHGeometryPar.h.
|
private |
Number of aerogel tiles in phi direction of each "radial" ring.
Definition at line 218 of file ARICHGeometryPar.h.
|
private |
Number of aerogel tiles in radial direction.
Definition at line 217 of file ARICHGeometryPar.h.
|
private |
The version of geometry parameters.
Definition at line 181 of file ARICHGeometryPar.h.
|
private |
absorbtion probability for photons internally reflected in HAPD window
Definition at line 213 of file ARICHGeometryPar.h.
|
private |
Detector window refractive index.
Definition at line 190 of file ARICHGeometryPar.h.
|
private |
Thickness of detector module window.
Definition at line 189 of file ARICHGeometryPar.h.