Skip to content

Commit 249386d

Browse files
sawenzelclaude
andcommitted
Fix the RB26/2 bellow being filled twice in the beam pipe
This removes a duplicated wiggle stack in the beam pipe geometry, which placed 57 volumes exactly on top of identical copies of themselves. - The RB26/3 compensator block carried a copy of the RB26/2 positioning code that was never renamed, so it filled voRB26s2Bellow a second time with the same nodes at the same translations. - RB26s2Bellow therefore held 30 daughters instead of 15. - The duplicates were RB26s2PlieConn1 x28, RB26s2LowerPlie x15 and RB26s2UpperPlie x14. - The block is removed. Nothing else changes: a walk over the PIPE geometry composing every world matrix gives 1152 leaf placements before and 1095 after, with the set of distinct (volume, world transform) pairs identical at 1071 in both. - CheckOverlaps(0.001) reports the same single pre-existing overlap before and after. It could not have flagged this defect: exactly coincident copies of one volume have a zero-extent boundary crossing, which the sampling never resolves as an overlap. - RB26s3Bellow is left empty, as it already was. Giving it the RB26/3 wiggle stack changes the material budget and is a separate fix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 9e0fda6 commit 249386d

1 file changed

Lines changed: 3 additions & 9 deletions

File tree

Detectors/Passive/src/Pipe.cxx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2300,15 +2300,9 @@ void Pipe::ConstructGeometry()
23002300
TGeoVolume* voRB26s3Bellow =
23012301
new TGeoVolume("RB26s3Bellow", new TGeoTube(kRB26s3BellowRi, kRB26s3BellowRo, zBellowTot), kMedVacHC);
23022302

2303-
// Positioning of the volumes
2304-
z0 = -kRB26s2BellowUndL / 2. + kRB26s2ConnectionPlieR;
2305-
voRB26s2Bellow->AddNode(voRB26s2WiggleL, 1, new TGeoTranslation(0., 0., z0));
2306-
z0 += kRB26s2ConnectionPlieR;
2307-
zsh = 4. * kRB26s2PlieR - 2. * kRB26s2PlieThickness;
2308-
for (Int_t iw = 0; iw < kRB26s2NumberOfPlies; iw++) {
2309-
Float_t zpos = z0 + iw * zsh;
2310-
voRB26s2Bellow->AddNode(voRB26s2Wiggle, iw + 1, new TGeoTranslation(0., 0., zpos - kRB26s2PlieThickness));
2311-
}
2303+
// RB26s3Bellow is left without plies. The wiggle stack that stood here was a copy of the
2304+
// RB26/2 code and filled voRB26s2Bellow a second time; filling it with the RB26/3 wiggle
2305+
// would change the material budget and is a separate fix.
23122306

23132307
voRB26s3Compensator->AddNode(voRB26s3Bellow, 1,
23142308
new TGeoTranslation(0., 0., kRB26s3WeldingTubeLeftL + zBellowTot));

0 commit comments

Comments
 (0)