Skip to content

Commit 0d8971d

Browse files
committed
Configurable VD design, set def to IRIS 4, remove IRIS disks
1 parent 7830e9c commit 0d8971d

File tree

3 files changed

+34
-5
lines changed

3 files changed

+34
-5
lines changed

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ enum eLayout {
3131
kStaggered,
3232
};
3333

34+
enum eVDLayout {
35+
kIRIS4 = 0,
36+
kIRISFullCyl,
37+
kIRIS5,
38+
kIRIS4a,
39+
};
40+
3441
struct TRKBaseParam : public o2::conf::ConfigurableParamHelper<TRKBaseParam> {
3542
std::string configFile = "";
3643
float serviceTubeX0 = 0.02f; // X0 Al2O3
@@ -40,9 +47,11 @@ struct TRKBaseParam : public o2::conf::ConfigurableParamHelper<TRKBaseParam> {
4047

4148
eLayout layoutML = kTurboStaves; // Type of segmentation for the middle layers
4249
eLayout layoutOL = kStaggered; // Type of segmentation for the outer layers
50+
eVDLayout layoutVD = kIRIS4; // VD detector layout design
4351

4452
eLayout getLayoutML() const { return layoutML; }
4553
eLayout getLayoutOL() const { return layoutOL; }
54+
eVDLayout getLayoutVD() const { return layoutVD; }
4655

4756
O2ParamDef(TRKBaseParam, "TRKBase");
4857
};

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

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -261,12 +261,32 @@ void Detector::createGeometry()
261261
mServices.createServices(vTRK);
262262

263263
// Build the VD using the petal builder
264-
// Choose the VD design (here: IRIS4 by default).
265-
// You can wire this to a parameter in TRKBaseParam if desired.
266-
// Alternatives: createIRIS5Geometry(vTRK); createIRIS4aGeometry(vTRK);
264+
// Choose the VD design based on TRKBaseParam.layoutVD
265+
auto& trkPars = TRKBaseParam::Instance();
267266

268267
o2::trk::clearVDSensorRegistry();
269-
o2::trk::createIRISGeometryFullCyl(vTRK);
268+
269+
switch (trkPars.layoutVD) {
270+
case kIRIS4:
271+
LOG(info) << "Building VD with IRIS4 layout";
272+
o2::trk::createIRIS4Geometry(vTRK);
273+
break;
274+
case kIRISFullCyl:
275+
LOG(info) << "Building VD with IRIS fully cylindrical layout";
276+
o2::trk::createIRISGeometryFullCyl(vTRK);
277+
break;
278+
case kIRIS5:
279+
LOG(info) << "Building VD with IRIS5 layout";
280+
o2::trk::createIRIS5Geometry(vTRK);
281+
break;
282+
case kIRIS4a:
283+
LOG(info) << "Building VD with IRIS4a layout";
284+
o2::trk::createIRIS4aGeometry(vTRK);
285+
break;
286+
default:
287+
LOG(fatal) << "Unknown VD layout option: " << static_cast<int>(trkPars.layoutVD);
288+
break;
289+
}
270290

271291
// Fill sensor names from registry right after geometry creation
272292
const auto& regs = o2::trk::vdSensorRegistry();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ static TGeoVolume* buildPetalAssembly(int nPetals,
749749
/*fullCylindricalRadialWalls=*/fullCylinders);
750750

751751
addBarrelLayers(petalAsm, nPetals, petalID, rectangularL0, fullCylinders);
752-
addDisks(petalAsm, nPetals, petalID, fullCylinders);
752+
// addDisks(petalAsm, nPetals, petalID, fullCylinders); // disks removed according to the v3b layout
753753

754754
addColdPlate(petalAsm, nPetals, petalID, /*fullCylinders=*/false);
755755
addIRISServiceModulesSegmented(petalAsm, nPetals);

0 commit comments

Comments
 (0)