// Connection tube length
const Float_t kRB24VMABBEConTubeL1 = 0.9;
const Float_t kRB24VMABBEConTubeL2 = 2.6;
- const Float_t RB24VMABBEBellowL = kRB24VMABBEConTubeL1 + kRB24VMABBEConTubeL2 + kRB24B1BellowUndL;
+// const Float_t RB24VMABBEBellowL = kRB24VMABBEConTubeL1 + kRB24VMABBEConTubeL2 + kRB24B1BellowUndL;
// Mother volume
TGeoPcon* shRB24VMABBEBellowM = new TGeoPcon(0., 360., 6);
// Vacuum Tube //
// Drawing LHCVC2A_0003 //
///////////////////////////////////
- const Float_t kRB26s3TubeL = 629.35 + 0.3; // 0.3 cm added for welding
+ const Float_t kRB26s3TubeL = 629.35 + 0.3; // 0.3 cm added for welding
+ const Float_t kRB26s3TubeR1 = 12./2.;
+ const Float_t kRB26s3TubeR2 = kRB26s3TubeR1 + 215.8 * TMath::Tan(0.829 / 180. * TMath::Pi());
+
TGeoPcon* shRB26s3Tube = new TGeoPcon(0., 360., 7);
// Section 1: straight section
- shRB26s3Tube->DefineSection(0, 0.00, 12.00/2., 12.30/2.);
- shRB26s3Tube->DefineSection(1, 2.00, 12.00/2., 12.30/2.);
+ shRB26s3Tube->DefineSection(0, 0.00, kRB26s3TubeR1, kRB26s3TubeR1 + 0.15);
+ shRB26s3Tube->DefineSection(1, 2.00, kRB26s3TubeR1, kRB26s3TubeR1 + 0.15);
// Section 2: 0.829 deg opening cone
- shRB26s3Tube->DefineSection(2, 2.00, 12.00/2., 12.40/2.);
-
- shRB26s3Tube->DefineSection(3, 217.80, 12.00/2., 12.40/2.);
- shRB26s3Tube->DefineSection(4, 217.80, 12.00/2., 12.40/2.);
+ shRB26s3Tube->DefineSection(2, 2.00, kRB26s3TubeR1, kRB26s3TubeR1 + 0.20);
+
+ shRB26s3Tube->DefineSection(3, 217.80, kRB26s3TubeR2, kRB26s3TubeR2 + 0.20);
+ shRB26s3Tube->DefineSection(4, 217.80, kRB26s3TubeR2, kRB26s3TubeR2 + 0.30);
- shRB26s3Tube->DefineSection(5, 622.20, 30.00/2., 30.60/2.);
+ shRB26s3Tube->DefineSection(5, 622.20, 30.00/2., 30.60/2.);
shRB26s3Tube->DefineSection(6, kRB26s3TubeL, 30.00/2., 30.60/2.);
TGeoVolume* voRB26s3Tube = new TGeoVolume("RB26s3Tube", shRB26s3Tube, kMedSteel);
shRB26s45Tube->DefineSection( 2, 1.20, 30.00/2., 30.80/2.);
shRB26s45Tube->DefineSection( 3, 25.10, 30.00/2., 30.80/2.);
// Section 2: 0.932 deg opening cone
- shRB26s45Tube->DefineSection( 4, 512.10, 45.00/2., 45.80/2.);
+ shRB26s45Tube->DefineSection( 4, 486.10, 45.00/2., 45.80/2.);
// Section 3: straight section 4 mm
- shRB26s45Tube->DefineSection( 5, 538.10, 45.00/2., 45.80/2.);
+ shRB26s45Tube->DefineSection( 5, 512.10, 45.00/2., 45.80/2.);
// Section 4: straight section 3 mm
- shRB26s45Tube->DefineSection( 6, 538.10, 45.00/2., 45.60/2.);
- shRB26s45Tube->DefineSection( 7, 553.70, 45.00/2., 45.60/2.);
+ shRB26s45Tube->DefineSection( 6, 512.10, 45.00/2., 45.60/2.);
+ shRB26s45Tube->DefineSection( 7, 527.70, 45.00/2., 45.60/2.);
// Section 4: closing cone
shRB26s45Tube->DefineSection( 8, 591.30, 10.00/2., 10.60/2.);
shRB26s45Tube->DefineSection( 9, 591.89, 10.00/2., 10.30/2.);
// Create a mother shape from a template setting some min radii to 0
//
Int_t nz0 = shape->GetNz();
+ // if nz > -1 the number of planes is given by nz
if (nz != -1) nz0 = nz;
-
TGeoPcon* mother = new TGeoPcon(0., 360., nz0);
- nz--;
-
+
if (imin == -1 || imax == -1) {
imin = 0;
imax = shape->GetNz();
- } else if (imax > nz) {
- imax = nz;
- printf("Warning: imax reset to nz \n");
+ } else if (imax >= nz0) {
+ imax = nz0 - 1;
+ printf("Warning: imax reset to nz-1 %5d %5d %5d %5d\n", imin, imax, nz, nz0);
}
const TGeoMedium* kMedSteel = gGeoManager->GetMedium("PIPE_INOX");
char name[64], nameA[64], nameB[64], bools[64];
- sprintf(name, "%sBellow", ext);
+ sprintf(name, "%sBellowUS", ext);
TGeoVolume* voBellow = new TGeoVolume(name, new TGeoTube(rMin, rMax, dU/2.), kMedVac);
//
// Upper part of the undulation
// One wiggle
Float_t dz = rPlie - dPlie / 2.;
Float_t z0 = - dPlie / 2.;
- printf("Bellow %f %f %f %f\n", dz, z0, rPlie, dPlie/2.);
-
sprintf(name, "%sWiggle", ext);
TGeoVolumeAssembly* asWiggle = new TGeoVolumeAssembly(name);
- printf("z0 %f\n", z0);
asWiggle->AddNode(voWiggleC1, 1 , new TGeoTranslation(0., 0., z0));
z0 += dz;
- printf("z0 %f\n", z0);
asWiggle->AddNode(voWiggleU, 1 , new TGeoTranslation(0., 0., z0));
z0 += dz;
- printf("z0 %f\n", z0);
asWiggle->AddNode(voWiggleC1, 2 , new TGeoTranslation(0., 0., z0));
z0 += dz;
- printf("z0 %f\n", z0);
asWiggle->AddNode(voWiggleL , 1 , new TGeoTranslation(0., 0., z0));
// Positioning of the volumes
z0 = - dU / 2.+ rPlie;
Float_t zpos = z0 + iw * zsh;
voBellow->AddNode(asWiggle, iw + 1, new TGeoTranslation(0., 0., zpos - dPlie));
}
- printf("Bellow end\n");
return voBellow;
}