Skip to content

Commit 32bae57

Browse files
committed
Fix cylindrical version
1 parent e17ce87 commit 32bae57

2 files changed

Lines changed: 51 additions & 31 deletions

File tree

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

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,17 @@ void GeometryTGeo::Build(int loadTrans)
101101
mLastChipIndexMLOT.resize(mNumberOfLayersMLOT); /// ML and OT are part of TRK as the same detector, without disks
102102

103103
for (int i = 0; i < mNumberOfLayersMLOT; i++) {
104-
mNumberOfStaves[i] = extractNumberOfStavesMLOT(i);
105-
mNumberOfHalfStaves[i] = extractNumberOfHalfStavesMLOT(i);
106-
mNumberOfModules[i] = extractNumberOfModulesMLOT(i);
107-
mNumberOfChips[i] = extractNumberOfChipsMLOT(i);
104+
if (mLayoutMLOT == eMLOTLayout::kCylindrical) {
105+
mNumberOfStaves[i] = 1;
106+
mNumberOfHalfStaves[i] = 1;
107+
mNumberOfModules[i] = 1;
108+
mNumberOfChips[i] = 1;
109+
} else {
110+
mNumberOfStaves[i] = extractNumberOfStavesMLOT(i);
111+
mNumberOfHalfStaves[i] = extractNumberOfHalfStavesMLOT(i);
112+
mNumberOfModules[i] = extractNumberOfModulesMLOT(i);
113+
mNumberOfChips[i] = extractNumberOfChipsMLOT(i);
114+
}
108115
}
109116

110117
int numberOfChipsTotal = 0;
@@ -398,19 +405,8 @@ TString GeometryTGeo::getMatrixPath(int index) const
398405

399406
// PrintChipID(index, subDetID, petalcase, disk, layer, stave, halfstave, mod, chip);
400407

401-
// TString path = "/cave_1/barrel_1/TRKV_2/TRKLayer0_1/TRKStave0_1/TRKChip0_1/TRKSensor0_1/"; /// dummy path, to be used for tests
402408
TString path = Form("/cave_1/barrel_1/%s_2/", GeometryTGeo::getTRKVolPattern());
403409

404-
// handling cylindrical configuration for ML and/or OT
405-
// needed because of the different numbering scheme in the geometry for the cylindrical case wrt the staggered and turbo ones
406-
if (subDetID == 1) {
407-
if ((layer < 4 && mLayoutMLOT == eMLOTLayout::kCylindrical) || (layer > 3 && mLayoutMLOT == eMLOTLayout::kCylindrical)) {
408-
stave = 1;
409-
mod = 1;
410-
chip = 1;
411-
}
412-
}
413-
414410
// build the path
415411
if (subDetID == 0) { // VD
416412
if (disk >= 0) {
@@ -425,15 +421,19 @@ TString GeometryTGeo::getMatrixPath(int index) const
425421
path += Form("%s%d_%s%d_%s%d_1/", getTRKPetalPattern(), petalcase, getTRKPetalLayerPattern(), layer, getTRKChipPattern(), layer); // PETALCASEx_LAYERy_TRKChipy_1
426422
path += Form("%s%d_%s%d_%s%d_1/", getTRKPetalPattern(), petalcase, getTRKPetalLayerPattern(), layer, getTRKSensorPattern(), layer); // PETALCASEx_LAYERy_TRKSensory_1
427423
}
428-
} else if (subDetID == 1) { // MLOT
429-
path += Form("%s%d_1/", getTRKLayerPattern(), layer); // TRKLayerx_1
430-
path += Form("%s%d_%d/", getTRKStavePattern(), layer, stave); // TRKStavex_y
431-
if (mNumberOfHalfStaves[layer] == 2) { // staggered geometry
432-
path += Form("%s%d_%d/", getTRKHalfStavePattern(), layer, halfstave); // TRKHalfStavex_y
424+
} else if (subDetID == 1) { // MLOT
425+
path += Form("%s%d_1/", getTRKLayerPattern(), layer); // TRKLayerx_1
426+
if (mLayoutMLOT == eMLOTLayout::kCylindrical) {
427+
path += Form("%s%d_1/", getTRKSensorPattern(), layer); // TRKSensorx_1
428+
} else {
429+
path += Form("%s%d_%d/", getTRKStavePattern(), layer, stave); // TRKStavex_y
430+
if (mNumberOfHalfStaves[layer] == 2) { // staggered geometry
431+
path += Form("%s%d_%d/", getTRKHalfStavePattern(), layer, halfstave); // TRKHalfStavex_y
432+
}
433+
path += Form("%s%d_%d/", getTRKModulePattern(), layer, mod); // TRKModulx_y
434+
path += Form("%s%d_%d/", getTRKChipPattern(), layer, chip); // TRKChipx_y
435+
path += Form("%s%d_1/", getTRKSensorPattern(), layer); // TRKSensorx_1
433436
}
434-
path += Form("%s%d_%d/", getTRKModulePattern(), layer, mod); // TRKModulx_y
435-
path += Form("%s%d_%d/", getTRKChipPattern(), layer, chip); // TRKChipx_y
436-
path += Form("%s%d_1/", getTRKSensorPattern(), layer); // TRKSensorx_1
437437
}
438438
return path;
439439
}

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

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -475,18 +475,38 @@ bool Detector::ProcessHits(FairVolume* vol)
475475
if (stopHit) {
476476
TLorentzVector positionStop;
477477
fMC->TrackPosition(positionStop);
478+
478479
// Retrieve the indices with the volume path
479480
int stave(0), halfstave(0), mod(0), chip(0);
481+
482+
auto& trkPars = TRKBaseParam::Instance();
483+
480484
if (subDetID == 1) {
481-
fMC->CurrentVolOffID(1, chip);
482-
fMC->CurrentVolOffID(2, mod);
483-
if (mGeometryTGeo->getNumberOfHalfStaves(layer) == 2) {
484-
fMC->CurrentVolOffID(3, halfstave);
485-
fMC->CurrentVolOffID(4, stave);
486-
} else if (mGeometryTGeo->getNumberOfHalfStaves(layer) == 1) {
487-
fMC->CurrentVolOffID(3, stave);
485+
/*if (trkPars.layoutMLOT == o2::trk::eMLOTLayout::kCylindrical) {
486+
fMC->CurrentVolOffID(1, chip);
488487
} else {
489-
LOGP(fatal, "Wrong number of halfstaves for layer {}", layer);
488+
fMC->CurrentVolOffID(1, chip);
489+
fMC->CurrentVolOffID(2, mod);
490+
if (mGeometryTGeo->getNumberOfHalfStaves(layer) == 2) {
491+
fMC->CurrentVolOffID(3, halfstave);
492+
fMC->CurrentVolOffID(4, stave);
493+
} else if (mGeometryTGeo->getNumberOfHalfStaves(layer) == 1) {
494+
fMC->CurrentVolOffID(3, stave);
495+
} else {
496+
LOGP(fatal, "Wrong number of halfstaves for layer {}", layer);
497+
}
498+
}*/
499+
if (trkPars.layoutMLOT == o2::trk::eMLOTLayout::kSegmented) {
500+
fMC->CurrentVolOffID(1, chip);
501+
fMC->CurrentVolOffID(2, mod);
502+
if (mGeometryTGeo->getNumberOfHalfStaves(layer) == 2) {
503+
fMC->CurrentVolOffID(3, halfstave);
504+
fMC->CurrentVolOffID(4, stave);
505+
} else if (mGeometryTGeo->getNumberOfHalfStaves(layer) == 1) {
506+
fMC->CurrentVolOffID(3, stave);
507+
} else {
508+
LOGP(fatal, "Wrong number of halfstaves for layer {}", layer);
509+
}
490510
}
491511
} /// if VD, for the moment the volume is the "chipID" so no need to retrieve other elments
492512

0 commit comments

Comments
 (0)