Skip to content

Commit 0c30aa6

Browse files
committed
add v3 building option for FT3
1 parent 3e6bee8 commit 0c30aa6

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

Detectors/Upgrades/ALICE3/FT3/simulation/include/FT3Simulation/Detector.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ class Detector : public o2::base::DetImpl<Detector>
116116
void buildFT3V3b();
117117
void buildFT3Scoping();
118118
void buildFT3NewVacuumVessel();
119+
void buildFT3ScopingV3();
119120
void buildFT3FromFile(std::string);
120121

121122
GeometryTGeo* mGeometryTGeo; //! access to geometry details

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

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,65 @@ void Detector::buildFT3NewVacuumVessel()
346346
}
347347
}
348348

349+
void Detector::buildFT3ScopingV3()
350+
{
351+
// Build the FT3 detector according to v3 layout
352+
// https://indico.cern.ch/event/1596309/contributions/6728167/attachments/3190117/5677220/2025-12-10-AW-ALICE3planning.pdf
353+
// Middle disks inner radius 10 cm
354+
// Outer disks inner radius 20 cm
355+
356+
LOG(info) << "Building FT3 Detector: v3 scoping version";
357+
358+
mNumberOfLayers = 6;
359+
float sensorThickness = 30.e-4;
360+
float layersx2X0 = 1.e-2;
361+
std::vector<std::array<float, 5>> layersConfigCSide{
362+
{77., 10.0, 35., layersx2X0}, // {z_layer, r_in, r_out, Layerx2X0}
363+
{100., 10.0, 35., layersx2X0},
364+
{122., 10.0, 35., layersx2X0},
365+
{150., 20.0, 68.f, layersx2X0},
366+
{180., 20.0, 68.f, layersx2X0},
367+
{220., 20.0, 68.f, layersx2X0}};
368+
369+
std::vector<std::array<float, 5>> layersConfigASide{
370+
{77., 10.0, 35., layersx2X0}, // {z_layer, r_in, r_out, Layerx2X0}
371+
{100., 10.0, 35., layersx2X0},
372+
{122., 10.0, 35., layersx2X0},
373+
{150., 20.0, 68.f, layersx2X0},
374+
{180., 20.0, 68.f, layersx2X0},
375+
{220., 20.0, 68.f, layersx2X0}};
376+
377+
mLayerName.resize(2);
378+
mLayerName[0].resize(mNumberOfLayers);
379+
mLayerName[1].resize(mNumberOfLayers);
380+
mLayerID.clear();
381+
mLayers.resize(2);
382+
383+
for (auto direction : {0, 1}) {
384+
for (int layerNumber = 0; layerNumber < mNumberOfLayers; layerNumber++) {
385+
std::string directionName = std::to_string(direction);
386+
std::string layerName = GeometryTGeo::getFT3LayerPattern() + directionName + std::string("_") + std::to_string(layerNumber);
387+
mLayerName[direction][layerNumber] = layerName;
388+
float z, rIn, rOut, x0;
389+
if (direction == 0) { // C-Side
390+
z = layersConfigCSide[layerNumber][0];
391+
rIn = layersConfigCSide[layerNumber][1];
392+
rOut = layersConfigCSide[layerNumber][2];
393+
x0 = layersConfigCSide[layerNumber][3];
394+
} else if (direction == 1) { // A-Side
395+
z = layersConfigASide[layerNumber][0];
396+
rIn = layersConfigASide[layerNumber][1];
397+
rOut = layersConfigASide[layerNumber][2];
398+
x0 = layersConfigASide[layerNumber][3];
399+
}
400+
401+
LOG(info) << "Adding Layer " << layerName << " at z = " << z;
402+
// Add layers
403+
auto& thisLayer = mLayers[direction].emplace_back(direction, layerNumber, layerName, z, rIn, rOut, x0);
404+
}
405+
}
406+
}
407+
349408
//_________________________________________________________________________________________________
350409
void Detector::buildFT3Scoping()
351410
{
@@ -411,7 +470,7 @@ Detector::Detector(bool active)
411470
} else {
412471
switch (ft3BaseParam.geoModel) {
413472
case Default:
414-
buildFT3NewVacuumVessel(); // FT3 after Upgrade days March 2024
473+
buildFT3ScopingV3(); // v3 Dec 25
415474
break;
416475
case Telescope:
417476
buildBasicFT3(ft3BaseParam); // BasicFT3 = Parametrized telescopic detector (equidistant layers)

0 commit comments

Comments
 (0)