Skip to content

Commit 9920729

Browse files
committed
ALICE3-TRK: indexing scheme now working independently from the chosen geometry layout
1 parent 1f7041b commit 9920729

3 files changed

Lines changed: 21 additions & 11 deletions

File tree

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache
6666
int extractVolumeCopy(const char* name, const char* prefix) const;
6767

6868
int getNumberOfLayersMLOT() const { return mNumberOfLayersMLOT; }
69-
int getNumberOffActivePartsVD() const { return mNumberOfActivePartsVD; }
69+
int getNumberOfActivePartsVD() const { return mNumberOfActivePartsVD; }
70+
std::vector<int> getNumberOfHalfStaves() const { return mNumberOfHalfStaves; }
7071

7172
bool isOwner() const { return mOwner; }
7273
void setOwner(bool v) { mOwner = v; }

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

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,12 @@ int GeometryTGeo::getChipIndex(int subDetID, int petalcase, int disk, int lay, i
221221
} else { // layer
222222
return getFirstChipIndex(lay, petalcase, subDetID) + lay;
223223
}
224-
} else if (subDetID == 1) { // MLOT
225-
return getFirstChipIndex(lay, petalcase, subDetID) + stave * mNumberOfHalfStaves[lay] + halfstave;
224+
} else if (subDetID == 1) { // MLOT
225+
if (mNumberOfHalfStaves[lay] == 2) { // staggered geometry
226+
return getFirstChipIndex(lay, petalcase, subDetID) + stave * mNumberOfHalfStaves[lay] + halfstave;
227+
} else if (mNumberOfHalfStaves[lay] == 1) { // turbo geometry
228+
return getFirstChipIndex(lay, petalcase, subDetID) + stave;
229+
}
226230
}
227231
return -1; // not found
228232
}
@@ -233,8 +237,12 @@ int GeometryTGeo::getChipIndex(int subDetID, int volume, int lay, int stave, int
233237
if (subDetID == 0) { // VD
234238
return volume; /// In the current configuration for VD, each volume is the sensor element = chip. // TODO: when the geometry naming scheme will be changed, change this method
235239

236-
} else if (subDetID == 1) { // MLOT
237-
return getFirstChipIndex(lay, -1, subDetID) + stave * mNumberOfHalfStaves[lay] + halfstave;
240+
} else if (subDetID == 1) { // MLOT
241+
if (mNumberOfHalfStaves[lay] == 2) { // staggered geometry
242+
return getFirstChipIndex(lay, -1, subDetID) + stave * mNumberOfHalfStaves[lay] + halfstave;
243+
} else if (mNumberOfHalfStaves[lay] == 1) { // turbo geometry
244+
return getFirstChipIndex(lay, -1, subDetID) + stave;
245+
}
238246
}
239247
return -1; // not found
240248
}
@@ -701,8 +709,8 @@ void GeometryTGeo::Print(Option_t*) const
701709
LOGF(info, "Number of staves and half staves per layer MLOT: ");
702710
for (int i = 0; i < mNumberOfLayersMLOT; i++) {
703711
std::string mlot = "";
704-
mlot = (i < 5) ? "ML" : "OT";
705-
LOGF(info, "Layer: %d, %s, %d staves, %d half staves", i, mlot.c_str(), mNumberOfStaves[i], mNumberOfStaves[i] * mNumberOfHalfStaves[i]);
712+
mlot = (i < 4) ? "ML" : "OT";
713+
LOGF(info, "Layer: %d, %s, %d staves, %d half staves per stave", i, mlot.c_str(), mNumberOfStaves[i], mNumberOfHalfStaves[i]);
706714
}
707715
LOGF(info, "Total number of chips: %d", getNumberOfChips());
708716

Detectors/Upgrades/ALICE3/TRK/simulation/src/Detector.cxx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,8 +445,7 @@ bool Detector::ProcessHits(FairVolume* vol)
445445
TLorentzVector positionStop;
446446
fMC->TrackPosition(positionStop);
447447
// Retrieve the indices with the volume path
448-
// int subDetID, int petalcase, int disk, int lay, int stave
449-
int petal(0), ll(0), stave(0), halfstave(0);
448+
int stave(0), halfstave(0);
450449
if (subDetID == 1) {
451450
fMC->CurrentVolOffID(1, halfstave);
452451
fMC->CurrentVolOffID(2, stave);
@@ -482,11 +481,13 @@ void Detector::Print(FairVolume* vol, int volume, int subDetID, int layer, int s
482481
int currentVol(0);
483482
LOG(INFO) << "Current volume name: " << fMC->CurrentVolName() << " and ID " << fMC->CurrentVolID(currentVol);
484483
LOG(INFO) << "volume: " << volume << "/" << mNumberOfVolumes - 1;
485-
if (subDetID == 1) {
484+
if (subDetID == 1 and mGeometryTGeo->getNumberOfHalfStaves()[layer] == 2) { // staggered geometry
486485
LOG(INFO) << "off volume name 1 " << fMC->CurrentVolOffName(1) << " halfstave: " << halfstave;
487486
LOG(INFO) << "off volume name 2 " << fMC->CurrentVolOffName(2) << " stave: " << stave;
488487
LOG(INFO) << "SubDetector ID: " << subDetID << " Layer: " << layer << " staveinLayer: " << stave << " Chip ID: " << chipID;
489-
488+
} else if (subDetID == 1 and mGeometryTGeo->getNumberOfHalfStaves()[layer] == 1) { // turbo geometry
489+
LOG(INFO) << "off volume name 2 " << fMC->CurrentVolOffName(2) << " stave: " << stave;
490+
LOG(INFO) << "SubDetector ID: " << subDetID << " Layer: " << layer << " staveinLayer: " << stave << " Chip ID: " << chipID;
490491
} else {
491492
LOG(INFO) << "SubDetector ID: " << subDetID << " Chip ID: " << chipID;
492493
}

0 commit comments

Comments
 (0)