30 : mChipIndexOnLadder(0),
39 mTranslation(0, 0, 0),
49 mIsTransformExtracted(false)
53 LOGF(
debug,
"AlignSensorHelper instantiated");
84 LOGF(error,
"AlignSensorHelper::setSensorOnlyInfo() - chip index %d >= %d",
95 std::stringstream
name;
129 for (Int_t hf = 0; hf < nHalf; hf++) {
133 for (Int_t dk = 0; dk < nDisks; dk++) {
142 for (Int_t lr = 0; lr < nLadders; lr++) {
146 for (Int_t sr = 0; sr < nSensorsPerLadder; sr++) {
155 LOG(error) <<
"SensorInfo::builSymNames() - nullptr to geometry";
179 LOGF(error,
"AlignSensorHelper::setSensorUid() - chip index %d >= %d",
210 Double_t* rot =
mTransform.GetRotationMatrix();
211 mRx = std::atan2(-rot[5], rot[8]);
212 mRy = std::asin(rot[2]);
213 mRz = std::atan2(-rot[1], rot[0]);
245 double tra[3] = {0., 0., 0.};
ClassImp(o2::mft::AlignSensorHelper)
Helper class to access to the global coordinates of the center each MFT sensor.
static int getSensID(o2::detectors::DetID detid, int sensid)
const Mat3D & getMatrixL2G(int sensID) const
static constexpr std::array< int, NChips > mChipIDGeoToRO
const std::array< MFTChipMappingData, NChips > & getChipMappingData() const
o2::math_utils::Point3D< double > mTranslation
coordinates of the translation between the local system origin (the center of the sensor) and the glo...
UShort_t mTransceiver
transceiver id to which the sensor is connected in the zone [0, 24]
AlignSensorHelper()
constructor with a pointer to the geometry
UShort_t mConnector
connector index to which the ladder is plugged in the zone [0, 4]
std::array< TString, mNumberOfSensors > mSymNames
void setGeometry()
set pointer to geometry that should already have done fillMatrixCache()
UShort_t mLayer
layer id [0, 9]
double mRx
array of symbolic names of all sensors
void resetSensorTransformInfo()
reset all sensor transform related variables
static constexpr int mNumberOfSensors
Total number of sensors (detection elements) in the MFT.
void setSymName()
set the symbolic name of this sensor in the geometry
void setSensorOnlyInfo(const int chipIndex)
set the studied sensor
double mRz
rotation angle aroung global z-axis (radian)
UShort_t mChipIndexOnLadder
sensor index within the ladder [0, 4]
TString mGeoSymbolicName
symbolic name of this sensor in the geometry
UShort_t mHalf
half id [0, 1]
bool setSensor(const int chipIndex)
set the studied sensor
TGeoHMatrix mTransform
sensor transformation matrix L2G
bool mIsTransformExtracted
boolean used to check if the sensor transform was successfully extracted from geometry
void extractSensorTransform()
init the matrix that stores the sensor transform L2G and extract its components
int getChipIdGeoFromRO(const int chipIdRO)
return chip id Geo from a given chip id RO
Int_t mChipUniqueId
ALICE global unique id of the sensor.
double mRy
rotation angle aroung global y-axis (radian)
void builSymNames()
build array of symbolic names of all sensors
UShort_t mDisk
disk id [0, 4]
void setSensorUid(const int chipIndex)
set the ALICE global unique id of the sensor
UShort_t mChipIndexInMft
sensor sw index within the MFT [0, 935]
std::stringstream getSensorFullName(bool wSymName=true)
return a stringstream filled with the sensor info
UShort_t mZone
zone id [0,3]
o2::mft::GeometryTGeo * mGeometry
MFT geometry.
static const char * composeSymNameHalf(int hf)
sym name of the half
Int_t getMaxSensorsPerLadder()
Returns the max number of sensors per ladder.
static const char * composeSymNameChip(int hf, int dk, int lr, int chip)
Sym name of the chip in the given half/disk/ladder.
Int_t getNumberOfLaddersPerDisk(Int_t half, Int_t disk, Int_t sensors) const
Returns the number of ladders in each disk of each half.
void fillMatrixCache(Int_t mask) override
Int_t getMinSensorsPerLadder()
Returns the min number of sensors per ladder.
Int_t getNumberOfHalfs()
Returns the number of halfs MFT.
Int_t getNumberOfDisksPerHalf(Int_t half) const
Returns the number of disks in each half.
static const char * composeSymNameLadder(int hf, int dk, int lr)
Sym name of the ladder at given half/disk.
static GeometryTGeo * Instance()
Int_t getNumberOfSensorsPerLadder(Int_t half, Int_t disk, Int_t ladder) const
static const char * composeSymNameMFT()
sym name of the MFT
static const char * composeSymNameDisk(int hf, int dk)
Sym name of the disk at given half.
GLuint const GLchar * name
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"