Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions Detectors/Passive/src/Pipe.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2300,14 +2300,24 @@ void Pipe::ConstructGeometry()
TGeoVolume* voRB26s3Bellow =
new TGeoVolume("RB26s3Bellow", new TGeoTube(kRB26s3BellowRi, kRB26s3BellowRo, zBellowTot), kMedVacHC);

// Positioning of the volumes
z0 = -kRB26s2BellowUndL / 2. + kRB26s2ConnectionPlieR;
voRB26s2Bellow->AddNode(voRB26s2WiggleL, 1, new TGeoTranslation(0., 0., z0));
z0 += kRB26s2ConnectionPlieR;
zsh = 4. * kRB26s2PlieR - 2. * kRB26s2PlieThickness;
for (Int_t iw = 0; iw < kRB26s2NumberOfPlies; iw++) {
Float_t zpos = z0 + iw * zsh;
voRB26s2Bellow->AddNode(voRB26s2Wiggle, iw + 1, new TGeoTranslation(0., 0., zpos - kRB26s2PlieThickness));
// Positioning of the volumes.
//
// A thirteen-convolution bellow has fourteen inner roots, so one lower plie
// leads the thirteen wiggles. The pitch is not 4*PlieR - 2*PlieThickness: a
// torus-and-disc wiggle is longer than the convolution it stands for, and at
// that pitch the stack does not fit the bellow. There is no room to grow it
// either, since only 0.01 cm separates this bellow from the right welding
// tube. The pitch is therefore the one that makes the fourteen roots span the
// bellow exactly, which is 1.5 per cent shorter.
const Float_t kRB26s3PliePitch =
(2. * zBellowTot - 2. * kRB26s3PlieR) / kRB26s3NumberOfPlies;
const Float_t kRB26s3RootToWiggle = 3. * kRB26s3PlieR - 5. * kRB26s3PlieThickness / 2.;

z0 = -zBellowTot + kRB26s3PlieR;
voRB26s3Bellow->AddNode(voRB26s3WiggleL, 1, new TGeoTranslation(0., 0., z0));
for (Int_t iw = 0; iw < kRB26s3NumberOfPlies; iw++) {
Float_t zpos = z0 + (iw + 1) * kRB26s3PliePitch - kRB26s3RootToWiggle;
voRB26s3Bellow->AddNode(voRB26s3Wiggle, iw + 1, new TGeoTranslation(0., 0., zpos));
}

voRB26s3Compensator->AddNode(voRB26s3Bellow, 1,
Expand Down
26 changes: 18 additions & 8 deletions Detectors/Passive/src/PipeRun4.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2165,14 +2165,24 @@ void PipeRun4::ConstructGeometry()
float zBellowTot = kRB26s3NumberOfPlies * (static_cast<TGeoBBox*>(voRB26s3Wiggle->GetShape()))->GetDZ();
TGeoVolume* voRB26s3Bellow = new TGeoVolume("RB26s3Bellow", new TGeoTube(kRB26s3BellowRi, kRB26s3BellowRo, zBellowTot), kMedVacHC);

// Positioning of the volumes
z0 = -kRB26s2BellowUndL / 2. + kRB26s2ConnectionPlieR;
voRB26s2Bellow->AddNode(voRB26s2WiggleL, 1, new TGeoTranslation(0., 0., z0));
z0 += kRB26s2ConnectionPlieR;
zsh = 4. * kRB26s2PlieR - 2. * kRB26s2PlieThickness;
for (int iw = 0; iw < kRB26s2NumberOfPlies; iw++) {
float zpos = z0 + iw * zsh;
voRB26s2Bellow->AddNode(voRB26s2Wiggle, iw + 1, new TGeoTranslation(0., 0., zpos - kRB26s2PlieThickness));
// Positioning of the volumes.
//
// A thirteen-convolution bellow has fourteen inner roots, so one lower plie
// leads the thirteen wiggles. The pitch is not 4*PlieR - 2*PlieThickness: a
// torus-and-disc wiggle is longer than the convolution it stands for, and at
// that pitch the stack does not fit the bellow. There is no room to grow it
// either, since only 0.01 cm separates this bellow from the right welding
// tube. The pitch is therefore the one that makes the fourteen roots span the
// bellow exactly, which is 1.5 per cent shorter.
const float kRB26s3PliePitch =
(2. * zBellowTot - 2. * kRB26s3PlieR) / kRB26s3NumberOfPlies;
const float kRB26s3RootToWiggle = 3. * kRB26s3PlieR - 5. * kRB26s3PlieThickness / 2.;

z0 = -zBellowTot + kRB26s3PlieR;
voRB26s3Bellow->AddNode(voRB26s3WiggleL, 1, new TGeoTranslation(0., 0., z0));
for (int iw = 0; iw < kRB26s3NumberOfPlies; iw++) {
float zpos = z0 + (iw + 1) * kRB26s3PliePitch - kRB26s3RootToWiggle;
voRB26s3Bellow->AddNode(voRB26s3Wiggle, iw + 1, new TGeoTranslation(0., 0., zpos));
}

voRB26s3Compensator->AddNode(voRB26s3Bellow, 1, new TGeoTranslation(0., 0., kRB26s3WeldingTubeLeftL + zBellowTot));
Expand Down
Loading