Skip to content

Commit 821e3d4

Browse files
committed
Bug fixes from geometry validation
1 parent 2e36ed0 commit 821e3d4

File tree

7 files changed

+57
-37
lines changed

7 files changed

+57
-37
lines changed

Geometry/EcalCommonData/plugins/dd4hep/DDEcalBarrelNewAlgo.cc

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,11 @@ namespace {
449449
return ns.rotation(ns.prepend(nam));
450450
}
451451

452+
const Rotation3D& myrot(cms::DDNamespace& ns, const string& nam, const Rotation3D& r) {
453+
ns.addRotation(nam, r);
454+
return ns.rotation(ns.prepend(nam));
455+
}
456+
452457
Solid mytrap(const std::string& nam, const EcalTrapezoidParameters& t) {
453458
#ifdef EDM_ML_DEBUG
454459
edm::LogVerbatim("EBGeom") << nam << " Trap " << convertRadToDeg(t.theta()) << ":" << convertRadToDeg(t.phi())
@@ -1169,10 +1174,12 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
11691174
const double yy(radius * sin(phi));
11701175
const double xx(radius * cos(phi));
11711176
++ptmCopy;
1172-
xilyLog.placeVolume(
1173-
ilyPTMLog,
1174-
ptmCopy,
1175-
Transform3D(RotationZ(phi), Position(xx, yy, ily.vecIlyPTMZ[ilyPTM] - ilyLengthHalf)));
1177+
xilyLog.placeVolume(ilyPTMLog,
1178+
ptmCopy,
1179+
Transform3D(myrot(ns,
1180+
std::string(ilyPTMLog.name()) + "_rot" + std::to_string(ptmCopy),
1181+
Rotation3D(RotationZ(phi))),
1182+
Position(xx, yy, ily.vecIlyPTMZ[ilyPTM] - ilyLengthHalf)));
11761183
#ifdef EDM_ML_DEBUG
11771184
edm::LogVerbatim("EBGeomX")
11781185
<< ilyPTMLog.name() << ":" << ptmCopy << " positioned in " << xilyLog.name() << " at ("
@@ -1189,10 +1196,13 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
11891196
const double yy(radius * sin(phi));
11901197
const double xx(radius * cos(phi));
11911198
++fanOutCopy;
1192-
xilyLog.placeVolume(ilyFanOutLog,
1193-
fanOutCopy,
1194-
Transform3D(RotationZ(phi) * RotationY(180._deg),
1195-
Position(xx, yy, ily.vecIlyFanOutZ[ilyFO] - ilyLengthHalf)));
1199+
xilyLog.placeVolume(
1200+
ilyFanOutLog,
1201+
fanOutCopy,
1202+
Transform3D(myrot(ns,
1203+
std::string(ilyFanOutLog.name()) + "_rot" + std::to_string(fanOutCopy),
1204+
RotationZ(phi) * RotationY(180._deg)),
1205+
Position(xx, yy, ily.vecIlyFanOutZ[ilyFO] - ilyLengthHalf)));
11961206
#ifdef EDM_ML_DEBUG
11971207
edm::LogVerbatim("EBGeomX")
11981208
<< ilyFanOutLog.name() << ":" << fanOutCopy << " positioned in " << xilyLog.name() << " at ("
@@ -1207,10 +1217,12 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
12071217
const double yy(radius * sin(phi));
12081218
const double xx(radius * cos(phi));
12091219
++femCopy;
1210-
xilyLog.placeVolume(
1211-
ilyFEMLog,
1212-
femCopy,
1213-
Transform3D(RotationZ(phi), Position(xx, yy, ily.vecIlyFEMZ[ilyFEM] - ilyLengthHalf)));
1220+
xilyLog.placeVolume(ilyFEMLog,
1221+
femCopy,
1222+
Transform3D(myrot(ns,
1223+
std::string(ilyFEMLog.name()) + "_rot" + std::to_string(femCopy),
1224+
Rotation3D(RotationZ(phi))),
1225+
Position(xx, yy, ily.vecIlyFEMZ[ilyFEM] - ilyLengthHalf)));
12141226
#ifdef EDM_ML_DEBUG
12151227
edm::LogVerbatim("EBGeomX")
12161228
<< ilyFEMLog.name() << ":" << femCopy << " positioned in " << xilyLog.name() << " at ("
@@ -1242,8 +1254,11 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
12421254
xilyLog.placeVolume(
12431255
ilyPipeLog[type],
12441256
copyNum[type],
1245-
Transform3D(Rotation3D(ROOT::Math::AxisAngle(ROOT::Math::AxisAngle::XYZVector(xx, yy, 0), 90._deg)),
1246-
Position(xx, yy, zz)));
1257+
Transform3D(
1258+
myrot(ns,
1259+
std::string(ilyPipeLog[type].name()) + "_rot" + std::to_string(ly),
1260+
Rotation3D(ROOT::Math::AxisAngle(ROOT::Math::AxisAngle::XYZVector(xx, yy, 0), 90._deg))),
1261+
Position(xx, yy, zz)));
12471262
#ifdef EDM_ML_DEBUG
12481263
edm::LogVerbatim("EBGeomX") << ilyPipeLog[type].name() << ":" << copyNum[type] << " positioned in "
12491264
<< xilyLog.name() << " at (" << cms::convert2mm(xx) << ","
@@ -1390,7 +1405,7 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
13901405

13911406
Solid fawSolid = SubtractionSolid(fawSolid1,
13921407
fawCutBox,
1393-
Transform3D(myrot(ns, fawCutName + "R", fawCutForm.getRotation()),
1408+
Transform3D(myrot(ns, fawCutName + "_rot", fawCutForm.getRotation()),
13941409
Position(fawCutForm.getTranslation().x(),
13951410
fawCutForm.getTranslation().y(),
13961411
fawCutForm.getTranslation().z())));
@@ -1413,7 +1428,7 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
14131428
ns.assembly(alvWedge.hawRName),
14141429
copyOne,
14151430
Transform3D(
1416-
myrot(ns, alvWedge.hawRName + "R", hawRform.getRotation()),
1431+
myrot(ns, alvWedge.hawRName + "_rot", hawRform.getRotation()),
14171432
Position(hawRform.getTranslation().x(), hawRform.getTranslation().y(), hawRform.getTranslation().z())));
14181433
#ifdef EDM_ML_DEBUG
14191434
edm::LogVerbatim("EBGeomX") << ns.assembly(alvWedge.hawRName).name() << ":" << copyOne << " positioned in "
@@ -1426,7 +1441,10 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
14261441
ns.assembly(alvWedge.hawRName),
14271442
copyTwo,
14281443
Transform3D(
1429-
Rotation3D(1., 0., 0., 0., 1., 0., 0., 0., -1.) * RotationY(M_PI), // rotate about Y after refl thru Z
1444+
myrot(
1445+
ns,
1446+
alvWedge.hawRName + "R2",
1447+
Rotation3D(1., 0., 0., 0., 1., 0., 0., 0., -1.) * RotationY(M_PI)), // rotate about Y after refl thru Z
14301448
Position(-hawRform.getTranslation().x(), -hawRform.getTranslation().y(), -hawRform.getTranslation().z())));
14311449
#ifdef EDM_ML_DEBUG
14321450
edm::LogVerbatim("EBGeomX") << ns.assembly(alvWedge.hawRName).name() << ":" << copyTwo << " positioned in "
@@ -1489,7 +1507,7 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
14891507
ns.assembly(alvWedge.hawRName)
14901508
.placeVolume(gridLog,
14911509
copyOne,
1492-
Transform3D(myrot(ns, grid.name + "R", gridForm.getRotation()),
1510+
Transform3D(myrot(ns, grid.name + "_rot", gridForm.getRotation()),
14931511
Position(gridForm.getTranslation().x(),
14941512
gridForm.getTranslation().y(),
14951513
gridForm.getTranslation().z())));
@@ -1559,7 +1577,7 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext
15591577
);
15601578

15611579
const string cryDDName(cry.name + sType);
1562-
Solid crySolid = mytrap(cry.name, trapCry);
1580+
Solid crySolid = mytrap(cryDDName, trapCry);
15631581
Volume cryLog = Volume(cryDDName, crySolid, ns.material(cry.mat));
15641582

15651583
//++++++++++++++++++++++++++++++++++ APD ++++++++++++++++++++++++++++++++++

Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZminus.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<!-- support ring solids - refer to outer disk comments -->
1212
<Algorithm name="track:DDCutTubsFromPoints">
1313
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
14-
<String name="SolidName" value="PixelForwardInnerDiskOuterRing"/>
14+
<String name="SolidName" value="PixelForwardInnerDiskOuterRingZminus"/>
1515
<String name="Material" value="pixfwdMaterials:C_C_InnerOuterRing"/>
1616
<Numeric name="zPos" value="[OuterRingZ]"/>
1717
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskOuterRingRMin]"/>
@@ -22,7 +22,7 @@
2222
</Algorithm>
2323
<Algorithm name="track:DDCutTubsFromPoints">
2424
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
25-
<String name="SolidName" value="PixelForwardInnerDiskCFOuterRing"/>
25+
<String name="SolidName" value="PixelForwardInnerDiskCFOuterRingZminus"/>
2626
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_InnerOuterRing"/>
2727
<Numeric name="zPos" value="[OuterRingZ]"/>
2828
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskOuterRingCFRMin]"/>
@@ -33,7 +33,7 @@
3333
</Algorithm>
3434
<Algorithm name="track:DDCutTubsFromPoints">
3535
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
36-
<String name="SolidName" value="PixelForwardInnerDiskInnerRing"/>
36+
<String name="SolidName" value="PixelForwardInnerDiskInnerRingZminus"/>
3737
<String name="Material" value="pixfwdMaterials:C_C_InnerInnerRing"/>
3838
<Numeric name="zPos" value="[InnerRingZ]"/>
3939
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskInnerRingRMin]"/>
@@ -44,7 +44,7 @@
4444
</Algorithm>
4545
<Algorithm name="track:DDCutTubsFromPoints">
4646
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
47-
<String name="SolidName" value="PixelForwardInnerDiskCFInnerRing"/>
47+
<String name="SolidName" value="PixelForwardInnerDiskCFInnerRingZminus"/>
4848
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_InnerInnerRing"/>
4949
<Numeric name="zPos" value="[InnerRingZ]"/>
5050
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskInnerRingCFRMin]"/>

Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZplus.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<!-- support ring solids - refer to outer disk comments -->
1212
<Algorithm name="track:DDCutTubsFromPoints">
1313
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
14-
<String name="SolidName" value="PixelForwardInnerDiskOuterRing"/>
14+
<String name="SolidName" value="PixelForwardInnerDiskOuterRingZplus"/>
1515
<String name="Material" value="pixfwdMaterials:C_C_InnerOuterRing"/>
1616
<Numeric name="zPos" value="[OuterRingZ]"/>
1717
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskOuterRingRMin]"/>
@@ -22,7 +22,7 @@
2222
</Algorithm>
2323
<Algorithm name="track:DDCutTubsFromPoints">
2424
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
25-
<String name="SolidName" value="PixelForwardInnerDiskCFOuterRing"/>
25+
<String name="SolidName" value="PixelForwardInnerDiskCFOuterRingZplus"/>
2626
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_InnerOuterRing"/>
2727
<Numeric name="zPos" value="[OuterRingZ]"/>
2828
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskOuterRingCFRMin]"/>
@@ -33,7 +33,7 @@
3333
</Algorithm>
3434
<Algorithm name="track:DDCutTubsFromPoints">
3535
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
36-
<String name="SolidName" value="PixelForwardInnerDiskInnerRing"/>
36+
<String name="SolidName" value="PixelForwardInnerDiskInnerRingZplus"/>
3737
<String name="Material" value="pixfwdMaterials:C_C_InnerInnerRing"/>
3838
<Numeric name="zPos" value="[InnerRingZ]"/>
3939
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskInnerRingRMin]"/>
@@ -44,7 +44,7 @@
4444
</Algorithm>
4545
<Algorithm name="track:DDCutTubsFromPoints">
4646
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
47-
<String name="SolidName" value="PixelForwardInnerDiskCFInnerRing"/>
47+
<String name="SolidName" value="PixelForwardInnerDiskCFInnerRingZplus"/>
4848
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_InnerInnerRing"/>
4949
<Numeric name="zPos" value="[InnerRingZ]"/>
5050
<Numeric name="rMin" value="[pixfwdSupportRingParameters:InnerDiskInnerRingCFRMin]"/>

Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZminus.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
-->
2121
<Algorithm name="track:DDCutTubsFromPoints">
2222
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
23-
<String name="SolidName" value="PixelForwardOuterDiskOuterRing"/>
23+
<String name="SolidName" value="PixelForwardOuterDiskOuterRingZminus"/>
2424
<String name="Material" value="pixfwdMaterials:C_C_OuterOuterRing"/>
2525
<Numeric name="zPos" value="[OuterRingZ]"/>
2626
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskOuterRingRMin]"/>
@@ -31,7 +31,7 @@
3131
</Algorithm>
3232
<Algorithm name="track:DDCutTubsFromPoints">
3333
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
34-
<String name="SolidName" value="PixelForwardOuterDiskCFOuterRing"/>
34+
<String name="SolidName" value="PixelForwardOuterDiskCFOuterRingZminus"/>
3535
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_OuterOuterRing"/>
3636
<Numeric name="zPos" value="[OuterRingZ]"/>
3737
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskOuterRingCFRMin]"/>
@@ -42,7 +42,7 @@
4242
</Algorithm>
4343
<Algorithm name="track:DDCutTubsFromPoints">
4444
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
45-
<String name="SolidName" value="PixelForwardOuterDiskInnerRing"/>
45+
<String name="SolidName" value="PixelForwardOuterDiskInnerRingZminus"/>
4646
<String name="Material" value="pixfwdMaterials:C_C_OuterInnerRing"/>
4747
<Numeric name="zPos" value="[InnerRingZ]"/>
4848
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskInnerRingRMin]"/>
@@ -53,7 +53,7 @@
5353
</Algorithm>
5454
<Algorithm name="track:DDCutTubsFromPoints">
5555
<rParent name="pixfwdDisks:PixelForwardDiskZminus"/>
56-
<String name="SolidName" value="PixelForwardOuterDiskCFInnerRing"/>
56+
<String name="SolidName" value="PixelForwardOuterDiskCFInnerRingZminus"/>
5757
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_OuterInnerRing"/>
5858
<Numeric name="zPos" value="[InnerRingZ]"/>
5959
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskInnerRingCFRMin]"/>

Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZplus.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
-->
2121
<Algorithm name="track:DDCutTubsFromPoints">
2222
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
23-
<String name="SolidName" value="PixelForwardOuterDiskOuterRing"/>
23+
<String name="SolidName" value="PixelForwardOuterDiskOuterRingZplus"/>
2424
<String name="Material" value="pixfwdMaterials:C_C_OuterOuterRing"/>
2525
<Numeric name="zPos" value="[OuterRingZ]"/>
2626
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskOuterRingRMin]"/>
@@ -31,7 +31,7 @@
3131
</Algorithm>
3232
<Algorithm name="track:DDCutTubsFromPoints">
3333
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
34-
<String name="SolidName" value="PixelForwardOuterDiskCFOuterRing"/>
34+
<String name="SolidName" value="PixelForwardOuterDiskCFOuterRingZplus"/>
3535
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_OuterOuterRing"/>
3636
<Numeric name="zPos" value="[OuterRingZ]"/>
3737
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskOuterRingCFRMin]"/>
@@ -42,7 +42,7 @@
4242
</Algorithm>
4343
<Algorithm name="track:DDCutTubsFromPoints">
4444
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
45-
<String name="SolidName" value="PixelForwardOuterDiskInnerRing"/>
45+
<String name="SolidName" value="PixelForwardOuterDiskInnerRingZplus"/>
4646
<String name="Material" value="pixfwdMaterials:C_C_OuterInnerRing"/>
4747
<Numeric name="zPos" value="[InnerRingZ]"/>
4848
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskInnerRingRMin]"/>
@@ -53,7 +53,7 @@
5353
</Algorithm>
5454
<Algorithm name="track:DDCutTubsFromPoints">
5555
<rParent name="pixfwdDisks:PixelForwardDiskZplus"/>
56-
<String name="SolidName" value="PixelForwardOuterDiskCFInnerRing"/>
56+
<String name="SolidName" value="PixelForwardOuterDiskCFInnerRingZplus"/>
5757
<String name="Material" value="pixfwdMaterials:FPix_CFSkin_OuterInnerRing"/>
5858
<Numeric name="zPos" value="[InnerRingZ]"/>
5959
<Numeric name="rMin" value="[pixfwdSupportRingParameters:OuterDiskInnerRingCFRMin]"/>

Geometry/TrackerCommonData/plugins/dd4hep/DDTECModuleAlgo.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,7 @@ static long algorithm(Detector& /* description */, cms::DDParsingContext& ctxt,
409409
dy = 0.5 * pitchThick;
410410
dz = 0.5 * pitchHeight;
411411
solid = Box(dx, dy, dz);
412+
name += "Box";
412413
ns.addSolidNS(name, solid);
413414
edm::LogVerbatim("TECGeom") << "Solid:\t" << name << " " << solid.name() << " Box made of " << pitchMat
414415
<< " of dimensions " << dx << ", " << dy << ", " << dz;
@@ -419,6 +420,7 @@ static long algorithm(Detector& /* description */, cms::DDParsingContext& ctxt,
419420
bl2 = 0.5 * pitchHeight - 0.5 * dz * sin(detTilt);
420421
thet = atan((bl1 - bl2) / (2. * dz));
421422
solid = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
423+
name += "Trap";
422424
ns.addSolidNS(name, solid);
423425
edm::LogVerbatim("TECGeom") << "Solid:\t" << name << " " << solid.name() << " Trap made of " << pitchMat
424426
<< " of dimensions " << dz << ", " << convertRadToDeg(thet) << ", 0, " << h1 << ", "

Geometry/TrackerCommonData/plugins/dd4hep/DDTIBLayerAlgo.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ static long algorithm(Detector& /* description */, cms::DDParsingContext& contex
252252
double dz = 0.5 * layerL - 2. * fillerDz;
253253
double _rmi = std::min(rin + 0.5 * dd4hep::mm, rout - 0.5 * dd4hep::mm);
254254
double _rma = std::max(rin + 0.5 * dd4hep::mm, rout - 0.5 * dd4hep::mm);
255-
solid = ns.addSolidNS(name, Tube(_rmi, _rma, dz, -0.5 * width, width));
255+
solid = ns.addSolidNS(name, Tube(_rmi, _rma, dz, -0.5 * width, 0.5 * width));
256256
LogDebug("TIBGeom") << solid.name() << " Tubs made of " << ribMat << " from " << -0.5 * convertRadToDeg(width)
257257
<< " to " << 0.5 * convertRadToDeg(width) << " with Rin " << rin + 0.5 * dd4hep::mm << " Rout "
258258
<< rout - 0.5 * dd4hep::mm << " ZHalf " << dz;
@@ -490,7 +490,7 @@ static long algorithm(Detector& /* description */, cms::DDParsingContext& contex
490490
break;
491491
}
492492

493-
solid = ns.addSolidNS(name, Tube(pillarRin, pillarRout, pillarDz, -pillarDPhi, 2. * pillarDPhi));
493+
solid = ns.addSolidNS(name, Tube(pillarRin, pillarRout, pillarDz, -pillarDPhi, pillarDPhi));
494494
Volume Pillar = ns.addVolumeNS(Volume(name, solid, ns.material(pillarMaterial)));
495495
LogDebug("TIBGeom") << solid.name() << " Tubs made of " << pillarMaterial << " from " << -pillarDPhi << " to "
496496
<< pillarDPhi << " with Rin " << pillarRin << " Rout " << pillarRout << " ZHalf " << pillarDz;

0 commit comments

Comments
 (0)