Skip to content

Commit cd73736

Browse files
committed
[ALICE3] update TOF geometry
- add segmentation into modules, fix overlaps
1 parent ab73e40 commit cd73736

File tree

5 files changed

+257
-101
lines changed

5 files changed

+257
-101
lines changed

Detectors/Upgrades/ALICE3/IOTOF/base/include/IOTOFBase/GeometryTGeo.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,15 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache
3232

3333
// Inner TOF
3434
static const char* getITOFLayerPattern() { return sITOFLayerName.c_str(); }
35+
static const char* getITOFStavePattern() { return sITOFStaveName.c_str(); }
36+
static const char* getITOFModulePattern() { return sITOFModuleName.c_str(); }
3537
static const char* getITOFChipPattern() { return sITOFChipName.c_str(); }
3638
static const char* getITOFSensorPattern() { return sITOFSensorName.c_str(); }
3739

3840
// Outer TOF
3941
static const char* getOTOFLayerPattern() { return sOTOFLayerName.c_str(); }
42+
static const char* getOTOFStavePattern() { return sOTOFStaveName.c_str(); }
43+
static const char* getOTOFModulePattern() { return sOTOFModuleName.c_str(); }
4044
static const char* getOTOFChipPattern() { return sOTOFChipName.c_str(); }
4145
static const char* getOTOFSensorPattern() { return sOTOFSensorName.c_str(); }
4246

@@ -81,11 +85,15 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache
8185

8286
// Inner TOF
8387
static std::string sITOFLayerName;
88+
static std::string sITOFStaveName;
89+
static std::string sITOFModuleName;
8490
static std::string sITOFChipName;
8591
static std::string sITOFSensorName;
8692

8793
// Outer TOF
8894
static std::string sOTOFLayerName;
95+
static std::string sOTOFStaveName;
96+
static std::string sOTOFModuleName;
8997
static std::string sOTOFChipName;
9098
static std::string sOTOFSensorName;
9199

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,15 @@ std::string GeometryTGeo::sIOTOFVolumeName = "IOTOFV";
2323

2424
// Inner TOF
2525
std::string GeometryTGeo::sITOFLayerName = "ITOFLayer";
26+
std::string GeometryTGeo::sITOFStaveName = "ITOFStave";
27+
std::string GeometryTGeo::sITOFModuleName = "ITOFModule";
2628
std::string GeometryTGeo::sITOFChipName = "ITOFChip";
2729
std::string GeometryTGeo::sITOFSensorName = "ITOFSensor";
2830

2931
// Outer TOF
3032
std::string GeometryTGeo::sOTOFLayerName = "OTOFLayer";
33+
std::string GeometryTGeo::sOTOFStaveName = "OTOFStave";
34+
std::string GeometryTGeo::sOTOFModuleName = "OTOFModule";
3135
std::string GeometryTGeo::sOTOFChipName = "OTOFChip";
3236
std::string GeometryTGeo::sOTOFSensorName = "OTOFSensor";
3337

Detectors/Upgrades/ALICE3/IOTOF/simulation/include/IOTOFSimulation/Layer.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class Layer
2626
public:
2727
Layer() = default;
2828
Layer(std::string layerName, float rInn, float rOut, float zLength, float zOffset, float layerX2X0,
29-
int layout = kBarrel, int nSegments = 0, float segmentSize = 0.0, int nSensorsPerSegment = 0, double tiltAngle = 0.0);
29+
int layout = kBarrel, int nStaves = 0, float staveSize = 0.0, double staveTiltAngle = 0.0, int modulesPerStave = 0);
3030
~Layer() = default;
3131

3232
auto getInnerRadius() const { return mInnerRadius; }
@@ -37,7 +37,7 @@ class Layer
3737
auto getChipThickness() const { return mChipThickness; }
3838
auto getName() const { return mLayerName; }
3939
auto getLayout() const { return mLayout; }
40-
auto getSegments() const { return mSegments; }
40+
auto getSegments() const { return mStaves; }
4141
static constexpr int kBarrel = 0;
4242
static constexpr int kDisk = 1;
4343
static constexpr int kBarrelSegmented = 2;
@@ -54,10 +54,10 @@ class Layer
5454
float mX2X0;
5555
float mChipThickness;
5656
int mLayout{kBarrel}; // Identifier of the type of layer layout (barrel, disk, barrel segmented, disk segmented)
57-
// To be used only in case of the segmented layout, to define the number of segments in phi (for barrel) or in r (for disk)
58-
std::pair<int, float> mSegments{0, 0.0f}; // Number and size of segments in phi (for barrel) or in r (for disk) in case of segmented layout
59-
int mSensorsPerSegment{0}; // Number of sensors along a segment
60-
double mTiltAngle{0.0}; // Tilt angle in degrees to be applied as a rotation around the local center of the segment
57+
// To be used only in case of the segmented layout, to define the number of staves in phi (for barrel) or in r (for disk)
58+
std::pair<int, float> mStaves{0, 0.0f}; // Number and size of staves in phi (for barrel) or in r (for disk) in case of segmented layout
59+
int mModulesPerStave{0}; // Number of modules along a stave
60+
double mTiltAngle{0.0}; // Tilt angle in degrees to be applied as a rotation around the local center of the stave
6161
};
6262

6363
class ITOFLayer : public Layer

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@ void Detector::configLayers(bool itof, bool otof, bool ftof, bool btof, std::str
9898
if (itof) { // iTOF
9999
mITOFLayer = itofSegmented ? ITOFLayer(std::string{GeometryTGeo::getITOFLayerPattern()},
100100
radiusInnerTof, 0.f, lengthInnerTof, 0.f, 0.02f, ITOFLayer::kBarrelSegmented,
101-
24, 5.42, 80, 10)
101+
24, 5.42, 10.0, 10)
102102
: ITOFLayer(std::string{GeometryTGeo::getITOFLayerPattern()},
103103
radiusInnerTof, 0.f, lengthInnerTof, 0.f, 0.02f, ITOFLayer::kBarrel);
104104
}
105105
if (otof) { // oTOF
106106
mOTOFLayer = otofSegmented ? OTOFLayer(std::string{GeometryTGeo::getOTOFLayerPattern()},
107107
radiusOuterTof, 0.f, lengthOuterTof, 0.f, 0.02f, OTOFLayer::kBarrelSegmented,
108-
62, 9.74, 432, 5)
108+
62, 9.74, 5.0, 54)
109109
: OTOFLayer(std::string{GeometryTGeo::getOTOFLayerPattern()},
110110
radiusOuterTof, 0.f, lengthOuterTof, 0.f, 0.02f, OTOFLayer::kBarrel);
111111
}

0 commit comments

Comments
 (0)