@@ -61,10 +61,8 @@ void Detector::configLayers(bool itof, bool otof, bool ftof, bool btof, std::str
6161 const float x2x0)
6262{
6363
64- const float radiusInnerTof = 19 .f ;
65- const float radiusOuterTof = 85 .f ;
66- const float lengthInnerTof = 124 .f ;
67- float lengthOuterTof = 680 .f ;
64+ const std::pair<float , float > dInnerTof = {21 .f , 129 .f }; // Radius and length
65+ std::pair<float , float > dOuterTof = {92 .f , 680 .f }; // Radius and length
6866 std::pair<float , float > radiusRangeDiskTof = {15 .f , 100 .f };
6967 float zForwardTof = 370 .f ;
7068 LOG (info) << " Configuring IOTOF layers with '" << pattern << " ' pattern" ;
@@ -74,49 +72,55 @@ void Detector::configLayers(bool itof, bool otof, bool ftof, bool btof, std::str
7472 ftof = false ;
7573 btof = false ;
7674 } else if (pattern == " v3b1a" ) {
77- lengthOuterTof = 500 .f ;
75+ dOuterTof. second = 500 .f ;
7876 zForwardTof = 270 .f ;
7977 radiusRangeDiskTof = {30 .f , 100 .f };
8078 } else if (pattern == " v3b1b" ) {
81- lengthOuterTof = 500 .f ;
79+ dOuterTof. second = 500 .f ;
8280 zForwardTof = 200 .f ;
8381 radiusRangeDiskTof = {20 .f , 68 .f };
8482 } else if (pattern == " v3b2a" ) {
85- lengthOuterTof = 440 .f ;
83+ dOuterTof. second = 440 .f ;
8684 zForwardTof = 270 .f ;
8785 radiusRangeDiskTof = {30 .f , 120 .f };
8886 } else if (pattern == " v3b2b" ) {
89- lengthOuterTof = 440 .f ;
87+ dOuterTof. second = 440 .f ;
9088 zForwardTof = 200 .f ;
9189 radiusRangeDiskTof = {20 .f , 68 .f };
9290 } else if (pattern == " v3b3" ) {
93- lengthOuterTof = 580 .f ;
91+ dOuterTof. second = 580 .f ;
9492 zForwardTof = 200 .f ;
9593 radiusRangeDiskTof = {20 .f , 68 .f };
9694 } else {
9795 LOG (fatal) << " IOTOF layer pattern " << pattern << " not recognized, exiting" ;
9896 }
9997 if (itof) { // iTOF
100- mITOFLayer = itofSegmented ? ITOFLayer (std::string{GeometryTGeo::getITOFLayerPattern ()},
101- radiusInnerTof, 0 .f , lengthInnerTof, 0 .f , x2x0, ITOFLayer::kBarrelSegmented ,
102- 24 , 5.42 , 10.0 , 10 )
103- : ITOFLayer (std::string{GeometryTGeo::getITOFLayerPattern ()},
104- radiusInnerTof, 0 .f , lengthInnerTof, 0 .f , x2x0, ITOFLayer::kBarrel );
98+ const std::string name = GeometryTGeo::getITOFLayerPattern ();
99+ const int nStaves = itofSegmented ? 24 : 0 ; // number of staves in segmented case
100+ const double staveWidth = itofSegmented ? 5.42 : 0.0 ; // cm
101+ const double staveTiltAngle = itofSegmented ? 10.0 : 0.0 ; // degrees
102+ const int modulesPerStave = itofSegmented ? 10 : 0 ; // number of modules per stave in segmented case
103+ mITOFLayer = ITOFLayer (name,
104+ dInnerTof.first , 0 .f , dInnerTof.second , 0 .f , x2x0, ITOFLayer::kBarrelSegmented ,
105+ nStaves, staveWidth, staveTiltAngle, modulesPerStave);
105106 }
106107 if (otof) { // oTOF
107- mOTOFLayer = otofSegmented ? OTOFLayer (std::string{GeometryTGeo::getOTOFLayerPattern ()},
108- radiusOuterTof, 0 .f , lengthOuterTof, 0 .f , x2x0, OTOFLayer::kBarrelSegmented ,
109- 62 , 9.74 , 5.0 , 54 )
110- : OTOFLayer (std::string{GeometryTGeo::getOTOFLayerPattern ()},
111- radiusOuterTof, 0 .f , lengthOuterTof, 0 .f , x2x0, OTOFLayer::kBarrel );
108+ const std::string name = GeometryTGeo::getOTOFLayerPattern ();
109+ const int nStaves = otofSegmented ? 62 : 0 ; // number of staves in segmented case
110+ const double staveWidth = otofSegmented ? 9.74 : 0.0 ; // cm
111+ const double staveTiltAngle = otofSegmented ? 5.0 : 0.0 ; // degrees
112+ const int modulesPerStave = otofSegmented ? 54 : 0 ; // number of modules per stave in segmented case
113+ mOTOFLayer = OTOFLayer (name,
114+ dOuterTof.first , 0 .f , dOuterTof.second , 0 .f , x2x0, OTOFLayer::kBarrelSegmented ,
115+ nStaves, staveWidth, staveTiltAngle, modulesPerStave);
112116 }
113117 if (ftof) {
114- mFTOFLayer = FTOFLayer ( std::string{ GeometryTGeo::getFTOFLayerPattern ()},
115- radiusRangeDiskTof.first , radiusRangeDiskTof.second , 0 .f , zForwardTof, x2x0, FTOFLayer::kDisk ); // fTOF
118+ const std::string name = GeometryTGeo::getFTOFLayerPattern ();
119+ mFTOFLayer = FTOFLayer (name, radiusRangeDiskTof.first , radiusRangeDiskTof.second , 0 .f , zForwardTof, x2x0, FTOFLayer::kDisk ); // fTOF
116120 }
117121 if (btof) {
118- mBTOFLayer = BTOFLayer ( std::string{ GeometryTGeo::getBTOFLayerPattern ()},
119- radiusRangeDiskTof.first , radiusRangeDiskTof.second , 0 .f , -zForwardTof, x2x0, BTOFLayer::kDisk ); // bTOF
122+ const std::string name = GeometryTGeo::getBTOFLayerPattern ();
123+ mBTOFLayer = BTOFLayer (name, radiusRangeDiskTof.first , radiusRangeDiskTof.second , 0 .f , -zForwardTof, x2x0, BTOFLayer::kDisk ); // bTOF
120124 }
121125}
122126
@@ -338,4 +342,4 @@ o2::itsmft::Hit* Detector::addHit(int trackID, int detID, const TVector3& startP
338342} // namespace iotof
339343} // namespace o2
340344
341- ClassImp (o2::iotof::Detector);
345+ ClassImp (o2::iotof::Detector);
0 commit comments