#include <Riostream.h>
-#include <TSystem.h>
-#include <TVirtualMC.h>
+#include <TGeoBBox.h>
+#include <TGeoCompositeShape.h>
+#include <TGeoCone.h>
+#include <TGeoGlobalMagField.h>
#include <TGeoManager.h>
#include <TGeoMatrix.h>
-#include <TGeoVolume.h>
+#include <TGeoPcon.h>
#include <TGeoTorus.h>
#include <TGeoTube.h>
-#include <TGeoCone.h>
-#include <TGeoPcon.h>
-#include <TGeoBBox.h>
+#include <TGeoVolume.h>
#include <TGeoXtru.h>
-#include <TGeoCompositeShape.h>
+#include <TSystem.h>
+#include <TVirtualMC.h>
#include "AliConst.h"
#include "AliMagF.h"
#include "AliLog.h"
ClassImp(AliPIPEv3)
+
//_____________________________________________________________________________
-AliPIPEv3::AliPIPEv3()
+AliPIPEv3::AliPIPEv3() : fBeamBackground(0)
{
// Constructor
}
//_____________________________________________________________________________
AliPIPEv3::AliPIPEv3(const char *name, const char *title)
- : AliPIPE(name,title)
+ : AliPIPE(name,title), fBeamBackground(0)
{
// Constructor
}
//___________________________________________
void AliPIPEv3::CreateGeometry()
{
- AliDebug(1,"Create PIPEv3 geometry");
//
-// Class describing the beam pipe geometry
+// Method describing the beam pipe geometry
//
-
+ AliDebug(1,"Create PIPEv3 geometry");
Float_t dz, z, zsh, z0;
//
// Rotation Matrices
TGeoRotation* rot315 = new TGeoRotation("rot315", 90. ,315., 90., 45., 0., 0.);
//
// Media
- const TGeoMedium* kMedAir = gGeoManager->GetMedium("PIPE_AIR");
+ const TGeoMedium* kMedAir = gGeoManager->GetMedium("PIPE_AIR1");
+ const TGeoMedium* kMedAirH = gGeoManager->GetMedium("PIPE_AIR2");
const TGeoMedium* kMedAirHigh = gGeoManager->GetMedium("PIPE_AIR_HIGH");
- const TGeoMedium* kMedVac = gGeoManager->GetMedium("PIPE_VACUUM");
+
+ const TGeoMedium* kMedVac = gGeoManager->GetMedium("PIPE_VACUUM1");
+ const TGeoMedium* kMedVacH = gGeoManager->GetMedium("PIPE_VACUUM2");
+ const TGeoMedium* kMedVacM = gGeoManager->GetMedium("PIPE_VACUUMM");
+
const TGeoMedium* kMedInsu = gGeoManager->GetMedium("PIPE_INS_C0");
- const TGeoMedium* kMedSteel = gGeoManager->GetMedium("PIPE_INOX");
- const TGeoMedium* kMedBe = gGeoManager->GetMedium("PIPE_BE");
- const TGeoMedium* kMedCu = gGeoManager->GetMedium("PIPE_CU");
- const TGeoMedium* kMedKapton = gGeoManager->GetMedium("PIPE_KAPTON");
- const TGeoMedium* kMedAco = gGeoManager->GetMedium("PIPE_ANTICORODAL");
- const TGeoMedium* kMedNEG = gGeoManager->GetMedium("PIPE_NEG COATING");
+ const TGeoMedium* kMedInsuH = gGeoManager->GetMedium("PIPE_INS_C2");
+
+ const TGeoMedium* kMedSteel = gGeoManager->GetMedium("PIPE_INOX1");
+ const TGeoMedium* kMedSteelH = gGeoManager->GetMedium("PIPE_INOX2");
+
+ const TGeoMedium* kMedBe = gGeoManager->GetMedium("PIPE_BE1");
+ const TGeoMedium* kMedBeH = gGeoManager->GetMedium("PIPE_BE2");
+
+ const TGeoMedium* kMedCu = gGeoManager->GetMedium("PIPE_CU1");
+ const TGeoMedium* kMedCuH = gGeoManager->GetMedium("PIPE_CU2");
+
+ const TGeoMedium* kMedKapton = gGeoManager->GetMedium("PIPE_KAPTON1");
+ const TGeoMedium* kMedKaptonH = gGeoManager->GetMedium("PIPE_KAPTON2");
+
+ const TGeoMedium* kMedAco = gGeoManager->GetMedium("PIPE_ANTICORODAL1");
+ const TGeoMedium* kMedAcoH = gGeoManager->GetMedium("PIPE_ANTICORODAL2");
+
+ const TGeoMedium* kMedNEG = gGeoManager->GetMedium("PIPE_NEG COATING1");
+ const TGeoMedium* kMedNEGH = gGeoManager->GetMedium("PIPE_NEG COATING2");
// Top volume
TGeoVolume* top = gGeoManager->GetVolume("ALIC");
//
// Central beam pipe support collars
// LHCVC2C_0019
+// cp1l = 405.
// Position at z = -46., 40., 150.
TGeoVolume* voCpSupC = new TGeoVolume("CpSupC", new TGeoTube(3.051, 4.00, 0.35), kMedAco);
- voCp1->AddNode(voCpSupC, 1, new TGeoTranslation(0., 0., kCP1Length / 2. - 98.2));
- voCp1->AddNode(voCpSupC, 2, new TGeoTranslation(0., 0., kCP1Length / 2.- 191.5));
+ voCp1->AddNode(voCpSupC, 1, new TGeoTranslation(0., 0., kCP1Length / 2. - 98.2 - 34.77 + 0.49));
+// voCp1->AddNode(voCpSupC, 2, new TGeoTranslation(0., 0., kCP1Length / 2.- 191.5));
// Beam Pipe Protection Tube
//
// ALIFWDA_0025
// Plie radius
// const Float_t kCP3PlieR = 0.118286;
const Float_t kCP3PlieR =
- (kCP3BellowUndulatedLength - 4. * kCP3ConnectionPlieR + 2. * kCP3PlieThickness +
- (2. * kCP3NumberOfPlies - 2.) * kCP3PlieThickness) / (4. * kCP3NumberOfPlies - 2.);
+ (kCP3BellowUndulatedLength - 4. * kCP3ConnectionPlieR +
+ 2. * kCP3NumberOfPlies * kCP3PlieThickness) / (4. * kCP3NumberOfPlies - 2.);
// Length of connection pipe
const Float_t kCP3BellowConnectionLength = 2.35;
//
z = -shCp3Mo->GetZ(0);
shCp3Mo->DefineSection(11, z, 0., kCP3FlangeRo);
//
- TGeoVolume* voCp3Mo = new TGeoVolume("CP3MO", shCp3Mo, kMedAir);
+ // TGeoVolume* voCp3Mo = new TGeoVolume("CP3MO", shCp3Mo, kMedAir);
+ TGeoVolume* voCp3Mo = new TGeoVolumeAssembly("CP3MO");
voCp3Mo->SetVisibility(0);
TGeoVolumeAssembly* voCp3 = new TGeoVolumeAssembly("Cp3");
voCp3->AddNode(voCp3Mo, 1, gGeoIdentity);
- voCp3->AddNode(voCpSupC, 3, new TGeoTranslation(0., 0., - kCP3Length / 2. + 4.6));
+ voCp3->AddNode(voCpSupC, 3, new TGeoTranslation(0., 0., - kCP3Length / 2. + 4.6 - 0.49));
dz = kCP3pos;
//////////////////////////////////////////////
const Float_t kRB24CuTubeFL = 1.86;
TGeoVolume* voRB24CuTubeM = new TGeoVolume("voRB24CuTubeM",
- new TGeoTube(0., kRB24CuTubeRo, kRB24CuTubeL/2.), kMedVac);
+ new TGeoTube(0., kRB24CuTubeRo, kRB24CuTubeL/2.), kMedVacH);
voRB24CuTubeM->SetVisibility(0);
TGeoVolume* voRB24CuTube = new TGeoVolume("voRB24CuTube",
- new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, kRB24CuTubeL/2.), kMedCu);
+ new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, kRB24CuTubeL/2.), kMedCuH);
voRB24CuTubeM->AddNode(voRB24CuTube, 1, gGeoIdentity);
// Air outside tube with higher transport cuts
TGeoVolume* voRB24CuTubeA = new TGeoVolume("voRB24CuTubeA",
new TGeoTube(25., 100., kRB24CuTubeL/2.), kMedAirHigh);
voRB24CuTubeA->SetVisibility(0);
// Simplified DN 100 Flange
- TGeoVolume* voRB24CuTubeF = new TGeoVolume("voRB24CuTubeF",
- new TGeoTube(kRB24CuTubeRo, kRB24CuTubeFRo, kRB24CuTubeFL/2.), kMedSteel);
+ TGeoVolume* voRB24CuTubeF = new TGeoVolume("voRB24CuTubeF",
+ new TGeoTube(kRB24CuTubeRo, kRB24CuTubeFRo, kRB24CuTubeFL/2.), kMedSteelH);
// Warm Module Type VMACA
// LHCVMACA_0002
const Float_t kRB24B1PlieThickness = 0.015; // Plie thickness
const Float_t kRB24B1PlieRadius =
- (kRB24B1BellowUndL + (2. * kRB24B1NumberOfPlies - 2.) * kRB24B1PlieThickness) / (4. * kRB24B1NumberOfPlies);
+ (kRB24B1BellowUndL + (2. * kRB24B1NumberOfPlies+ 1.) * kRB24B1PlieThickness) / (4. * kRB24B1NumberOfPlies + 2.);
const Float_t kRB24B1ProtTubeThickness = 0.02; // Thickness of the protection tube
const Float_t kRB24B1ProtTubeLength = 4.2; // Length of the protection tube
z = kRB24B1L - shRB24B1BellowM->GetZ(0);
shRB24B1BellowM->DefineSection(13, z, 0., kRB24B1RFlangeRou);
- TGeoVolume* voRB24B1BellowM = new TGeoVolume("RB24B1BellowM", shRB24B1BellowM, kMedVac);
+ TGeoVolume* voRB24B1BellowM = new TGeoVolume("RB24B1BellowM", shRB24B1BellowM, kMedVacH);
voRB24B1BellowM->SetVisibility(0);
//
// Bellow Section
//
// End Parts (connection tube)
- TGeoVolume* voRB24B1CT = new TGeoVolume("RB24B1CT", new TGeoTube(kRB24B1ConTubeRin, kRB24B1ConTubeRou, kRB24B1ConTubeL/2.), kMedSteel);
+ TGeoVolume* voRB24B1CT = new TGeoVolume("RB24B1CT", new TGeoTube(kRB24B1ConTubeRin, kRB24B1ConTubeRou, kRB24B1ConTubeL/2.), kMedSteelH);
//
// Protection Tube
TGeoVolume* voRB24B1PT = new TGeoVolume("RB24B1PT", new TGeoTube(kRB24B1BellowRo, kRB24B1BellowRo + kRB24B1ProtTubeThickness,
- kRB24B1ProtTubeLength / 2.), kMedSteel);
+ kRB24B1ProtTubeLength / 2.), kMedSteelH);
z = kRB24B1ConTubeL/2. + (kRB24B1RFlangeL - kRB24B1RFlangeRecess);
z += kRB24B1RFlangeLO;
shRB24B1RFlange->DefineSection(9, z, kRB24B1RFlangeRO, kRB24B1RFlangeRou);
- TGeoVolume* voRB24B1RFlange = new TGeoVolume("RB24B1RFlange", shRB24B1RFlange, kMedSteel);
+ TGeoVolume* voRB24B1RFlange = new TGeoVolume("RB24B1RFlange", shRB24B1RFlange, kMedSteelH);
z = kRB24B1L - kRB24B1RFlangeL;
shRB24B1RCTFlange->DefineSection(4, z, kRB24B1RCTFlangeRin, 11.16/2.);
z += 0.25;
shRB24B1RCTFlange->DefineSection(5, z, kRB24B1RCTFlangeRin, 11.16/2.);
- TGeoVolume* voRB24B1RCTFlange = new TGeoVolume("RB24B1RCTFlange", shRB24B1RCTFlange, kMedCu);
+ TGeoVolume* voRB24B1RCTFlange = new TGeoVolume("RB24B1RCTFlange", shRB24B1RCTFlange, kMedCuH);
z = kRB24B1L - kRB24B1RCTFlangeL;
voRB24B1BellowM->AddNode(voRB24B1RCTFlange, 1, new TGeoTranslation(0., 0., z));
z = kRB24B1RCTL - 0.03;
shRB24B1RCT->DefineSection(2, z, kRB24B1RCTRin, kRB24B1RCTRin + kRB24B1RCTd);
- TGeoVolume* voRB24B1RCT = new TGeoVolume("RB24B1RCT", shRB24B1RCT, kMedCu);
+ TGeoVolume* voRB24B1RCT = new TGeoVolume("RB24B1RCT", shRB24B1RCT, kMedCuH);
z = kRB24B1L - kRB24B1RCTL - 0.45;
voRB24B1BellowM->AddNode(voRB24B1RCT, 1, new TGeoTranslation(0., 0., z));
// Transition Tube
z += 3.75;
shRB24B1TTF->DefineSection(6, z, 8.05/2., 8.45/2.);
- TGeoVolume* voRB24B1TTF = new TGeoVolume("RB24B1TTF", shRB24B1TTF, kMedSteel);
+ TGeoVolume* voRB24B1TTF = new TGeoVolume("RB24B1TTF", shRB24B1TTF, kMedSteelH);
z = 0.;
voRB24B1BellowM->AddNode(voRB24B1TTF, 1, new TGeoTranslation(0., 0., z));
// Mother volume
const Float_t kRB24AIpML = 35.;
- TGeoVolume* voRB24AIpM = new TGeoVolume("voRB24AIpM", new TGeoTube(0., 10., kRB24AIpML/2.), kMedAir);
+ TGeoVolume* voRB24AIpM = new TGeoVolume("voRB24AIpM", new TGeoTube(0., 10., kRB24AIpML/2.), kMedAirH);
voRB24AIpM->SetVisibility(0);
//
z0 += kRB24IpRFD5;
shRB24IpRF->DefineSection(8, z0, kRB24IpRFRi5, kRB24IpRFRo);
- TGeoVolume* voRB24IpRF = new TGeoVolume("RB24IpRF", shRB24IpRF, kMedSteel);
+ TGeoVolume* voRB24IpRF = new TGeoVolume("RB24IpRF", shRB24IpRF, kMedSteelH);
//
// Pos 2 RF Screen Tube LHCVC2U_0005
Float_t kRB24IpSTTL = 32.84; // Total length of the tube
Float_t kRB24IpSTTRi = 5.80/2.; // Inner Radius
Float_t kRB24IpSTTRo = 6.00/2.; // Outer Radius
- TGeoVolume* voRB24IpSTT = new TGeoVolume("RB24IpSTT", new TGeoTube(kRB24IpSTTRi, kRB24IpSTTRo, kRB24IpSTTL/2.), kMedSteel);
+ TGeoVolume* voRB24IpSTT = new TGeoVolume("RB24IpSTT", new TGeoTube(kRB24IpSTTRi, kRB24IpSTTRo, kRB24IpSTTL/2.), kMedSteelH);
// Screen
Float_t kRB24IpSTCL = 0.4; // Lenth of the crochet detail
// Length of the screen
Float_t kRB24IpSTSL = 9.00 - 2. * kRB24IpSTCL;
// Rel. position of the screen
Float_t kRB24IpSTSZ = 7.00 + kRB24IpSTCL;
- TGeoVolume* voRB24IpSTS = new TGeoVolume("RB24IpSTS", new TGeoTube(kRB24IpSTTRi, kRB24IpSTTRo, kRB24IpSTSL/2.), kMedSteel);
+ TGeoVolume* voRB24IpSTS = new TGeoVolume("RB24IpSTS", new TGeoTube(kRB24IpSTTRi, kRB24IpSTTRo, kRB24IpSTSL/2.), kMedSteelH);
// Vacuum
- TGeoVolume* voRB24IpSTV = new TGeoVolume("RB24IpSTV", new TGeoTube(0., kRB24IpSTTRi, kRB24AIpML/2.), kMedVac);
+ TGeoVolume* voRB24IpSTV = new TGeoVolume("RB24IpSTV", new TGeoTube(0., kRB24IpSTTRi, kRB24AIpML/2.), kMedVacH);
//
voRB24IpSTT->AddNode(voRB24IpSTS, 1, new TGeoTranslation(0., 0., kRB24IpSTSZ - kRB24IpSTTL/2. + kRB24IpSTSL/2.));
shRB24IpSTC->DefineSection(3, z0, kRB24IpSTTRo, kRB24IpSTCRo);
z0 += kRB24IpSTCL3;
shRB24IpSTC->DefineSection(4, z0, kRB24IpSTTRo, kRB24IpSTTRo + 0.001);
- TGeoVolume* voRB24IpSTC = new TGeoVolume("RB24IpSTC", shRB24IpSTC, kMedSteel);
+ TGeoVolume* voRB24IpSTC = new TGeoVolume("RB24IpSTC", shRB24IpSTC, kMedSteelH);
// Pos 3 Shell LHCVC2U_0007
// Pos 4 Extruded Shell LHCVC2U_0006
shRB24IpShell->DefineSection(5, z0, kRB24IpShellCARi, kRB24IpShellCCRo);
z0 = kRB24IpShellL;
shRB24IpShell->DefineSection(6, z0, kRB24IpShellCARi, kRB24IpShellCCRo);
- TGeoVolume* voRB24IpShell = new TGeoVolume("RB24IpShell", shRB24IpShell, kMedSteel);
+ TGeoVolume* voRB24IpShell = new TGeoVolume("RB24IpShell", shRB24IpShell, kMedSteelH);
TGeoPcon* shRB24IpShellM = MakeMotherFromTemplate(shRB24IpShell, 0, 6, kRB24IpShellCTRi , 13);
shRB24IpShellM->DefineSection(7+i, z, rmin, rmax);
}
- TGeoVolume* voRB24IpShellM = new TGeoVolume("RB24IpShellM", shRB24IpShellM, kMedVac);
+ TGeoVolume* voRB24IpShellM = new TGeoVolume("RB24IpShellM", shRB24IpShellM, kMedVacH);
voRB24IpShellM->SetVisibility(0);
voRB24IpShellM->AddNode(voRB24IpShell, 1, gGeoIdentity);
voRB24IpShellM->AddNode(voRB24IpShell, 2, new TGeoCombiTrans(0., 0., 2. * kRB24IpShellL, rot180));
// Pos 8 Pumping Elements
//
// Anode array
- TGeoVolume* voRB24IpPE = new TGeoVolume("voRB24IpPE", new TGeoTube(0.9, 1., 2.54/2.), kMedSteel);
+ TGeoVolume* voRB24IpPE = new TGeoVolume("voRB24IpPE", new TGeoTube(0.9, 1., 2.54/2.), kMedSteelH);
Float_t kRB24IpPEAR = 5.5;
for (Int_t i = 0; i < 15; i++) {
TGeoVolume* voRB24ValveBoM =
new TGeoVolume("RB24ValveBoM",
- new TGeoBBox( kRB24ValveBoWx/2., kRB24ValveBoWy/2., kRB24ValveBoWz/2.), kMedAir);
+ new TGeoBBox( kRB24ValveBoWx/2., kRB24ValveBoWy/2., kRB24ValveBoWz/2.), kMedAirH);
voRB24ValveBoM->SetVisibility(0);
TGeoVolume* voRB24ValveBo =
new TGeoVolume("RB24ValveBo",
- new TGeoBBox( kRB24ValveBoWx/2., kRB24ValveBoWy/2., kRB24ValveBoWz/2.), kMedSteel);
+ new TGeoBBox( kRB24ValveBoWx/2., kRB24ValveBoWy/2., kRB24ValveBoWz/2.), kMedSteelH);
voRB24ValveBoM->AddNode(voRB24ValveBo, 1, gGeoIdentity);
//
// Inner volume
new TGeoBBox( kRB24ValveBoWx/2. - kRB24ValveBoD,
kRB24ValveBoWy/2. - kRB24ValveBoD/2.,
kRB24ValveBoWz/2. - kRB24ValveBoD),
- kMedVac);
+ kMedVacH);
voRB24ValveBo->AddNode(voRB24ValveBoI, 1, new TGeoTranslation(0., kRB24ValveBoD/2., 0.));
//
// Opening and Flanges
const Float_t kRB24ValveFlRo = 18./2.;
const Float_t kRB24ValveFlD = 1.45;
TGeoVolume* voRB24ValveBoA = new TGeoVolume("RB24ValveBoA",
- new TGeoTube(0., kRB24ValveDN/2., kRB24ValveBoD/2.), kMedVac);
+ new TGeoTube(0., kRB24ValveDN/2., kRB24ValveBoD/2.), kMedVacH);
voRB24ValveBo->AddNode(voRB24ValveBoA, 1, new TGeoTranslation(0., - kRB24ValveBoWy/2. + 21.5, -kRB24ValveBoWz/2. + kRB24ValveBoD/2.));
voRB24ValveBo->AddNode(voRB24ValveBoA, 2, new TGeoTranslation(0., - kRB24ValveBoWy/2. + 21.5, +kRB24ValveBoWz/2. - kRB24ValveBoD/2.));
- TGeoVolume* voRB24ValveFl = new TGeoVolume("RB24ValveFl", new TGeoTube(kRB24ValveDN/2., kRB24ValveFlRo, kRB24ValveFlD/2.), kMedSteel);
- TGeoVolume* voRB24ValveFlI = new TGeoVolume("RB24ValveFlI", new TGeoTube(0., kRB24ValveFlRo, kRB24ValveFlD/2.), kMedVac);
+ TGeoVolume* voRB24ValveFl = new TGeoVolume("RB24ValveFl", new TGeoTube(kRB24ValveDN/2., kRB24ValveFlRo, kRB24ValveFlD/2.), kMedSteelH);
+ TGeoVolume* voRB24ValveFlI = new TGeoVolume("RB24ValveFlI", new TGeoTube(0., kRB24ValveFlRo, kRB24ValveFlD/2.), kMedVacH);
voRB24ValveFlI->AddNode(voRB24ValveFl, 1, gGeoIdentity);
//
const Float_t kRB24ValveAFlWx = 18.9;
const Float_t kRB24ValveAFlWy = 5.0;
const Float_t kRB24ValveAFlWz = 7.7;
- TGeoVolume* voRB24ValveAFl = new TGeoVolume("RB24ValveAFl", new TGeoBBox(kRB24ValveAFlWx/2., kRB24ValveAFlWy/2., kRB24ValveAFlWz/2.), kMedSteel);
+ TGeoVolume* voRB24ValveAFl = new TGeoVolume("RB24ValveAFl", new TGeoBBox(kRB24ValveAFlWx/2., kRB24ValveAFlWy/2., kRB24ValveAFlWz/2.), kMedSteelH);
//
// Actuator Tube
const Float_t kRB24ValveATRo = 9.7/2.;
const Float_t kRB24ValveATH = 16.6;
TGeoVolume* voRB24ValveAT = new TGeoVolume("RB24ValveAT", new TGeoTube(kRB24ValveATRo - 2. * kRB24ValveBoD,kRB24ValveATRo, kRB24ValveATH/2.),
- kMedSteel);
+ kMedSteelH);
//
// Manual Actuator (my best guess)
- TGeoVolume* voRB24ValveMA1 = new TGeoVolume("RB24ValveMA1", new TGeoCone(2.5/2., 0., 0.5, 4.5, 5.), kMedSteel);
- TGeoVolume* voRB24ValveMA2 = new TGeoVolume("RB24ValveMA2", new TGeoTorus(5., 0., 1.25), kMedSteel);
- TGeoVolume* voRB24ValveMA3 = new TGeoVolume("RB24ValveMA3", new TGeoTube (0., 1.25, 2.5), kMedSteel);
+ TGeoVolume* voRB24ValveMA1 = new TGeoVolume("RB24ValveMA1", new TGeoCone(2.5/2., 0., 0.5, 4.5, 5.), kMedSteelH);
+ TGeoVolume* voRB24ValveMA2 = new TGeoVolume("RB24ValveMA2", new TGeoTorus(5., 0., 1.25), kMedSteelH);
+ TGeoVolume* voRB24ValveMA3 = new TGeoVolume("RB24ValveMA3", new TGeoTube (0., 1.25, 2.5), kMedSteelH);
//
// Lower inforcement
TGeoVolume* voRB24VMABCRBT12 = new TGeoVolume("RB24VMABCRBT12",
new TGeoTubeSeg(kRB24VMABCRBT1Ro, kRB24VMABCRBT1Ro + 0.3, kRB24VMABCRBT1L2/2., 220., 320.)
- , kMedSteel);
+ , kMedSteelH);
//
// Tube 2
const Float_t kRB24VMABCRBT2Ri = 6.0/2.;
tRBT2->SetName("tRBT2");
tRBT2->RegisterYourself();
TGeoCompositeShape* shRB24VMABCRBT2c = new TGeoCompositeShape("shRB24VMABCRBT2c","RB24VMABCRBT2:tRBT2-RB24VMABCRBT1o");
- TGeoVolume* voRB24VMABCRBT2 = new TGeoVolume("shRB24VMABCRBT2", shRB24VMABCRBT2c, kMedSteel);
+ TGeoVolume* voRB24VMABCRBT2 = new TGeoVolume("shRB24VMABCRBT2", shRB24VMABCRBT2c, kMedSteelH);
// Flange
// Pos 1.4 Flange DN63 LHCVBU__0008
TGeoVolume* voRB24VMABCRBF2 = new TGeoVolume("RB24VMABCRBF2",
- new TGeoTube(kRB24VMABCRBT2Ro, kRB24VMABCRBF2Ro, kRB24VMABCRBF2L/2.), kMedSteel);
+ new TGeoTube(kRB24VMABCRBT2Ro, kRB24VMABCRBF2Ro, kRB24VMABCRBF2L/2.), kMedSteelH);
// DN63 Blank Flange (my best guess)
TGeoVolume* voRB24VMABCRBF2B = new TGeoVolume("RB24VMABCRBF2B",
- new TGeoTube(0., kRB24VMABCRBF2Ro, kRB24VMABCRBF2L/2.), kMedSteel);
+ new TGeoTube(0., kRB24VMABCRBF2Ro, kRB24VMABCRBF2L/2.), kMedSteelH);
//
// Tube 3
const Float_t kRB24VMABCRBT3Ri = 3.5/2.;
tRBT3->SetName("tRBT3");
tRBT3->RegisterYourself();
TGeoCompositeShape* shRB24VMABCRBT3c = new TGeoCompositeShape("shRB24VMABCRBT3c","RB24VMABCRBT3:tRBT3-RB24VMABCRBT1o");
- TGeoVolume* voRB24VMABCRBT3 = new TGeoVolume("shRB24VMABCRBT3", shRB24VMABCRBT3c, kMedSteel);
+ TGeoVolume* voRB24VMABCRBT3 = new TGeoVolume("shRB24VMABCRBT3", shRB24VMABCRBT3c, kMedSteelH);
// Flange
// Pos 1.4 Flange DN35 LHCVBU__0007
TGeoVolume* voRB24VMABCRBF3 = new TGeoVolume("RB24VMABCRBF3",
- new TGeoTube(kRB24VMABCRBT3Ro, kRB24VMABCRBF3Ro, kRB24VMABCRBF3L/2.), kMedSteel);
+ new TGeoTube(kRB24VMABCRBT3Ro, kRB24VMABCRBF3Ro, kRB24VMABCRBF3L/2.), kMedSteelH);
//
// Tube 4
const Float_t kRB24VMABCRBT4Ri = 6.0/2.;
tRBT4->SetName("tRBT4");
tRBT4->RegisterYourself();
TGeoCompositeShape* shRB24VMABCRBT4c = new TGeoCompositeShape("shRB24VMABCRBT4c","RB24VMABCRBT4:tRBT4-RB24VMABCRBT1o2");
- TGeoVolume* voRB24VMABCRBT4 = new TGeoVolume("shRB24VMABCRBT4", shRB24VMABCRBT4c, kMedSteel);
+ TGeoVolume* voRB24VMABCRBT4 = new TGeoVolume("shRB24VMABCRBT4", shRB24VMABCRBT4c, kMedSteelH);
TGeoCompositeShape* shRB24VMABCRB = new TGeoCompositeShape("shRB24VMABCRB", "RB24VMABCRBT1-(RB24VMABCRBT2i:tRBT2+RB24VMABCRBT3i:tRBT3)");
- TGeoVolume* voRB24VMABCRBI = new TGeoVolume("RB24VMABCRBI", shRB24VMABCRB, kMedSteel);
+ TGeoVolume* voRB24VMABCRBI = new TGeoVolume("RB24VMABCRBI", shRB24VMABCRB, kMedSteelH);
//
// Plate
const Float_t kRB24VMABCRBBx = 16.0;
const Float_t kRB24VMABCPz = 3.6;
const Float_t kRB24VMABCPy = -12.5;
- TGeoVolume* voRB24VMABCRBP = new TGeoVolume("RB24VMABCRBP", new TGeoBBox(kRB24VMABCRBBx/2., kRB24VMABCRBBy/2., kRB24VMABCRBBz/2.), kMedSteel);
+ TGeoVolume* voRB24VMABCRBP = new TGeoVolume("RB24VMABCRBP", new TGeoBBox(kRB24VMABCRBBx/2., kRB24VMABCRBBy/2., kRB24VMABCRBBz/2.), kMedSteelH);
//
// Pirani Gauge (my best guess)
//
shRB24VMABCPirani->DefineSection(13, z, 0.00, 0.75);
z += 0.5;
shRB24VMABCPirani->DefineSection(14, z, 0.00, 0.75);
- TGeoVolume* voRB24VMABCPirani = new TGeoVolume("RB24VMABCPirani", shRB24VMABCPirani, kMedSteel);
+ TGeoVolume* voRB24VMABCPirani = new TGeoVolume("RB24VMABCPirani", shRB24VMABCPirani, kMedSteelH);
//
//
//
shRB24VMABBEBellowM->DefineSection( 4, z, kRB24VMABBEConTubeRin, kRB24VMABBEConTubeRou);
z += kRB24VMABBEConTubeL2;
shRB24VMABBEBellowM->DefineSection( 5, z, kRB24VMABBEConTubeRin, kRB24VMABBEConTubeRou);
- TGeoVolume* voRB24VMABBEBellowM = new TGeoVolume("RB24VMABBEBellowM", shRB24VMABBEBellowM, kMedVac);
+ TGeoVolume* voRB24VMABBEBellowM = new TGeoVolume("RB24VMABBEBellowM", shRB24VMABBEBellowM, kMedVacH);
voRB24VMABBEBellowM->SetVisibility(0);
// Connection tube left
TGeoVolume* voRB24VMABBECT1 = new TGeoVolume("RB24VMABBECT1",
new TGeoTube(kRB24VMABBEConTubeRin, kRB24VMABBEConTubeRou,kRB24VMABBEConTubeL1/2.),
- kMedSteel);
+ kMedSteelH);
// Connection tube right
TGeoVolume* voRB24VMABBECT2 = new TGeoVolume("RB24VMABBECT2",
new TGeoTube(kRB24VMABBEConTubeRin, kRB24VMABBEConTubeRou,kRB24VMABBEConTubeL2/2.),
- kMedSteel);
+ kMedSteelH);
z = kRB24VMABBEConTubeL1/2.;
voRB24VMABBEBellowM->AddNode(voRB24VMABBECT1, 1, new TGeoTranslation(0., 0., z));
z += kRB24VMABBEConTubeL1/2.;
shRB24VMABCTT->DefineSection(5, z, 6.3/2., 6.7/2.);
z += 0.63;
shRB24VMABCTT->DefineSection(6, z, 6.3/2., 6.7/2.);
- TGeoVolume* voRB24VMABCTT = new TGeoVolume("RB24VMABCTT", shRB24VMABCTT, kMedSteel);
+ TGeoVolume* voRB24VMABCTT = new TGeoVolume("RB24VMABCTT", shRB24VMABCTT, kMedSteelH);
voRB24VMABCRB->AddNode(voRB24VMABCTT, 1, new TGeoTranslation(0., 0., - kRB24VMABCRBT1L/2.-1.));
// Pos 3 RF Contact D63 LHCVSR__0057
shRB24VMABCCTFlange->DefineSection(4, z, kRB24VMABCCTFlangeRin, 11.16/2.);
z += 0.25;
shRB24VMABCCTFlange->DefineSection(5, z, kRB24VMABCCTFlangeRin, 11.16/2.);
- TGeoVolume* voRB24VMABCCTFlange = new TGeoVolume("RB24VMABCCTFlange", shRB24VMABCCTFlange, kMedCu);
+ TGeoVolume* voRB24VMABCCTFlange = new TGeoVolume("RB24VMABCCTFlange", shRB24VMABCCTFlange, kMedCuH);
//
// Pos 3.2 RF-Contact LHCVSR__0056
//
z = kRB24VMABCCTL;
shRB24VMABCCT->DefineSection(3, z, kRB24VMABCCTRin, kRB24VMABCCTRin + kRB24VMABCCTd);
- TGeoVolume* voRB24VMABCCT = new TGeoVolume("RB24VMABCCT", shRB24VMABCCT, kMedCu);
+ TGeoVolume* voRB24VMABCCT = new TGeoVolume("RB24VMABCCT", shRB24VMABCCT, kMedCuH);
TGeoVolumeAssembly* voRB24VMABRFCT = new TGeoVolumeAssembly("RB24VMABRFCT");
voRB24VMABRFCT->AddNode(voRB24VMABCCT, 1, gGeoIdentity);
TGeoVolumeAssembly* voRB24 = new TGeoVolumeAssembly("RB24");
// Cu Tube with two simplified flanges
voRB24->AddNode(voRB24CuTubeM, 1, gGeoIdentity);
- voRB24->AddNode(voRB24CuTubeA, 1, gGeoIdentity);
+ if (!fBeamBackground) voRB24->AddNode(voRB24CuTubeA, 1, gGeoIdentity);
z = - kRB24CuTubeL/2 + kRB24CuTubeFL/2.;
voRB24->AddNode(voRB24CuTubeF, 1, new TGeoTranslation(0., 0., z));
z = + kRB24CuTubeL/2 - kRB24CuTubeFL/2.;
// RB24/2
//
// Copper Tube RB24/2
+//
+// This is the part inside the compensator magnet
const Float_t kRB242CuTubeL = 330.0;
TGeoVolume* voRB242CuTubeM = new TGeoVolume("voRB242CuTubeM",
- new TGeoTube(0., kRB24CuTubeRo, kRB242CuTubeL/2.), kMedVac);
- voRB24CuTubeM->SetVisibility(0);
+ new TGeoTube(0., kRB24CuTubeRo, kRB242CuTubeL/2.), kMedVacM);
+ voRB242CuTubeM->SetVisibility(0);
TGeoVolume* voRB242CuTube = new TGeoVolume("voRB242CuTube",
- new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, kRB242CuTubeL/2.), kMedCu);
+ new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, kRB242CuTubeL/2.), kMedCuH);
voRB242CuTubeM->AddNode(voRB242CuTube, 1, gGeoIdentity);
TGeoVolumeAssembly* voRB242 = new TGeoVolumeAssembly("RB242");
- voRB242->AddNode(voRB242CuTube, 1, gGeoIdentity);
+ voRB242->AddNode(voRB242CuTubeM, 1, gGeoIdentity);
z = - kRB242CuTubeL/2 + kRB24CuTubeFL/2.;
voRB242->AddNode(voRB24CuTubeF, 3, new TGeoTranslation(0., 0., z));
z = + kRB242CuTubeL/2 - kRB24CuTubeFL/2.;
const Float_t kRB243CuTubeL = 303.35;
TGeoVolume* voRB243CuTubeM = new TGeoVolume("voRB243CuTubeM",
- new TGeoTube(0., kRB24CuTubeRo, kRB243CuTubeL/2.), kMedVac);
+ new TGeoTube(0., kRB24CuTubeRo, kRB243CuTubeL/2.), kMedVacH);
voRB24CuTubeM->SetVisibility(0);
TGeoVolume* voRB243CuTube = new TGeoVolume("voRB243CuTube",
- new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, kRB243CuTubeL/2.), kMedCu);
+ new TGeoTube(kRB24CuTubeRi, kRB24CuTubeRo, kRB243CuTubeL/2.), kMedCuH);
voRB243CuTubeM->AddNode(voRB243CuTube, 1, gGeoIdentity);
TGeoVolumeAssembly* voRB243 = new TGeoVolumeAssembly("RB243");
TGeoVolumeAssembly* voRB243A = new TGeoVolumeAssembly("RB243A");
- voRB243A->AddNode(voRB243CuTube, 1, gGeoIdentity);
+ voRB243A->AddNode(voRB243CuTubeM, 1, gGeoIdentity);
z = - kRB243CuTubeL/2 + kRB24CuTubeFL/2.;
voRB243A->AddNode(voRB24CuTubeF, 5, new TGeoTranslation(0., 0., z));
z = + kRB243CuTubeL/2 - kRB24CuTubeFL/2.;
- voRB243A->AddNode(voRB24CuTubeF, 6, new TGeoTranslation(0., 0., z));
+ voRB243A->AddNode(voRB24CuTubeF, 6, new TGeoTranslation(0., 0., z));
z = + kRB243CuTubeL/2;
voRB243A->AddNode(voRB24B1BellowM, 2, new TGeoTranslation(0., 0., z));
shRB26s12Tube->DefineSection(2, 207.21, 5.84/2., 6.14/2.);
shRB26s12Tube->DefineSection(3, 452.30, 12.00/2., 12.30/2.);
shRB26s12Tube->DefineSection(4, kRB26s12TubeL, 12.00/2., 12.30/2.);
- TGeoVolume* voRB26s12Tube = new TGeoVolume("RB26s12Tube", shRB26s12Tube, kMedSteel);
+ TGeoVolume* voRB26s12Tube = new TGeoVolume("RB26s12Tube", shRB26s12Tube, kMedSteelH);
// Add the insulation layer
- TGeoVolume* voRB26s12TubeIns = new TGeoVolume("RB26s12TubeIns", MakeInsulationFromTemplate(shRB26s12Tube), kMedInsu);
+ TGeoVolume* voRB26s12TubeIns = new TGeoVolume("RB26s12TubeIns", MakeInsulationFromTemplate(shRB26s12Tube), kMedInsuH);
voRB26s12Tube->AddNode(voRB26s12TubeIns, 1, gGeoIdentity);
- TGeoVolume* voRB26s12TubeM = new TGeoVolume("RB26s12TubeM", MakeMotherFromTemplate(shRB26s12Tube), kMedVac);
+ TGeoVolume* voRB26s12TubeM = new TGeoVolume("RB26s12TubeM", MakeMotherFromTemplate(shRB26s12Tube), kMedVacH);
voRB26s12TubeM->AddNode(voRB26s12Tube, 1, gGeoIdentity);
const Float_t kRB26s2ConnectionPlieR = 0.21; // Connection plie radius [Pos 1]
// Plie radius
const Float_t kRB26s2PlieR =
- (kRB26s2BellowUndL - 4. * kRB26s2ConnectionPlieR + 2. * kRB26s2PlieThickness +
- (2. * kRB26s2NumberOfPlies - 2.) * kRB26s2PlieThickness) / (4. * kRB26s2NumberOfPlies - 2.);
+ (kRB26s2BellowUndL - 4. * kRB26s2ConnectionPlieR +
+ 2. * kRB26s2NumberOfPlies * kRB26s2PlieThickness) / (4. * kRB26s2NumberOfPlies);
const Float_t kRB26s2CompTubeInnerR = 12.00/2.; // Connection tubes inner radius [Pos 2 + 3]
const Float_t kRB26s2CompTubeOuterR = 12.30/2.; // Connection tubes outer radius [Pos 2 + 3]
const Float_t kRB26s2WeldingTubeLeftL = 9.00/2.; // Left connection tube half length [Pos 2]
shRB26s2Compensator->DefineSection( 3, kRB26s2ProtZ + 2. * kRB26s2ProtL, 0., kRB26s2ProtOuterR);
shRB26s2Compensator->DefineSection( 4, kRB26s2ProtZ + 2. * kRB26s2ProtL, 0., kRB26s2CompTubeOuterR);
shRB26s2Compensator->DefineSection( 5, kRB26s2CompL , 0., kRB26s2CompTubeOuterR);
- TGeoVolume* voRB26s2Compensator = new TGeoVolume("RB26s2Compensator", shRB26s2Compensator, kMedVac);
+ TGeoVolume* voRB26s2Compensator = new TGeoVolume("RB26s2Compensator", shRB26s2Compensator, kMedVacH);
//
// [Pos 1] Bellow
//
//
- TGeoVolume* voRB26s2Bellow = new TGeoVolume("RB26s2Bellow", new TGeoTube(kRB26s2BellowRi, kRB26s2BellowRo, kRB26s2BellowUndL/2.), kMedVac);
+ TGeoVolume* voRB26s2Bellow = new TGeoVolume("RB26s2Bellow", new TGeoTube(kRB26s2BellowRi, kRB26s2BellowRo, kRB26s2BellowUndL/2.), kMedVacH);
//
// Upper part of the undulation
//
shRB26s2PlieTubeU->SetName("RB26s2TubeU");
TGeoCompositeShape* shRB26s2UpperPlie = new TGeoCompositeShape("RB26s2UpperPlie", "RB26s2TorusU*RB26s2TubeU");
- TGeoVolume* voRB26s2WiggleU = new TGeoVolume("RB26s2UpperPlie", shRB26s2UpperPlie, kMedSteel);
+ TGeoVolume* voRB26s2WiggleU = new TGeoVolume("RB26s2UpperPlie", shRB26s2UpperPlie, kMedSteelH);
//
// Lower part of the undulation
TGeoTorus* shRB26s2PlieTorusL = new TGeoTorus(kRB26s2BellowRi + kRB26s2PlieR, kRB26s2PlieR - kRB26s2PlieThickness, kRB26s2PlieR);
shRB26s2PlieTubeL->SetName("RB26s2TubeL");
TGeoCompositeShape* shRB26s2LowerPlie = new TGeoCompositeShape("RB26s2LowerPlie", "RB26s2TorusL*RB26s2TubeL");
- TGeoVolume* voRB26s2WiggleL = new TGeoVolume("RB26s2LowerPlie", shRB26s2LowerPlie, kMedSteel);
+ TGeoVolume* voRB26s2WiggleL = new TGeoVolume("RB26s2LowerPlie", shRB26s2LowerPlie, kMedSteelH);
//
// Connection between upper and lower part of undulation
TGeoVolume* voRB26s2WiggleC1 = new TGeoVolume("RB26s2PlieConn1",
new TGeoTube(kRB26s2BellowRi + kRB26s2PlieR,
- kRB26s2BellowRo - kRB26s2PlieR, kRB26s2PlieThickness / 2.), kMedSteel);
+ kRB26s2BellowRo - kRB26s2PlieR, kRB26s2PlieThickness / 2.), kMedSteelH);
//
// One wiggle
TGeoVolumeAssembly* voRB26s2Wiggle = new TGeoVolumeAssembly("RB26s2Wiggle");
// [Pos 2] Left Welding Tube
//
TGeoTube* shRB26s2CompLeftTube = new TGeoTube(kRB26s2CompTubeInnerR, kRB26s2CompTubeOuterR, kRB26s2WeldingTubeLeftL);
- TGeoVolume* voRB26s2CompLeftTube = new TGeoVolume("RB26s2CompLeftTube", shRB26s2CompLeftTube, kMedSteel);
+ TGeoVolume* voRB26s2CompLeftTube = new TGeoVolume("RB26s2CompLeftTube", shRB26s2CompLeftTube, kMedSteelH);
voRB26s2Compensator->AddNode(voRB26s2CompLeftTube, 1, new TGeoTranslation(0., 0., kRB26s2WeldingTubeLeftL));
//
// [Pos 3] Right Welding Tube
//
TGeoTube* shRB26s2CompRightTube = new TGeoTube(kRB26s2CompTubeInnerR, kRB26s2CompTubeOuterR, kRB26s2WeldingTubeRightL);
- TGeoVolume* voRB26s2CompRightTube = new TGeoVolume("RB26s2CompRightTube", shRB26s2CompRightTube, kMedSteel);
+ TGeoVolume* voRB26s2CompRightTube = new TGeoVolume("RB26s2CompRightTube", shRB26s2CompRightTube, kMedSteelH);
voRB26s2Compensator->AddNode(voRB26s2CompRightTube, 1, new TGeoTranslation(0., 0., kRB26s2CompL - kRB26s2WeldingTubeRightL));
//
// [Pos 4] Ring
//
TGeoTube* shRB26s2CompRing = new TGeoTube(kRB26s2CompTubeOuterR, kRB26s2RingOuterR, kRB26s2RingL);
- TGeoVolume* voRB26s2CompRing = new TGeoVolume("RB26s2CompRing", shRB26s2CompRing, kMedSteel);
+ TGeoVolume* voRB26s2CompRing = new TGeoVolume("RB26s2CompRing", shRB26s2CompRing, kMedSteelH);
voRB26s2Compensator->AddNode(voRB26s2CompRing, 1, new TGeoTranslation(0., 0., kRB26s2RingZ + kRB26s2RingL));
//
// [Pos 5] Outer Protecting Tube
//
TGeoTube* shRB26s2CompProtTube = new TGeoTube(kRB26s2RingOuterR, kRB26s2ProtOuterR, kRB26s2ProtL);
- TGeoVolume* voRB26s2CompProtTube = new TGeoVolume("RB26s2CompProtTube", shRB26s2CompProtTube, kMedSteel);
+ TGeoVolume* voRB26s2CompProtTube = new TGeoVolume("RB26s2CompProtTube", shRB26s2CompProtTube, kMedSteelH);
voRB26s2Compensator->AddNode(voRB26s2CompProtTube, 1, new TGeoTranslation(0., 0., kRB26s2ProtZ + kRB26s2ProtL));
///////////////////////////////////
z0 = kRB26s1RFlangeCrL;
shRB26s1RFlangeCr->DefineSection(3, z0, kRB26s1RFlangeCrRi2, kRB26s1RFlangeCrRo);
TGeoVolume* voRB26s1RFlangeCr =
- new TGeoVolume("RB26s1RFlangeCr", shRB26s1RFlangeCr, kMedSteel);
+ new TGeoVolume("RB26s1RFlangeCr", shRB26s1RFlangeCr, kMedSteelH);
// Pos 2 Insert LHCVFX__0015
const Float_t kRB26s1RFlangeIsL = 4.88 ; // Lenth of the insert
z0 = kRB26s1RFlangeIsL;
shRB26s1RFlangeIs->DefineSection(3, z0, kRB26s1RFlangeTubeRi, kRB26s1RFlangeTubeRo);
TGeoVolume* voRB26s1RFlangeIs =
- new TGeoVolume("RB26s1RFlangeIs", shRB26s1RFlangeIs, kMedSteel);
+ new TGeoVolume("RB26s1RFlangeIs", shRB26s1RFlangeIs, kMedSteelH);
// 4.88 + 3.7 = 8.58 (8.7 to avoid overlap)
// Pos 3 Fixed Point Section LHCVC2A_0021
const Float_t kRB26s1RFlangeFpL = 5.88 ; // Length of the fixed point section (0.08 cm added for welding)
shRB26s1RFlangeFp->DefineSection(4, z0, kRB26s1RFlangeTubeRi, kRB26s1RFlangeTubeRo);
z0 = kRB26s1RFlangeFpL;
shRB26s1RFlangeFp->DefineSection(5, z0, kRB26s1RFlangeTubeRi, kRB26s1RFlangeTubeRo);
- TGeoVolume* voRB26s1RFlangeFp = new TGeoVolume("RB26s1RFlangeFp", shRB26s1RFlangeFp, kMedSteel);
+ TGeoVolume* voRB26s1RFlangeFp = new TGeoVolume("RB26s1RFlangeFp", shRB26s1RFlangeFp, kMedSteelH);
// Put everything in a mother volume
TGeoPcon* shRB26s1RFlange = new TGeoPcon(0., 360., 8);
shRB26s1RFlange->DefineSection(6, z0, 0., kRB26s1RFlangeTubeRo);
z0 = kRB26s1RFlangeIsL + kRB26s1RFlangeFpL;
shRB26s1RFlange->DefineSection(7, z0, 0., kRB26s1RFlangeTubeRo);
- TGeoVolume* voRB26s1RFlange = new TGeoVolume("RB26s1RFlange", shRB26s1RFlange, kMedVac);
+ TGeoVolume* voRB26s1RFlange = new TGeoVolume("RB26s1RFlange", shRB26s1RFlange, kMedVacH);
voRB26s1RFlange->AddNode(voRB26s1RFlangeIs, 1, gGeoIdentity);
voRB26s1RFlange->AddNode(voRB26s1RFlangeCr, 1, gGeoIdentity);
shRB26s2FFlange->DefineSection(4, z0, kRB26s2FFlangeRi3, kRB26s2FFlangeRo);
z0 += kRB26s2FFlangeD3;
shRB26s2FFlange->DefineSection(5, z0, kRB26s2FFlangeRi3, kRB26s2FFlangeRo);
- TGeoVolume* voRB26s2FFlange = new TGeoVolume("RB26s2FFlange", shRB26s2FFlange, kMedSteel);
+ TGeoVolume* voRB26s2FFlange = new TGeoVolume("RB26s2FFlange", shRB26s2FFlange, kMedSteelH);
- TGeoVolume* voRB26s2FFlangeM = new TGeoVolume("RB26s2FFlangeM", MakeMotherFromTemplate(shRB26s2FFlange, 2, 5), kMedVac);
+ TGeoVolume* voRB26s2FFlangeM = new TGeoVolume("RB26s2FFlangeM", MakeMotherFromTemplate(shRB26s2FFlange, 2, 5), kMedVacH);
voRB26s2FFlangeM->AddNode(voRB26s2FFlange, 1, gGeoIdentity);
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);
+ TGeoVolume* voRB26s3Tube = new TGeoVolume("RB26s3Tube", shRB26s3Tube, kMedSteelH);
// Add the insulation layer
- TGeoVolume* voRB26s3TubeIns = new TGeoVolume("RB26s3TubeIns", MakeInsulationFromTemplate(shRB26s3Tube), kMedInsu);
+ TGeoVolume* voRB26s3TubeIns = new TGeoVolume("RB26s3TubeIns", MakeInsulationFromTemplate(shRB26s3Tube), kMedInsuH);
voRB26s3Tube->AddNode(voRB26s3TubeIns, 1, gGeoIdentity);
- TGeoVolume* voRB26s3TubeM = new TGeoVolume("RB26s3TubeM", MakeMotherFromTemplate(shRB26s3Tube), kMedVac);
+ TGeoVolume* voRB26s3TubeM = new TGeoVolume("RB26s3TubeM", MakeMotherFromTemplate(shRB26s3Tube), kMedVacH);
voRB26s3TubeM->AddNode(voRB26s3Tube, 1, gGeoIdentity);
shRB26s3FixedPoint->DefineSection(6, z0, kRB26s3FixedPointRi, kRB26s3FixedPointRo2);
z0 = kRB26s3FixedPointL;
shRB26s3FixedPoint->DefineSection(7, z0, kRB26s3FixedPointRi, kRB26s3FixedPointRo2);
- TGeoVolume* voRB26s3FixedPoint = new TGeoVolume("RB26s3FixedPoint", shRB26s3FixedPoint, kMedSteel);
+ TGeoVolume* voRB26s3FixedPoint = new TGeoVolume("RB26s3FixedPoint", shRB26s3FixedPoint, kMedSteelH);
- TGeoVolume* voRB26s3FixedPointM = new TGeoVolume("RB26s3FixedPointM", MakeMotherFromTemplate(shRB26s3FixedPoint), kMedVac);
+ TGeoVolume* voRB26s3FixedPointM = new TGeoVolume("RB26s3FixedPointM", MakeMotherFromTemplate(shRB26s3FixedPoint), kMedVacH);
voRB26s3FixedPointM->AddNode(voRB26s3FixedPoint, 1, gGeoIdentity);
///////////////////////////////////
shRB26s3SFlange->DefineSection(4, z0, kRB26s3SFlangeRi3, kRB26s3SFlangeRo);
z0 += kRB26s3SFlangeD3;
shRB26s3SFlange->DefineSection(5, z0, kRB26s3SFlangeRi3, kRB26s3SFlangeRo);
- TGeoVolume* voRB26s3SFlange = new TGeoVolume("RB26s3SFlange", shRB26s3SFlange, kMedSteel);
+ TGeoVolume* voRB26s3SFlange = new TGeoVolume("RB26s3SFlange", shRB26s3SFlange, kMedSteelH);
- TGeoVolume* voRB26s3SFlangeM = new TGeoVolume("RB26s3SFlangeM", MakeMotherFromTemplate(shRB26s3SFlange, 0, 3), kMedVac);
+ TGeoVolume* voRB26s3SFlangeM = new TGeoVolume("RB26s3SFlangeM", MakeMotherFromTemplate(shRB26s3SFlange, 0, 3), kMedVacH);
voRB26s3SFlangeM->AddNode(voRB26s3SFlange, 1, gGeoIdentity);
///////////////////////////////////
shRB26s3FFlange->DefineSection(4, z0, kRB26s3FFlangeRi3, kRB26s3FFlangeRo);
z0 += kRB26s3FFlangeD3;
shRB26s3FFlange->DefineSection(5, z0, kRB26s3FFlangeRi3, kRB26s3FFlangeRo);
- TGeoVolume* voRB26s3FFlange = new TGeoVolume("RB26s3FFlange", shRB26s3FFlange, kMedSteel);
+ TGeoVolume* voRB26s3FFlange = new TGeoVolume("RB26s3FFlange", shRB26s3FFlange, kMedSteelH);
- TGeoVolume* voRB26s3FFlangeM = new TGeoVolume("RB26s3FFlangeM", MakeMotherFromTemplate(shRB26s3FFlange, 2, 5), kMedVac);
+ TGeoVolume* voRB26s3FFlangeM = new TGeoVolume("RB26s3FFlangeM", MakeMotherFromTemplate(shRB26s3FFlange, 2, 5), kMedVacH);
voRB26s3FFlangeM->AddNode(voRB26s3FFlange, 1, gGeoIdentity);
const Float_t kRB26s3ConnectionPlieR = 0.21; // Connection plie radius [Pos 1]
// Plie radius
const Float_t kRB26s3PlieR =
- (kRB26s3BellowUndL - 4. * kRB26s3ConnectionPlieR + 2. * kRB26s3PlieThickness +
- (2. * kRB26s3NumberOfPlies - 2.) * kRB26s3PlieThickness) / (4. * kRB26s3NumberOfPlies - 2.);
+ (kRB26s3BellowUndL - 4. * kRB26s3ConnectionPlieR +
+ 2. * kRB26s3NumberOfPlies * kRB26s3PlieThickness) / (4. * kRB26s3NumberOfPlies);
//
// The welding tubes have 3 sections with different radii and 2 transition regions.
shRB26s3Compensator->DefineSection( 4, kRB26s3ProtZ + 2. * kRB26s3ProtL, 0., kRB26s3CompTubeOuterR1);
shRB26s3Compensator->DefineSection( 5, kRB26s3CompL , 0., kRB26s3CompTubeOuterR1);
TGeoVolume* voRB26s3Compensator =
- new TGeoVolume("RB26s3Compensator", shRB26s3Compensator, kMedVac);
+ new TGeoVolume("RB26s3Compensator", shRB26s3Compensator, kMedVacH);
//
// [Pos 1] Bellow
//
//
TGeoVolume* voRB26s3Bellow = new TGeoVolume("RB26s3Bellow",
- new TGeoTube(kRB26s3BellowRi, kRB26s3BellowRo, kRB26s3BellowUndL/2.), kMedVac);
+ new TGeoTube(kRB26s3BellowRi, kRB26s3BellowRo, kRB26s3BellowUndL/2.), kMedVacH);
//
// Upper part of the undulation
//
shRB26s3PlieTubeU->SetName("RB26s3TubeU");
TGeoCompositeShape* shRB26s3UpperPlie = new TGeoCompositeShape("RB26s3UpperPlie", "RB26s3TorusU*RB26s3TubeU");
- TGeoVolume* voRB26s3WiggleU = new TGeoVolume("RB26s3UpperPlie", shRB26s3UpperPlie, kMedSteel);
+ TGeoVolume* voRB26s3WiggleU = new TGeoVolume("RB26s3UpperPlie", shRB26s3UpperPlie, kMedSteelH);
//
// Lower part of the undulation
TGeoTorus* shRB26s3PlieTorusL = new TGeoTorus(kRB26s3BellowRi + kRB26s3PlieR, kRB26s3PlieR - kRB26s3PlieThickness, kRB26s3PlieR);
shRB26s3PlieTubeL->SetName("RB26s3TubeL");
TGeoCompositeShape* shRB26s3LowerPlie = new TGeoCompositeShape("RB26s3LowerPlie", "RB26s3TorusL*RB26s3TubeL");
- TGeoVolume* voRB26s3WiggleL = new TGeoVolume("RB26s3LowerPlie", shRB26s3LowerPlie, kMedSteel);
+ TGeoVolume* voRB26s3WiggleL = new TGeoVolume("RB26s3LowerPlie", shRB26s3LowerPlie, kMedSteelH);
//
// Connection between upper and lower part of undulation
TGeoVolume* voRB26s3WiggleC1 = new TGeoVolume("RB26s3PlieConn1",
new TGeoTube(kRB26s3BellowRi + kRB26s3PlieR,
- kRB26s3BellowRo - kRB26s3PlieR, kRB26s3PlieThickness / 2.), kMedSteel);
+ kRB26s3BellowRo - kRB26s3PlieR, kRB26s3PlieThickness / 2.), kMedSteelH);
//
// One wiggle
TGeoVolumeAssembly* voRB26s3Wiggle = new TGeoVolumeAssembly("RB26s3Wiggle");
z0 += kRB26s3PlieR - kRB26s3PlieThickness;
voRB26s3Wiggle->AddNode(voRB26s3WiggleL, 1 , new TGeoTranslation(0., 0., z0));
// Positioning of the volumes
- z0 = - kRB26s3BellowUndL/2.+ kRB26s3ConnectionPlieR;
+ z0 = - kRB26s3BellowUndL/2.+ kRB26s3PlieR;
voRB26s3Bellow->AddNode(voRB26s3WiggleL, 1, new TGeoTranslation(0., 0., z0));
- z0 += kRB26s3ConnectionPlieR;
+ z0 += kRB26s3PlieR;
zsh = 4. * kRB26s3PlieR - 2. * kRB26s3PlieThickness;
for (Int_t iw = 0; iw < kRB26s3NumberOfPlies; iw++) {
Float_t zpos = z0 + iw * zsh;
//
TGeoTube* shRB26s3CompProtTube = new TGeoTube(kRB26s3RingOuterR, kRB26s3ProtOuterR, kRB26s3ProtL);
TGeoVolume* voRB26s3CompProtTube =
- new TGeoVolume("RB26s3CompProtTube", shRB26s3CompProtTube, kMedSteel);
+ new TGeoVolume("RB26s3CompProtTube", shRB26s3CompProtTube, kMedSteelH);
voRB26s3Compensator->AddNode(voRB26s3CompProtTube, 1, new TGeoTranslation(0., 0., kRB26s3ProtZ + kRB26s3ProtL));
shRB26s3CompRightTube->DefineSection(4, z0, kRB26s3CompTubeInnerR1, kRB26s3CompTubeOuterR1);
TGeoVolume* voRB26s3CompRightTube =
- new TGeoVolume("RB26s3CompRightTube", shRB26s3CompRightTube, kMedSteel);
+ new TGeoVolume("RB26s3CompRightTube", shRB26s3CompRightTube, kMedSteelH);
voRB26s3Compensator->AddNode(voRB26s3CompRightTube, 1, new TGeoTranslation(0., 0., kRB26s3CompL - z0));
//
shRB26s3CompLeftTube->DefineSection(4, z0, kRB26s3CompTubeInnerR3, kRB26s3CompTubeOuterR3);
TGeoVolume* voRB26s3CompLeftTube =
- new TGeoVolume("RB26s3CompLeftTube", shRB26s3CompLeftTube, kMedSteel);
+ new TGeoVolume("RB26s3CompLeftTube", shRB26s3CompLeftTube, kMedSteelH);
voRB26s3Compensator->AddNode(voRB26s3CompLeftTube, 1, gGeoIdentity);
//
// [Pos 5] Ring
//
TGeoTube* shRB26s3CompRing = new TGeoTube(kRB26s3CompTubeOuterR2, kRB26s3RingOuterR, kRB26s3RingL);
TGeoVolume* voRB26s3CompRing =
- new TGeoVolume("RB26s3CompRing", shRB26s3CompRing, kMedSteel);
+ new TGeoVolume("RB26s3CompRing", shRB26s3CompRing, kMedSteelH);
voRB26s3Compensator->AddNode(voRB26s3CompRing, 1, new TGeoTranslation(0., 0., kRB26s3RingZ + kRB26s3RingL));
shRB26s45Tube->DefineSection(10, kRB26s45TubeL, 10.00/2., 10.30/2.);
TGeoVolume* voRB26s45Tube =
- new TGeoVolume("RB26s45Tube", shRB26s45Tube, kMedSteel);
+ new TGeoVolume("RB26s45Tube", shRB26s45Tube, kMedSteelH);
- TGeoVolume* voRB26s45TubeM = new TGeoVolume("RB26s45TubeM", MakeMotherFromTemplate(shRB26s45Tube), kMedVac);
+ TGeoVolume* voRB26s45TubeM = new TGeoVolume("RB26s45TubeM", MakeMotherFromTemplate(shRB26s45Tube), kMedVacH);
voRB26s45TubeM->AddNode(voRB26s45Tube, 1, gGeoIdentity);
const Float_t kRB26s5ConnectionR = 11.2/2.; // Bellow connection radius [Pos 1]
// Plie radius
const Float_t kRB26s5PlieR =
- (kRB26s5BellowUndL - 4. * kRB26s5ConnectionPlieR + 2. * kRB26s5PlieThickness +
- (2. * kRB26s5NumberOfPlies - 2.) * kRB26s5PlieThickness) / (4. * kRB26s5NumberOfPlies - 2.);
+ (kRB26s5BellowUndL - 4. * kRB26s5ConnectionPlieR +
+ 2. * kRB26s5NumberOfPlies * kRB26s5PlieThickness) / (4. * kRB26s5NumberOfPlies);
const Float_t kRB26s5CompTubeInnerR = 10.00/2.; // Connection tubes inner radius [Pos 2 + 3]
const Float_t kRB26s5CompTubeOuterR = 10.30/2.; // Connection tubes outer radius [Pos 2 + 3]
const Float_t kRB26s5WeldingTubeLeftL = 3.70/2.; // Left connection tube half length [Pos 2]
shRB26s5Compensator->DefineSection( 5, kRB26s5CompL - 8., 0., kRB26s5DetailZR);
shRB26s5Compensator->DefineSection( 6, kRB26s5CompL - 8., 0., kRB26s5CompTubeOuterR);
shRB26s5Compensator->DefineSection( 7, kRB26s5CompL, 0., kRB26s5CompTubeOuterR);
- TGeoVolume* voRB26s5Compensator = new TGeoVolume("RB26s5Compensator", shRB26s5Compensator, kMedVac);
+ TGeoVolume* voRB26s5Compensator = new TGeoVolume("RB26s5Compensator", shRB26s5Compensator, kMedVacH);
//
// [Pos 1] Bellow
//
//
TGeoVolume* voRB26s5Bellow = new TGeoVolume("RB26s5Bellow",
- new TGeoTube(kRB26s5BellowRi, kRB26s5BellowRo, kRB26s5BellowUndL/2.), kMedVac);
+ new TGeoTube(kRB26s5BellowRi, kRB26s5BellowRo, kRB26s5BellowUndL/2.), kMedVacH);
//
// Upper part of the undulation
//
shRB26s5PlieTubeU->SetName("RB26s5TubeU");
TGeoCompositeShape* shRB26s5UpperPlie = new TGeoCompositeShape("RB26s5UpperPlie", "RB26s5TorusU*RB26s5TubeU");
- TGeoVolume* voRB26s5WiggleU = new TGeoVolume("RB26s5UpperPlie", shRB26s5UpperPlie, kMedSteel);
+ TGeoVolume* voRB26s5WiggleU = new TGeoVolume("RB26s5UpperPlie", shRB26s5UpperPlie, kMedSteelH);
//
// Lower part of the undulation
TGeoTorus* shRB26s5PlieTorusL = new TGeoTorus(kRB26s5BellowRi + kRB26s5PlieR, kRB26s5PlieR - kRB26s5PlieThickness, kRB26s5PlieR);
shRB26s5PlieTubeL->SetName("RB26s5TubeL");
TGeoCompositeShape* shRB26s5LowerPlie = new TGeoCompositeShape("RB26s5LowerPlie", "RB26s5TorusL*RB26s5TubeL");
- TGeoVolume* voRB26s5WiggleL = new TGeoVolume("RB26s5LowerPlie", shRB26s5LowerPlie, kMedSteel);
+ TGeoVolume* voRB26s5WiggleL = new TGeoVolume("RB26s5LowerPlie", shRB26s5LowerPlie, kMedSteelH);
//
// Connection between upper and lower part of undulation
TGeoVolume* voRB26s5WiggleC1 = new TGeoVolume("RB26s5PlieConn1",
new TGeoTube(kRB26s5BellowRi + kRB26s5PlieR,
- kRB26s5BellowRo - kRB26s5PlieR, kRB26s5PlieThickness / 2.), kMedSteel);
+ kRB26s5BellowRo - kRB26s5PlieR, kRB26s5PlieThickness / 2.), kMedSteelH);
//
// One wiggle
TGeoVolumeAssembly* voRB26s5Wiggle = new TGeoVolumeAssembly("RB26s5Wiggle");
shRB26s5CompLeftTube->DefineSection(1, z0, kRB26s5CompTubeInnerR, kRB26s5CompTubeOuterR);
z0 += ( kRB26s5ConnectionR - kRB26s5CompTubeOuterR);
shRB26s5CompLeftTube->DefineSection(2, z0, kRB26s5ConnectionR - 0.15, kRB26s5ConnectionR);
- TGeoVolume* voRB26s5CompLeftTube = new TGeoVolume("RB26s5CompLeftTube", shRB26s5CompLeftTube, kMedSteel);
+ TGeoVolume* voRB26s5CompLeftTube = new TGeoVolume("RB26s5CompLeftTube", shRB26s5CompLeftTube, kMedSteelH);
voRB26s5Compensator->AddNode(voRB26s5CompLeftTube, 1, gGeoIdentity);
//
// [Pos 3] Right Welding Tube
shRB26s5CompRightTube->DefineSection(10, 2. * kRB26s5WeldingTubeRightL, kRB26s5CompTubeInnerR, kRB26s5CompTubeOuterR);
TGeoVolume* voRB26s5CompRightTube =
- new TGeoVolume("RB26s5CompRightTube", shRB26s5CompRightTube, kMedSteel);
+ new TGeoVolume("RB26s5CompRightTube", shRB26s5CompRightTube, kMedSteelH);
voRB26s5Compensator->AddNode(voRB26s5CompRightTube, 1,
new TGeoTranslation(0., 0., kRB26s5CompL - 2. * kRB26s5WeldingTubeRightL));
//
//
TGeoTube* shRB26s5CompRing = new TGeoTube(kRB26s5RingInnerR, kRB26s5RingOuterR, kRB26s5RingL);
TGeoVolume* voRB26s5CompRing =
- new TGeoVolume("RB26s5CompRing", shRB26s5CompRing, kMedSteel);
+ new TGeoVolume("RB26s5CompRing", shRB26s5CompRing, kMedSteelH);
voRB26s5Compensator->AddNode(voRB26s5CompRing, 1, new TGeoTranslation(0., 0., kRB26s5RingZ + kRB26s5RingL));
//
//
TGeoTube* shRB26s5CompProtTube = new TGeoTube(kRB26s5RingOuterR, kRB26s5ProtOuterR, kRB26s5ProtL);
TGeoVolume* voRB26s5CompProtTube =
- new TGeoVolume("RB26s5CompProtTube", shRB26s5CompProtTube, kMedSteel);
+ new TGeoVolume("RB26s5CompProtTube", shRB26s5CompProtTube, kMedSteelH);
voRB26s5Compensator->AddNode(voRB26s5CompProtTube, 1, new TGeoTranslation(0., 0., kRB26s5ProtZ + kRB26s5ProtL));
///////////////////////////////////////
shRB26s4FixedPoint->DefineSection(4, z0, kRB26s4TubeRi, kRB26s4TubeRo);
z0 = kRB26s4FixedPointL;
shRB26s4FixedPoint->DefineSection(5, z0, kRB26s4TubeRi, kRB26s4TubeRo);
- TGeoVolume* voRB26s4FixedPoint = new TGeoVolume("RB26s4FixedPoint", shRB26s4FixedPoint, kMedSteel);
+ TGeoVolume* voRB26s4FixedPoint = new TGeoVolume("RB26s4FixedPoint", shRB26s4FixedPoint, kMedSteelH);
- TGeoVolume* voRB26s4FixedPointM = new TGeoVolume("RB26s4FixedPointM", MakeMotherFromTemplate(shRB26s4FixedPoint), kMedVac);
+ TGeoVolume* voRB26s4FixedPointM = new TGeoVolume("RB26s4FixedPointM", MakeMotherFromTemplate(shRB26s4FixedPoint), kMedVacH);
voRB26s4FixedPointM->AddNode(voRB26s4FixedPoint, 1, gGeoIdentity);
shRB26s4SFlange->DefineSection(4, z0, kRB26s4SFlangeRi3, kRB26s4SFlangeRo);
z0 += kRB26s4SFlangeD3;
shRB26s4SFlange->DefineSection(5, z0, kRB26s4SFlangeRi3, kRB26s4SFlangeRo);
- TGeoVolume* voRB26s4SFlange = new TGeoVolume("RB26s4SFlange", shRB26s4SFlange, kMedSteel);
+ TGeoVolume* voRB26s4SFlange = new TGeoVolume("RB26s4SFlange", shRB26s4SFlange, kMedSteelH);
- TGeoVolume* voRB26s4SFlangeM = new TGeoVolume("RB26s4SFlangeM", MakeMotherFromTemplate(shRB26s4SFlange, 0, 3), kMedVac);
+ TGeoVolume* voRB26s4SFlangeM = new TGeoVolume("RB26s4SFlangeM", MakeMotherFromTemplate(shRB26s4SFlange, 0, 3), kMedVacH);
voRB26s4SFlangeM->AddNode(voRB26s4SFlange, 1, gGeoIdentity);
///////////////////////////////////////
shRB26s5RFlange->DefineSection(6, z0, kRB26s5RFlangeRi1, kRB26s5RFlangeRo);
z0 += kRB26s5RFlangeD1;
shRB26s5RFlange->DefineSection(7, z0, kRB26s5RFlangeRi1, kRB26s5RFlangeRo);
- TGeoVolume* voRB26s5RFlange = new TGeoVolume("RB26s5RFlange", shRB26s5RFlange, kMedSteel);
+ TGeoVolume* voRB26s5RFlange = new TGeoVolume("RB26s5RFlange", shRB26s5RFlange, kMedSteelH);
- TGeoVolume* voRB26s5RFlangeM = new TGeoVolume("RB26s5RFlangeM", MakeMotherFromTemplate(shRB26s5RFlange, 4, 7), kMedVac);
+ TGeoVolume* voRB26s5RFlangeM = new TGeoVolume("RB26s5RFlangeM", MakeMotherFromTemplate(shRB26s5RFlange, 4, 7), kMedVacH);
voRB26s5RFlangeM->AddNode(voRB26s5RFlange, 1, gGeoIdentity);
//
//
AliDebugClass(1,"Create PIPEv3 materials");
- Int_t isxfld = gAlice->Field()->Integ();
- Float_t sxmgmx = gAlice->Field()->Max();
+ Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
+ Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
// Steel (Inox)
Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 };
Float_t zsteel[4] = { 26.,24.,28.,14. };
Float_t zAir[4]={6.,7.,8.,18.};
Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
Float_t dAir = 1.20479E-3;
- Float_t dAir1 = 1.20479E-10;
+ Float_t dAir1 = 1.20479E-11;
//
// Insulation powder
// Si O Ti Al
//
//
// Berillium
- AliMaterial(5, "BERILLIUM$", 9.01, 4., 1.848, 35.3, 36.7);
+ AliMaterial(12, "BERYLLIUM1 ", 9.01, 4., 1.848, 35.3, 36.7);
+ AliMaterial(32, "BERYLLIUM2 ", 9.01, 4., 1.848, 35.3, 36.7);
//
// Carbon
- AliMaterial(6, "CARBON$ ", 12.01, 6., 2.265, 18.8, 49.9);
+ AliMaterial(13, "CARBON1 ", 12.01, 6., 2.265, 18.8, 49.9);
+ AliMaterial(33, "CARBON2 ", 12.01, 6., 2.265, 18.8, 49.9);
//
// Aluminum
- AliMaterial(9, "ALUMINIUM$", 26.98, 13., 2.7, 8.9, 37.2);
+ AliMaterial(11, "ALUMINIUM1", 26.98, 13., 2.7, 8.9, 37.2);
+ AliMaterial(31, "ALUMINIUM2", 26.98, 13., 2.7, 8.9, 37.2);
//
// Copper
- AliMaterial(10, "COPPER", 63.55, 29, 8.96, 1.43, 85.6/8.96);
+ AliMaterial(10, "COPPER1 ", 63.55, 29, 8.96, 1.43, 85.6/8.96);
+ AliMaterial(30, "COPPER2 ", 63.55, 29, 8.96, 1.43, 85.6/8.96);
//
// Air
- AliMixture(15, "AIR$ ", aAir, zAir, dAir, 4, wAir);
- AliMixture(35, "AIR_HIGH$ ", aAir, zAir, dAir, 4, wAir);
+ AliMixture(15, "AIR1 ", aAir, zAir, dAir, 4, wAir);
+ AliMixture(35, "AIR_HIGH ", aAir, zAir, dAir, 4, wAir);
+ AliMixture(55, "AIR2 ", aAir, zAir, dAir, 4, wAir);
//
// Vacuum
- AliMixture(16, "VACUUM$ ", aAir, zAir, dAir1, 4, wAir);
+ AliMixture(16, "VACUUM1 " , aAir, zAir, dAir1, 4, wAir);
+ AliMixture(17, "VACUUMM ", aAir, zAir, dAir1, 4, wAir);
+ AliMixture(36, "VACUUM2 " , aAir, zAir, dAir1, 4, wAir);
//
// stainless Steel
- AliMixture(19, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
+ AliMixture(19, "STAINLESS STEEL1", asteel, zsteel, 7.88, 4, wsteel);
+ AliMixture(39, "STAINLESS STEEL2", asteel, zsteel, 7.88, 4, wsteel);
//
// reduced density steel to approximate pump getter material
- AliMixture(20, "GETTER$", asteel, zsteel, 1.00, 4, wsteel);
+ AliMixture(20, "GETTER1", asteel, zsteel, 1.00, 4, wsteel);
+ AliMixture(40, "GETTER2", asteel, zsteel, 1.00, 4, wsteel);
// Al-Be alloy
//
- AliMixture(21, "AlBe$", aAlBe, zAlBe, 2.07, 2, wAlBe);
+ AliMixture(21, "AlBe1", aAlBe, zAlBe, 2.07, 2, wAlBe);
+ AliMixture(41, "AlBe2", aAlBe, zAlBe, 2.07, 2, wAlBe);
// Polyamid
//
- AliMixture(22, "PA$", aPA, zPA, 1.14, -4, wPA);
+ AliMixture(22, "PA1", aPA, zPA, 1.14, -4, wPA);
+ AliMixture(42, "PA2", aPA, zPA, 1.14, -4, wPA);
//
// Kapton
- AliMixture(23, "KAPTON", aKapton, zKapton, dKapton, 4, wKapton);
+ AliMixture(23, "KAPTON1", aKapton, zKapton, dKapton, 4, wKapton);
+ AliMixture(43, "KAPTON2", aKapton, zKapton, dKapton, 4, wKapton);
// Anticorodal
- AliMixture(24, "ANTICORODAL", aaco, zaco, 2.66, 3, waco);
+ AliMixture(24, "ANTICORODAL1", aaco, zaco, 2.66, 3, waco);
+ AliMixture(44, "ANTICORODAL2", aaco, zaco, 2.66, 3, waco);
//
// Insulation powder
AliMixture(54, "INSULATION2$", ains, zins, 0.41, 4, wins);
// NEG
- AliMixture(25, "NEG COATING", aNEG, zNEG, dNEG, -3, wNEG);
+ AliMixture(25, "NEG COATING1", aNEG, zNEG, dNEG, -3, wNEG);
+ AliMixture(45, "NEG COATING2", aNEG, zNEG, dNEG, -3, wNEG);
// ****************
//
// Beryllium
- AliMedium(5, "BE", 5, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(12, "BE1", 12, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(32, "BE2", 32, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
// Carbon
- AliMedium(6, "C", 6, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(13, "C1", 13, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(33, "C2", 33, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// Aluminum
- AliMedium(9, "ALU", 9, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(11, "ALU1", 11, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(31, "ALU2", 31, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+
// Copper
- AliMedium(10, "CU", 10, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(10, "CU1", 10, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(30, "CU2", 30, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// Air
- AliMedium(15, "AIR", 15, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
- AliMedium(35, "AIR_HIGH",35, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(15, "AIR1", 15, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(55, "AIR2", 55, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(35, "AIR_HIGH", 35, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// Vacuum
- AliMedium(16, "VACUUM", 16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(16, "VACUUM1", 16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(17, "VACUUMM", 17, 0, isxfld, sxmgmx, 0.1, stemax, deemax, epsil, stmin);
+ AliMedium(36, "VACUUM2", 36, 0, isxfld, sxmgmx, 0.1, stemax, deemax, epsil, stmin);
//
// Steel
- AliMedium(19, "INOX", 19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(19, "INOX1", 19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(39, "INOX2", 39, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// Getter
- AliMedium(20, "GETTER", 20, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(20, "GETTER1", 20, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(40, "GETTER2", 40, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// AlBe - Aloy
- AliMedium(21, "AlBe" , 21, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(21, "AlBe1" , 21, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(41, "AlBe2" , 41, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// Polyamid
- AliMedium(22, "PA" , 22, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(22, "PA1" , 22, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(42, "PA2" , 42, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
// Antocorodal
- AliMedium(24, "ANTICORODAL", 24, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(24, "ANTICORODAL1", 24, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(44, "ANTICORODAL2", 44, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
// Insulation Powder
AliMedium(14, "INS_C0 ", 14, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
AliMedium(34, "INS_C1 ", 34, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
AliMedium(54, "INS_C2 ", 54, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// KAPTON
- AliMedium(23, "KAPTON", 23, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(23, "KAPTON1", 23, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(43, "KAPTON2", 43, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
//
// NEG
- AliMedium(25, "NEG COATING", 25, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(25, "NEG COATING1", 25, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+ AliMedium(45, "NEG COATING2", 45, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
}
-TGeoPcon* AliPIPEv3::MakeMotherFromTemplate(TGeoPcon* shape, Int_t imin, Int_t imax, Float_t r0, Int_t nz)
+TGeoPcon* AliPIPEv3::MakeMotherFromTemplate(const TGeoPcon* shape, Int_t imin, Int_t imax, Float_t r0, Int_t nz)
{
//
// Create a mother shape from a template setting some min radii to 0
// dU Undulation length
// rPlie Plie radius
// dPlie Plie thickness
- const TGeoMedium* kMedVac = gGeoManager->GetMedium("PIPE_VACUUM");
- const TGeoMedium* kMedSteel = gGeoManager->GetMedium("PIPE_INOX");
+ const TGeoMedium* kMedVac = gGeoManager->GetMedium("PIPE_VACUUM2");
+ const TGeoMedium* kMedSteel = gGeoManager->GetMedium("PIPE_INOX2");
char name[64], nameA[64], nameB[64], bools[64];
- sprintf(name, "%sBellowUS", ext);
+ snprintf(name, 64, "%sBellowUS", ext);
TGeoVolume* voBellow = new TGeoVolume(name, new TGeoTube(rMin, rMax, dU/2.), kMedVac);
//
// Upper part of the undulation
//
TGeoTorus* shPlieTorusU = new TGeoTorus(rMax - rPlie, rPlie - dPlie, rPlie);
- sprintf(nameA, "%sTorusU", ext);
+ snprintf(nameA, 64, "%sTorusU", ext);
shPlieTorusU->SetName(nameA);
TGeoTube* shPlieTubeU = new TGeoTube (rMax - rPlie, rMax, rPlie);
- sprintf(nameB, "%sTubeU", ext);
+ snprintf(nameB, 64, "%sTubeU", ext);
shPlieTubeU->SetName(nameB);
- sprintf(name, "%sUpperPlie", ext);
- sprintf(bools, "%s*%s", nameA, nameB);
+ snprintf(name, 64, "%sUpperPlie", ext);
+ snprintf(bools, 64, "%s*%s", nameA, nameB);
TGeoCompositeShape* shUpperPlie = new TGeoCompositeShape(name, bools);
TGeoVolume* voWiggleU = new TGeoVolume(name, shUpperPlie, kMedSteel);
//
// Lower part of the undulation
TGeoTorus* shPlieTorusL = new TGeoTorus(rMin + rPlie, rPlie - dPlie, rPlie);
- sprintf(nameA, "%sTorusL", ext);
+ snprintf(nameA, 64, "%sTorusL", ext);
shPlieTorusL->SetName(nameA);
TGeoTube* shPlieTubeL = new TGeoTube (rMin, rMin + rPlie, rPlie);
- sprintf(nameB, "%sTubeL", ext);
+ snprintf(nameB, 64, "%sTubeL", ext);
shPlieTubeL->SetName(nameB);
- sprintf(name, "%sLowerPlie", ext);
- sprintf(bools, "%s*%s", nameA, nameB);
+ snprintf(name, 64, "%sLowerPlie", ext);
+ snprintf(bools, 64, "%s*%s", nameA, nameB);
TGeoCompositeShape* shLowerPlie = new TGeoCompositeShape(name, bools);
TGeoVolume* voWiggleL = new TGeoVolume(name, shLowerPlie, kMedSteel);
//
// Connection between upper and lower part of undulation
- sprintf(name, "%sPlieConn1", ext);
+ snprintf(name, 64, "%sPlieConn1", ext);
TGeoVolume* voWiggleC1 = new TGeoVolume(name, new TGeoTube(rMin + rPlie, rMax - rPlie, dPlie/2.), kMedSteel);
//
// One wiggle
Float_t dz = rPlie - dPlie / 2.;
Float_t z0 = - dPlie / 2.;
- sprintf(name, "%sWiggle", ext);
+ snprintf(name, 64, "%sWiggle", ext);
TGeoVolumeAssembly* asWiggle = new TGeoVolumeAssembly(name);
asWiggle->AddNode(voWiggleC1, 1 , new TGeoTranslation(0., 0., z0));
z0 += dz;
return voBellow;
}
+//_______________________________________________________________________
+void AliPIPEv3::AddAlignableVolumes() const
+{
+ //
+ AliInfo("Add PIPE alignable volume");
+
+ if (!gGeoManager) {
+ AliFatal("TGeoManager doesn't exist !");
+ return;
+ }
+
+ TString symname("CP1");
+ TString volpath("/ALIC_1/CP_1/Cp1_1");
+ if(!gGeoManager->SetAlignableEntry(symname.Data(),volpath.Data()))
+ AliFatal(Form("Alignable entry %s not created. Volume path %s not valid",
+ symname.Data(),volpath.Data()));
+
+ TString symname2("CP3");
+ TString volpath2("/ALIC_1/CP_1/Cp3_1");
+ if(!gGeoManager->SetAlignableEntry(symname2.Data(),volpath2.Data()))
+ AliFatal(Form("Alignable entry %s not created. Volume path %s not valid",
+ symname2.Data(),volpath2.Data()));
+}
+
+