16#ifndef ALICEO2_MFT_GEOMETRYTGEO_H_
17#define ALICEO2_MFT_GEOMETRYTGEO_H_
19#include <TGeoMatrix.h>
40 using DetMatrixCache::getMatrixL2G;
41 using DetMatrixCache::getMatrixT2G;
42 using DetMatrixCache::getMatrixT2L;
48 sInstance = std::unique_ptr<GeometryTGeo>(
new GeometryTGeo(
true, 0));
50 return sInstance.get();
84 void Build(
int loadTrans = 0)
override;
95 Int_t
getSensorIndex(Int_t half, Int_t disk, Int_t ladder, Int_t sensor)
const;
107 Bool_t
getSensorID(Int_t
index, Int_t& half, Int_t& disk, Int_t& ladder, Int_t& sensor)
const;
232 static std::unique_ptr<o2::mft::GeometryTGeo> sInstance;
General auxilliary methods.
Definition of the GeometryManager class.
Definition of the GeometryTGeo class : common part for ITS and MFT.
Static class with identifiers, bitmasks and names for ALICE detectors.
static constexpr const char * getName(ID id)
names of defined detectors
virtual void fillMatrixCache(int mask)=0
static const char * composeSymNameHalf(int hf)
sym name of the half
static std::string sLadderName
static constexpr Int_t MaxSensorsPerLadder
static std::string sDiskName
Int_t getFirstSensorIndex(Int_t disk) const
In a disk start numbering the sensors from zero.
static const Char_t * getMFTSensorPattern()
static const Char_t * getMFTHalfPattern()
Int_t getHalf(Int_t index) const
From matrix index to half ID.
std::vector< std::vector< Int_t > > mLadderId2Index
from to geometry index to matrix index
Int_t getMaxSensorsPerLadder()
Returns the max number of sensors per ladder.
o2::math_utils::Transform3D Mat3D
static const char * composeSymNameChip(int hf, int dk, int lr, int chip)
Sym name of the chip in the given half/disk/ladder.
std::vector< std::vector< Int_t > > mLadderIndex2Id
from matrix index to geometry index
std::vector< Int_t > mNumberOfDisks
disks/half
static constexpr Int_t MinSensorsPerLadder
Int_t getNumberOfLaddersPerDisk(Int_t half, Int_t disk, Int_t sensors) const
Returns the number of ladders in each disk of each half.
GeometryTGeo & operator=(const GeometryTGeo &geom)=delete
void fillMatrixCache(Int_t mask) override
Int_t getDisk(Int_t index) const
From matrix index to disk ID.
std::vector< Int_t > mLastSensorIndex
last sensor index in a layer
static const Char_t * getMFTChipPattern()
GeometryTGeo(const GeometryTGeo &src)=delete
Int_t getMinSensorsPerLadder()
Returns the min number of sensors per ladder.
void Build(int loadTrans=0) override
Exract MFT parameters from TGeo.
Int_t getNumberOfHalfs()
Returns the number of halfs MFT.
void updateL2GMatrixCache(std::vector< int > chipIDs={})
Int_t getLadderID(Int_t disk, Int_t ladder) const
Returns the ladder geometry ID from the matrix ID.
std::vector< Int_t > mNumberOfSensorsPerDisk
get from sensor index the lay er
Int_t extractNumberOfDisks(Int_t half) const
Determines the number of disks in each detector half.
Int_t extractNumberOfLadders(Int_t half, Int_t disk, Int_t nsensors) const
Determines the number of ladders in each disk of each half.
std::vector< Int_t > mSensorIndexToLayer
get from sensor index the layer
static std::string sHalfName
Int_t getNumberOfDisksPerHalf(Int_t half) const
Returns the number of disks in each half.
Int_t mTotalNumberOfSensors
total number of sensors in the detector
static const char * composeSymNameLadder(int hf, int dk, int lr)
Sym name of the ladder at given half/disk.
Int_t getSensorIndex(Int_t half, Int_t disk, Int_t ladder, Int_t sensor) const
static const Char_t * getMFTLadderPattern()
std::vector< Float_t > mLayerMedianZ
z median value between the two planes of a disk
Int_t extractNumberOfHalves()
Determines the number of detector halves in the Geometry.
Int_t getLadder(Int_t index) const
From matrix index to ladder ID (matrix)
static const Char_t * getMFTVolPattern()
std::vector< std::vector< Int_t > > mNumberOfLadders
ladders[nsensor]/halfdisk
Int_t extractNumberOfSensorsPerLadder(Int_t half, Int_t disk, Int_t ladder) const
Determines the number of sensors in each ladder of each disk of each half.
std::vector< Int_t > mNumberOfLaddersPerDisk
ladders/halfdisk
Int_t getLayer(Int_t index) const
get layer index (0:9) from the chip index
TGeoHMatrix * extractMatrixSensor(Int_t index) const
static GeometryTGeo * Instance()
static void adopt(GeometryTGeo *raw, bool canDelete=false)
Bool_t getSensorID(Int_t index, Int_t &half, Int_t &disk, Int_t &ladder, Int_t &sensor) const
~GeometryTGeo() override
Default destructor, don't use.
void extractSensorXAlpha(int index, float &x, float &alp)
TGeoHMatrix & createT2LMatrix(Int_t isn)
static const Char_t * getMFTDiskPattern()
static std::string sSensorName
Int_t extractVolumeCopy(const Char_t *name, const Char_t *prefix) const
Extract number following the prefix in the name string.
static std::string sChipName
Int_t getNumberOfSensorsPerLadder(Int_t half, Int_t disk, Int_t ladder) const
static const char * composeSymNameMFT()
sym name of the MFT
static bool instanceExist()
static std::string sVolumeName
static const char * composeSymNameDisk(int hf, int dk)
Sym name of the disk at given half.
Int_t mNumberOfHalves
number of detector halves
GLuint const GLchar * name
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...