diff --git a/FCCee/ALLEGRO/compact/ALLEGRO_o1_v02/FCCee_ECalBarrel_thetamodulemerged.xml b/FCCee/ALLEGRO/compact/ALLEGRO_o1_v02/FCCee_ECalBarrel_thetamodulemerged.xml index 4fd78287a..2a0beb3e8 100644 --- a/FCCee/ALLEGRO/compact/ALLEGRO_o1_v02/FCCee_ECalBarrel_thetamodulemerged.xml +++ b/FCCee/ALLEGRO/compact/ALLEGRO_o1_v02/FCCee_ECalBarrel_thetamodulemerged.xml @@ -27,7 +27,7 @@ - + @@ -42,7 +42,7 @@ - + @@ -53,6 +53,11 @@ + + + + + @@ -107,6 +112,10 @@ + + + + diff --git a/detector/calorimeter/ECalBarrel_NobleLiquid_InclinedTrapezoids_o1_v02_geo.cpp b/detector/calorimeter/ECalBarrel_NobleLiquid_InclinedTrapezoids_o1_v02_geo.cpp index 9f62dec88..9c2c27b2b 100644 --- a/detector/calorimeter/ECalBarrel_NobleLiquid_InclinedTrapezoids_o1_v02_geo.cpp +++ b/detector/calorimeter/ECalBarrel_NobleLiquid_InclinedTrapezoids_o1_v02_geo.cpp @@ -108,8 +108,10 @@ static dd4hep::detail::Ref_t createECalBarrelInclined(dd4hep::Detector& aLcdd, double passiveThickness = passiveInnerThicknessMin + passiveOuterThickness + passiveGlueThickness; double angle = passive.rotation().angle(); - double bathRmin = caloDim.rmin(); // - margin for inclination - double bathRmax = caloDim.rmax(); // + margin for inclination + dd4hep::xml::DetElement bath = aXmlElement.child(_Unicode(bath)); + dd4hep::xml::Dimension bathDim(bath.dimensions()); + double bathRmin = bathDim.rmin(); + double bathRmax = bathDim.rmax(); dd4hep::Tube bathOuterShape(bathRmin, bathRmax, caloDim.dz()); // make it 4 volumes + 5th for detector envelope dd4hep::Tube bathAndServicesOuterShape(cryoDim.rmin2(), cryoDim.rmax1(), caloDim.dz()); // make it 4 volumes + 5th for detector envelope if (cryoThicknessFront > 0) { diff --git a/detector/calorimeter/README.md b/detector/calorimeter/README.md index f7efc63b6..3bcd9a375 100644 --- a/detector/calorimeter/README.md +++ b/detector/calorimeter/README.md @@ -14,6 +14,8 @@ Original version taken from [FCCDetectors](https://github.com/HEP-FCC/FCCDetecto ### o1_v02 New version, with module-theta based segmentation. In each layer adjacent cells along theta or module directions can be grouped together, with possibly different merging per layer. This is specified with the `mergedCells_Theta` and `mergedModules` vectors in the `segmentation` tag of the xml file. The baseline grouping in theta is by four in all layers except L1 (the strip layer). The baseline grouping in module direction is by two in all layers. The LAr gap has also been slightly adjusted to bring back the number of modules to 1536 (it was 1545 before). The segmentation class needs to know the number of modules, which is passed via the `nModules` parameter of the `segmentation` tag. To ensure that number of modules and layers (length of the mergedXXX vectors) are consistent with number of modules and layers of the detector, the xml defines `ECalBarrelNumLayers` and `ECalBarrelNumPlanes`, and the c++ file doing the detector construction checks that the number of planes and layers calculated dynamically from other parameters matches that in the xml (if not, the code will crash). +Overlaps in the LAr bath volume fixed. + ## CaloDisks This sub-detector makes calorimeter endcaps (original and reflected). It is used in ALLEGRO detector concept.