12#ifndef ALICEO2_TRK_GEOMETRYTGEO_H
13#define ALICEO2_TRK_GEOMETRYTGEO_H
28 using DetMatrixCache::getMatrixL2G;
29 using DetMatrixCache::getMatrixT2GRot;
30 using DetMatrixCache::getMatrixT2L;
33 using DetMatrixCache::getMatrixT2G;
36 void Build(
int loadTrans);
41 sInstance = std::make_unique<GeometryTGeo>(
true, 0);
43 return sInstance.get();
97 void Print(Option_t* opt =
"")
const;
98 void PrintChipID(
int index,
int subDetID,
int petalcase,
int disk,
int lay,
int stave,
int halfstave,
int mod,
int chip)
const;
123 LOG(error) <<
"getSensorRefAlphaMLOT(): VD layers are not supported yet! chipID = " << chipId
124 <<
"please provide chipId for ML/OT! ";
125 return std::numeric_limits<float>::quiet_NaN();
134 LOG(error) <<
"getSensorXMLOT(): VD layers are not supported yet! chipID = " << chipId
135 <<
"please provide chipId for ML/OT! ";
136 return std::numeric_limits<float>::quiet_NaN();
156 unsigned short getChipIndex(
int subDetID,
int petalcase,
int disk,
int lay,
int stave,
int halfstave,
int mod,
int chip)
const;
166 unsigned short getChipIndex(
int subDetID,
int volume,
int lay,
int stave,
int halfstave,
int mod,
int chip)
const;
178 bool getChipID(
int index,
int& subDetID,
int& petalcase,
int& disk,
int& lay,
int& stave,
int& halfstave,
int& mod,
int& chip)
const;
186 }
else if (subDetID == 1) {
188 }
else if (subDetID == 2) {
200#ifdef ENABLE_UPGRADES
201 static const char* composeSymNameTRK(
int d)
277 static std::unique_ptr<o2::trk::GeometryTGeo> sInstance;
Static class with identifiers, bitmasks and names for ALICE detectors.
const char * getName() const
int mSize
prebooked number of sensors
static const char * composeSymNameModule(int d, int layer)
int extractNumberOfDisksMLOT(int dir) const
Determines the number of active parts in the Geometry.
static const char * getTRKPetalDiskPattern()
int getModule(int index) const
std::vector< int > mNumberOfChipPerDiskMLOT
number of chips per disc in MLOT
static std::string sPetalAssemblyName
static const char * getTRKStavePattern()
int getPetalCase(int index) const
static const char * getTRKChipPattern()
std::vector< int > mNumberOfChipsPerLayerVD
number of chips per layer VD ( = number of petals)
static std::string sVolumeName
int getSubDetID(int index) const
std::array< char, MAXLAYERS > mLayerToWrapper
Layer to wrapper correspondence, not implemented yet.
static const char * composeSymNameChip(int d, int layer)
static std::string sPetalLayerName
static const char * getTRKSensorPattern()
static std::string sStaveName
static constexpr int MAXLAYERS
max number of active layers
bool getChipID(int index, int &subDetID, int &petalcase, int &disk, int &lay, int &stave, int &halfstave, int &mod, int &chip) const
std::vector< int > mNumberOfHalfStaves
Number Of Half staves in each stave of the layer in ML/OT.
int extractNumberOfChipsPerPetalVD() const
int getNumberOfDisksMLOT() const
bool isTrackingFrameCachedMLOT() const
int extractNumberOfHalfStavesMLOT(int lay) const
static const char * getFT3SensorPattern()
static const char * getTRKPetalLayerPattern()
int getChip(int index) const
static std::string sFT3ChipName
Chip name.
int extractNumberOfLayersMLOT()
int extractNumberOfChipsMLOT(int lay) const
std::vector< int > mNumbersOfChipPerDiskVD
numbersOfChipPerDiskVD
std::vector< int > mNumberOfStaves
Number Of Staves per layer in ML/OT barrels.
static const char * getFT3ChipPattern()
static const char * getFT3LayerPattern()
Int_t mNumberOfPetalsVD
number of Petals = chip in each VD layer
static std::string sFT3PassiveName
Passive material name.
std::vector< int > mNumberOfModules
Number Of Modules per stave (half stave) in ML/OT.
static std::string sPetalName
void fillTrackingFramesCacheMLOT()
int extractNumberOfStavesMLOT(int lay) const
static std::string sPetalDiskName
static const char * getTRKServiceVolPattern()
void Print(Option_t *opt="") const
float getSensorRefAlphaMLOT(int chipId) const
int getLayer(int index) const
local layer index within the sub-detector (0-based per VD/MLOT)
static const char * getFT3VolPattern()
std::vector< unsigned short > mLastChipIndexVD
max ID of the detector in the layer for the VD
static const char * getTRKWrapVolPattern()
static const char * getFT3InnerVolPattern()
std::vector< float > mCacheRefXMLOT
TString getMatrixPath(int index) const
static const char * getTRKDeadzonePattern()
static const char * getTRKPetalAssemblyPattern()
static std::string sFT3VolumeName
Mother volume name.
int getNumberOfChips() const
static const char * getTRKLayerPattern()
static std::string sHalfStaveName
std::vector< unsigned short > mFirstChipIndexStave
Index of first chip on stave (Discs)
unsigned short getFirstChipIndex(int lay, int petalcase, int subDetID) const
std::vector< int > mNumberOfChips
number of chips per module in ML/OT
static std::string sFT3SensorName
Sensor name.
std::vector< unsigned short > mFirstStaveIndexDisc
Index of first stave (abs ID) in each MLOT Disc.
static std::string sWrapperVolumeName
Wrapper volume name, not implemented at the moment.
static std::string sServiceVolName
TGeoHMatrix & createT2LMatrixMLOT(int)
std::vector< float > mCacheRefAlphaMLOT
cache for X of ML and OT
static const char * getFT3PassivePattern()
static const char * getTRKHalfStavePattern()
int extractNumberOfLayersVD() const
std::vector< int > mNumberOfChipsPerPetalVD
numbersOfChipPerPetalVD
static std::string sMetalStackName
static std::string sChipName
static std::string sSensorName
static const char * composeSymNameLayerFT3(int dir, int layer)
void fillMatrixCache(int mask)
std::vector< int > sensorsMLOT
is it owned by the singleton?
static std::string sDeadzoneName
void extractChipIdsFT3(std::string const volName, int &layer, int &stave, int &chip) const
Extract number following the prefix in the name string.
static std::string sLayerName
unsigned short getChipIndex(int subDetID, int petalcase, int disk, int lay, int stave, int halfstave, int mod, int chip) const
int extractNumberOfActivePartsVD() const
void PrintChipID(int index, int subDetID, int petalcase, int disk, int lay, int stave, int halfstave, int mod, int chip) const
static const char * composeSymNameSensor(int d, int layer)
int extractNumberOfModulesMLOT(int lay) const
static std::string sFT3InnerVolumeName
Mother inner volume name.
int extractNumberOfDisksVD() const
static std::string sFT3LayerName
Layer name.
int getLayerTRK(int index) const
global layer index across the full TRK (VD layers 0..nVD-1, MLOT layers nVD..nTotal-1)
int getNumberOfHalfStaves(int lay) const
static const char * getTRKPetalPattern()
int getNumberOfLayersMLOT() const
Int_t mNumberOfActivePartsVD
number of layers
int getNumberOfActivePartsVD() const
std::vector< int > mNumberOfChipsPerLayerMLOT
number of chips per layer MLOT
static const char * getTRKMetalStackPattern()
Int_t mNumberOfDisksVD
number of Disks = 6
Int_t mNumberOfLayersMLOT
number of layers
std::vector< unsigned short > mFirstChipIndexMLOTDisc
ID of the first sensor chip in the layer for the MLOT; array size is one larger than the number of di...
static const char * composeSymNameLayer(int d, int layer)
int getStave(int index) const
int getBarrelLayer(int) const
static const char * getTRKVolPattern()
std::vector< int > mNumberOfStavesMLOTDDiscs
Number Of Staves per layer in ML/OT discs.
static const char * getTRKModulePattern()
float getSensorXMLOT(int chipId) const
static const char * composeSymNameStave(int d, int layer)
int getDisk(int index) const
int extractNumberOfPetalsVD() const
int extractVolumeCopy(const char *name, const char *prefix) const
std::vector< unsigned short > mLastChipIndex
max ID of the detector in the petal(VD) or layer(MLOT)
void extractSensorXAlphaMLOT(int, float &, float &)
Int_t mNumberOfDisksMLOT
number of ML/OT disks (12 for v3)
int getNumberOfStavesInDisk(int lay) const
void Build(int loadTrans)
eMLOTLayout mLayoutMLOT
cache for sensor ref alpha ML and OT
Int_t mNumberOfLayersVD
number of layers
static GeometryTGeo * Instance()
int getHalfStave(int index) const
TGeoHMatrix * extractMatrixSensor(int index) const
static std::string sModuleName
unsigned short getLastChipIndex(int lay) const
GLuint const GLchar * name
GLenum GLuint GLint GLint layer
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"