]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STRUCT/AliPIPEv3.cxx
Changes to remove the overlaps and extrusions
[u/mrichter/AliRoot.git] / STRUCT / AliPIPEv3.cxx
index 3f4045a9faf261660a77ed789e42b8b62f22367d..ba40df7ce7949088c55296f0309899f38bf8291c 100644 (file)
 
 #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"
@@ -85,6 +86,7 @@ void AliPIPEv3::CreateGeometry()
     const TGeoMedium* kMedAir     =  gGeoManager->GetMedium("PIPE_AIR");
     const TGeoMedium* kMedAirHigh =  gGeoManager->GetMedium("PIPE_AIR_HIGH");
     const TGeoMedium* kMedVac     =  gGeoManager->GetMedium("PIPE_VACUUM");    
+    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");       
@@ -370,10 +372,11 @@ void AliPIPEv3::CreateGeometry()
 //
 //  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
@@ -579,7 +582,7 @@ void AliPIPEv3::CreateGeometry()
     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;
 
 //////////////////////////////////////////////
@@ -841,8 +844,8 @@ void AliPIPEv3::CreateGeometry()
                                                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.), kMedSteel);
 
 // Warm Module Type VMACA
 // LHCVMACA_0002
@@ -1639,18 +1642,20 @@ void AliPIPEv3::CreateGeometry()
 //   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);
     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.;
@@ -1674,11 +1679,11 @@ void AliPIPEv3::CreateGeometry()
     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));    
 
@@ -2694,8 +2699,8 @@ void AliPIPEv3::CreateMaterials()
   //
 
   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. };
@@ -2716,7 +2721,7 @@ void AliPIPEv3::CreateMaterials()
   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
@@ -2764,7 +2769,8 @@ void AliPIPEv3::CreateMaterials()
   AliMixture(35, "AIR_HIGH$ ", aAir, zAir, dAir, 4, wAir);
   //
   //     Vacuum 
-  AliMixture(16, "VACUUM$ ", aAir, zAir, dAir1, 4, wAir);
+  AliMixture(16, "VACUUM$ " , aAir, zAir, dAir1, 4, wAir);
+  AliMixture(17, "VACUUMM$ ", aAir, zAir, dAir1, 4, wAir);
   //
   //     stainless Steel 
   AliMixture(19, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel);
@@ -2820,7 +2826,8 @@ void AliPIPEv3::CreateMaterials()
   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, "VACUUM",  16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);
+  AliMedium(17, "VACUUMM", 17, 0, isxfld, sxmgmx, 0.1, stemax, deemax, epsil, stmin);
   //
   //    Steel 
   AliMedium(19, "INOX",   19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin);