Skip to content

Commit a433055

Browse files
committed
ALICE3-TRK: adding getter for sensitive volumes indices in GeometryTGeo
1 parent ce5b92e commit a433055

2 files changed

Lines changed: 64 additions & 13 deletions

File tree

Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,32 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache
7171
void setOwner(bool v) { mOwner = v; }
7272

7373
void Print(Option_t* opt = "") const;
74+
void PrintChipID(int index, int subDetID, int petalcase, int disk, int lay, int stave, int indexRetrieved) const;
7475

7576
int getLayer(int index) const;
7677
int getStave(int index) const;
7778
int getSubDetID(int index) const;
7879
int getPetalCase(int index) const;
7980
int getDisk(int index) const;
8081

82+
/// This routine computes the chip index number from the subDetID, petal, disk, layer, stave /// TODO: retrieve also from chip when chips will be available
83+
/// in substave
84+
/// \param int subDetID The subdetector ID, 0 for VD, 1 for MLOT
85+
/// \param int petalcase The petal case number for VD, from 0 to 3
86+
/// \param int disk The disk number for VD, from 0 to 5
87+
/// \param int lay The layer number. Starting from 0 both for VD and MLOT
88+
/// \param int stave The stave number for MLOT. Starting from 0
89+
int getChipIndex(int subDetID, int petalcase, int disk, int lay, int stave) const;
90+
91+
/// This routine computes subDetID, petal, disk, layer, stave given the chip index number /// TODO: copute also from chip when chips will be available
92+
/// \param int index The chip index number, starting from 0
93+
/// \param int subDetID The subdetector ID, 0 for VD, 1 for MLOT
94+
/// \param int petalcase The petal case number for VD, from 0 to 3
95+
/// \param int disk The disk number for VD, from 0 to 5
96+
/// \param int lay The layer number. Starting from 0 both for VD and MLOT
97+
/// \param int stave The stave number for MLOT. Starting from 0
98+
bool getChipID(int index, int& subDetID, int& petalcase, int& disk, int& lay, int& stave) const;
99+
81100
int getLastChipIndex(int lay) const { return mLastChipIndex[lay]; }
82101
int getFirstChipIndex(int lay, int petalcase, int subDetID) const
83102
{

Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,7 @@ int GeometryTGeo::getLayer(int index) const
150150
if (index % mNumberOfChipsPerPetalVD[petalcase] >= mNumberOfLayersVD) {
151151
return -1; /// disks
152152
}
153-
lay = index % mNumberOfChipsPerPetalVD[petalcase];
154-
// return index % mNumberOfChipsPerPetalVD[petalcase];
153+
return index % mNumberOfChipsPerPetalVD[petalcase];
155154
} else if (subDetID == 1) { /// MLOT
156155
while (index > mLastChipIndex[lay]) {
157156
lay++;
@@ -194,24 +193,43 @@ int GeometryTGeo::getDisk(int index) const
194193
}
195194

196195
//__________________________________________________________________________
197-
TString GeometryTGeo::getMatrixPath(int index) const
196+
int GeometryTGeo::getChipIndex(int subDetID, int petalcase, int disk, int lay, int stave) const
198197
{
198+
if (subDetID == 0) { // VD
199+
if (lay == -1) { // disk
200+
return getFirstChipIndex(lay, petalcase, subDetID) + mNumberOfLayersVD + disk;
201+
} else { // layer
202+
return getFirstChipIndex(lay, petalcase, subDetID) + lay;
203+
}
204+
} else if (subDetID == 1) { // MLOT
205+
return getFirstChipIndex(lay, petalcase, subDetID) + stave;
206+
}
207+
return -1; // not found
208+
}
199209

200-
// int lay, hba, stav, sstav, mod, chipInMod;
201-
int subDetID, petalcase, disk, lay, stave; /// TODO: add chips in a second step
210+
//__________________________________________________________________________
211+
bool GeometryTGeo::getChipID(int index, int& subDetID, int& petalcase, int& disk, int& lay, int& stave) const
212+
{
202213
subDetID = getSubDetID(index);
203214
petalcase = getPetalCase(index);
204-
lay = getLayer(index);
205215
disk = getDisk(index);
216+
lay = getLayer(index);
206217
stave = getStave(index);
207218

208-
// std::cout << "\nindex = " << index << std::endl;
209-
// std::cout << "subDetID = " << subDetID << std::endl;
210-
// std::cout << "petalcase = " << petalcase << std::endl;
211-
// std::cout << "layer = " << lay << std::endl;
212-
// std::cout << "disk = " << disk << std::endl;
213-
// std::cout << "first chip index = " << getFirstChipIndex(lay, petalcase, subDetID) << std::endl;
214-
// std::cout << "stave = " << stave << std::endl;
219+
return kTRUE;
220+
}
221+
222+
//__________________________________________________________________________
223+
TString GeometryTGeo::getMatrixPath(int index) const
224+
{
225+
226+
// int lay, hba, stav, sstav, mod, chipInMod;
227+
int subDetID, petalcase, disk, lay, stave; //// TODO: add chips in a second step
228+
getChipID(index, subDetID, petalcase, disk, lay, stave);
229+
230+
int indexRetrieved = getChipIndex(subDetID, petalcase, disk, lay, stave);
231+
232+
PrintChipID(index, subDetID, petalcase, disk, lay, stave, indexRetrieved);
215233

216234
// TString path = Form("/cave_1/barrel_1/%s_2/", GeometryTGeo::getTRKVolPattern());
217235
TString path = "/cave_1/barrel_1/TRKV_2/TRKLayer0_1/TRKStave0_1/TRKChip0_1/TRKSensor0_1/"; /// dummy path, to be replaced
@@ -591,6 +609,20 @@ int GeometryTGeo::extractNumberOfStavesMLOT(int lay) const
591609
return numberOfStaves;
592610
}
593611

612+
//__________________________________________________________________________
613+
void GeometryTGeo::PrintChipID(int index, int subDetID, int petalcase, int disk, int lay, int stave, int indexRetrieved) const
614+
{
615+
std::cout << "\nindex = " << index << std::endl;
616+
std::cout << "subDetID = " << subDetID << std::endl;
617+
std::cout << "petalcase = " << petalcase << std::endl;
618+
std::cout << "layer = " << lay << std::endl;
619+
std::cout << "disk = " << disk << std::endl;
620+
std::cout << "first chip index = " << getFirstChipIndex(lay, petalcase, subDetID) << std::endl;
621+
std::cout << "stave = " << stave << std::endl;
622+
std::cout << "chck index Retrieved = " << indexRetrieved << std::endl;
623+
}
624+
625+
//__________________________________________________________________________
594626
void GeometryTGeo::Print(Option_t*) const
595627
{
596628
if (!isBuilt()) {

0 commit comments

Comments
 (0)