Skip to content

Commit fb7081a

Browse files
mfasDashahor02
authored andcommitted
[EMCAL-637, O2-2683] Fix extruding DCAL supermodules
The size of the DCAL supermodules did not take into account the projective layout and therefore not the tiling of the inner DCAL modules, leading to extruding at the inner edge in eta at the inner R. To compensate the tilting the size of the supermodules had to be increased by 7 cm, shifting the origin back in PHOS direction by 3.5 cm in order to fix the upper edge of the supermodule. The relative tower z-position had to be adapted to the origin shift in order ot keep the towers at the same position.
1 parent c85463a commit fb7081a

2 files changed

Lines changed: 17 additions & 10 deletions

File tree

Detectors/EMCAL/simulation/include/EMCALSimulation/Detector.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,13 @@ class Detector : public o2::base::DetImpl<Detector>
202202
Int_t mCurrentPrimaryID; //!<! ID of the current primary
203203
Int_t mCurrentParentID; //!<! ID of the current parent
204204

205-
Double_t mSampleWidth; //!<! sample width = double(g->GetECPbRadThick()+g->GetECScintThick());
206-
Double_t mSmodPar0; //!<! x size of super module
207-
Double_t mSmodPar1; //!<! y size of super module
208-
Double_t mSmodPar2; //!<! z size of super module
209-
Double_t mInnerEdge; //!<! Inner edge of DCAL super module
210-
Double_t mParEMOD[5]; //!<! parameters of EMCAL module (TRD1,2)
205+
Double_t mSampleWidth; //!<! sample width = double(g->GetECPbRadThick()+g->GetECScintThick());
206+
Double_t mSmodPar0; //!<! x size of super module
207+
Double_t mSmodPar1; //!<! y size of super module
208+
Double_t mSmodPar2; //!<! z size of super module
209+
Double_t mInnerEdge; //!<! Inner edge of DCAL super module
210+
Double_t mDCALInnerGap; //!<! Gap added to inner part of the DCAL supermodule in order to prevent extruding due to tower tilting
211+
Double_t mParEMOD[5]; //!<! parameters of EMCAL module (TRD1,2)
211212

212213
template <typename Det>
213214
friend class o2::base::DetImpl;

Detectors/EMCAL/simulation/src/Detector.cxx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ Detector::Detector(Bool_t active)
6060
mSmodPar0(0.),
6161
mSmodPar1(0.),
6262
mSmodPar2(0.),
63-
mInnerEdge(0.)
63+
mInnerEdge(0.),
64+
mDCALInnerGap(7)
6465
{
6566
using boost::algorithm::contains;
6667
memset(mParEMOD, 0, sizeof(Double_t) * 5);
@@ -100,7 +101,8 @@ Detector::Detector(const Detector& rhs)
100101
mSmodPar0(rhs.mSmodPar0),
101102
mSmodPar1(rhs.mSmodPar1),
102103
mSmodPar2(rhs.mSmodPar2),
103-
mInnerEdge(rhs.mInnerEdge)
104+
mInnerEdge(rhs.mInnerEdge),
105+
mDCALInnerGap(rhs.mDCALInnerGap)
104106
{
105107
for (int i = 0; i < 5; ++i) {
106108
mParEMOD[i] = rhs.mParEMOD[i];
@@ -819,7 +821,9 @@ void Detector::CreateSupermoduleGeometry(const std::string_view mother)
819821
case DCAL_STANDARD: {
820822
smName = "DCSM";
821823
parC[2] *= 2. / 3.;
822-
zpos = mSmodPar2 + g->GetDCALInnerEdge() / 2.; // 21-sep-04
824+
// Extend DCAL SM by 7 cm in inner direction in order to leave space for tilted towers
825+
parC[2] += mDCALInnerGap / 2.; // half gap as parameter uses half size (origin in centre of the SM)
826+
zpos = mSmodPar2 + (g->GetDCALInnerEdge() - mDCALInnerGap) / 2.; // 21-sep-04
823827
break;
824828
}
825829
case DCAL_EXT: {
@@ -929,7 +933,9 @@ void Detector::CreateEmcalModuleGeometry(const std::string_view mother, const st
929933
if (iz < 8) {
930934
continue; //!!!DCSM from 8th to 23th
931935
}
932-
zpos = mod.GetPosZ() - mSmodPar2 - g->GetDCALInnerEdge() / 2.;
936+
// Correct pack supermodule center position after increasing size for extruding fix
937+
// z-pos. := abs. module z - abs origin of the mother volume
938+
zpos = mod.GetPosZ() - mSmodPar2 - (g->GetDCALInnerEdge() - mDCALInnerGap) / 2.;
933939
} else if (mother.compare("SMOD")) {
934940
LOG(error) << "Unknown super module Type!!";
935941
}

0 commit comments

Comments
 (0)