Skip to content

Commit 9a93b25

Browse files
committed
Add support to place either a stack gap or single sensor around y=0 in staves that have full +Rout to -Rout coverage
1 parent f74b291 commit 9a93b25

2 files changed

Lines changed: 22 additions & 3 deletions

File tree

Detectors/Upgrades/ALICE3/FT3/base/include/FT3Base/FT3BaseParam.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ struct FT3BaseParam : public o2::conf::ConfigurableParamHelper<FT3BaseParam> {
4343
bool cutStavesOnNominalRadius_inner = false;
4444
bool cutStavesOnNominalRadius_outer = false;
4545

46+
// What to place over x=0 line in case of full outer-outer stave: Gap or Sensor
47+
bool placeSensorInMiddleOfStave = false;
48+
4649
O2ParamDef(FT3BaseParam, "FT3Base");
4750
};
4851

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -560,9 +560,25 @@ void FT3Module::create_layout_staveGeo(double mZ, int layerNumber, int direction
560560
bool mirrorStaveAroundX = false;
561561
// default positive and negative starting points has a gap around x-axis for symmetry
562562
double stave_half_length = Constants::y_lengths[i_stave] / 2;
563-
PositionRangeType y_ranges =
564-
{{Constants::stackGap / 2, stave_half_length},
565-
{-Constants::stackGap / 2, -stave_half_length}};
563+
PositionRangeType y_ranges;
564+
if (ft3Params.placeSensorInMiddleOfStave) {
565+
/*
566+
* We want a sensor to cross over the x-axis for coverage at y=0
567+
* N.B. not necessarily exactly mirrored, only if stack gap is the same
568+
* as the gap between sensors in a stack.
569+
*/
570+
y_ranges = {{-Constants::sensor2x1_height / 2,
571+
stave_half_length},
572+
{-Constants::sensor2x1_height / 2 - Constants::stackGap,
573+
-stave_half_length}};
574+
} else {
575+
/*
576+
* Otherwise have a gap around y=0, so sensors are not placed there.
577+
* This means the stave is perfectly mirrored around the x-axis.
578+
*/
579+
y_ranges = {{Constants::stackGap / 2, stave_half_length},
580+
{-Constants::stackGap / 2, -stave_half_length}};
581+
}
566582
auto y_midpoint_it = Constants::staveID_to_y_midpoint.find(staveID);
567583
if ( y_midpoint_it != Constants::staveID_to_y_midpoint.end() ) {
568584
// there is a defined midpoint for this stave, use this for starting points

0 commit comments

Comments
 (0)