@@ -277,6 +277,78 @@ void Detector::buildFT3V3b()
277277 }
278278}
279279
280+ void Detector::buildFT3NewVacuumVessel ()
281+ {
282+ // Build the FT3 detector according to changes proposed during
283+ // https://indico.cern.ch/event/1407704/
284+ // to adhere to the changes that were presented at the ALICE 3 Upgrade days in March 2024
285+ // Inner radius at C-side to 7 cm
286+ // Inner radius at A-side stays at 5 cm
287+
288+ LOG (info) << " Building FT3 Detector: After Upgrade Days March 2024 version" ;
289+
290+ mNumberOfLayers = 12 ;
291+ float sensorThickness = 30 .e -4 ;
292+ float layersx2X0 = 1 .e -2 ;
293+ std::vector<std::array<float , 5 >> layersConfigCSide{
294+ {26 ., .5 , 2.5 , 0 .1f * layersx2X0}, // {z_layer, r_in, r_out, Layerx2X0}
295+ {30 ., .5 , 2.5 , 0 .1f * layersx2X0},
296+ {34 ., .5 , 2.5 , 0 .1f * layersx2X0},
297+ {77 ., 7.0 , 35 ., layersx2X0},
298+ {100 ., 7.0 , 35 ., layersx2X0},
299+ {122 ., 7.0 , 35 ., layersx2X0},
300+ {150 ., 7.0 , 68 .f , layersx2X0},
301+ {180 ., 7.0 , 68 .f , layersx2X0},
302+ {220 ., 7.0 , 68 .f , layersx2X0},
303+ {260 ., 7.0 , 68 .f , layersx2X0},
304+ {300 ., 7.0 , 68 .f , layersx2X0},
305+ {350 ., 7.0 , 68 .f , layersx2X0}};
306+
307+ std::vector<std::array<float , 5 >> layersConfigASide{
308+ {26 ., .5 , 2.5 , 0 .1f * layersx2X0}, // {z_layer, r_in, r_out, Layerx2X0}
309+ {30 ., .5 , 2.5 , 0 .1f * layersx2X0},
310+ {34 ., .5 , 2.5 , 0 .1f * layersx2X0},
311+ {77 ., 5.0 , 35 ., layersx2X0},
312+ {100 ., 5.0 , 35 ., layersx2X0},
313+ {122 ., 5.0 , 35 ., layersx2X0},
314+ {150 ., 5.0 , 68 .f , layersx2X0},
315+ {180 ., 5.0 , 68 .f , layersx2X0},
316+ {220 ., 5.0 , 68 .f , layersx2X0},
317+ {260 ., 5.0 , 68 .f , layersx2X0},
318+ {300 ., 5.0 , 68 .f , layersx2X0},
319+ {350 ., 5.0 , 68 .f , layersx2X0}};
320+
321+ mLayerName .resize (2 );
322+ mLayerName [0 ].resize (mNumberOfLayers );
323+ mLayerName [1 ].resize (mNumberOfLayers );
324+ mLayerID .clear ();
325+ mLayers .resize (2 );
326+
327+ for (auto direction : {0 , 1 }) {
328+ for (int layerNumber = 0 ; layerNumber < mNumberOfLayers ; layerNumber++) {
329+ std::string directionName = std::to_string (direction);
330+ std::string layerName = GeometryTGeo::getFT3LayerPattern () + directionName + std::string (" _" ) + std::to_string (layerNumber);
331+ mLayerName [direction][layerNumber] = layerName;
332+ float z, rIn, rOut, x0;
333+ if (direction == 0 ) { // C-Side
334+ z = layersConfigCSide[layerNumber][0 ];
335+ rIn = layersConfigCSide[layerNumber][1 ];
336+ rOut = layersConfigCSide[layerNumber][2 ];
337+ x0 = layersConfigCSide[layerNumber][3 ];
338+ } else if (direction == 1 ) { // A-Side
339+ z = layersConfigASide[layerNumber][0 ];
340+ rIn = layersConfigASide[layerNumber][1 ];
341+ rOut = layersConfigASide[layerNumber][2 ];
342+ x0 = layersConfigASide[layerNumber][3 ];
343+ }
344+
345+ LOG (info) << " Adding Layer " << layerName << " at z = " << z;
346+ // Add layers
347+ auto & thisLayer = mLayers [direction].emplace_back (direction, layerNumber, layerName, z, rIn, rOut, x0);
348+ }
349+ }
350+ }
351+
280352// _________________________________________________________________________________________________
281353void Detector::buildFT3Scoping ()
282354{
@@ -342,7 +414,7 @@ Detector::Detector(bool active)
342414 } else {
343415 switch (ft3BaseParam.geoModel ) {
344416 case Default:
345- buildFT3Scoping (); // FT3Scoping
417+ buildFT3NewVacuumVessel (); // FT3 after Upgrade days March 2024
346418 break ;
347419 case Telescope:
348420 buildBasicFT3 (ft3BaseParam); // BasicFT3 = Parametrized telescopic detector (equidistant layers)
0 commit comments