]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STRUCT/AliABSOv3.cxx
- changes for QA part of standard GG task
[u/mrichter/AliRoot.git] / STRUCT / AliABSOv3.cxx
index 190d2cc14684400b85c72a2a3abb9dc90cefb4f1..e611caac548efb66e09087b92becbf1724f34f01 100644 (file)
@@ -72,10 +72,6 @@ void AliABSOv3::CreateGeometry()
     TGeoVolume* top = gGeoManager->GetVolume("ALIC");
     
 //
-// Translation
-//
-    TGeoTranslation* vec0 = new TGeoTranslation(0., 0., 0.);
-//
 // Media
 //
     TGeoMedium* kMedNiW     = gGeoManager->GetMedium("ABSO_Ni/W0");
@@ -182,7 +178,7 @@ void AliABSOv3::CreateGeometry()
       // Front insert 
       Float_t dzSteelEnvelopeFI    =  1.;
       Float_t rInSteelEnvelopeFI   = 42.0/2.;
-      Float_t rOuSteelEnvelopeFI   = 85.0/2.;      
+      Float_t rOuSteelEnvelopeFI   = 85.0/2.+ 0.06;      
       
       TGeoPcon* shFaSteelEnvelopeC = new TGeoPcon(0., 360., 7);
       z = 0.;
@@ -323,11 +319,11 @@ void AliABSOv3::CreateGeometry()
       for (Int_t i = 1; i < 5; i++) {
          Float_t rmin = shFaWPlateA->GetRmin(i+2);
          Float_t rmax = shFaWPlateA->GetRmax(i+2) - 3.;        
-         Float_t z    = shFaWPlateA->GetZ(i+2);
-         shFaWPlateAI->DefineSection(i, z, rmin, rmax);
+         Float_t zpos = shFaWPlateA->GetZ(i+2);
+         shFaWPlateAI->DefineSection(i, zpos, rmin, rmax);
       }
       TGeoVolume* voFaWPlateAI = new TGeoVolume("AFaWPlateAI", shFaWPlateAI, kMedNiWsh);
-      voFaWPlateA->AddNode(voFaWPlateAI, 1, vec0);
+      voFaWPlateA->AddNode(voFaWPlateAI, 1, gGeoIdentity);
       
 //
 // Inner Tungsten Shield
@@ -385,7 +381,7 @@ void AliABSOv3::CreateGeometry()
       Float_t rInFaWTube2C1 =   9.10/2.;
       Float_t rInFaWTube2C2 =  12.58/2.;
       Float_t rOuFaWTube2C1 =  20.70/2.;
-      Float_t rOuFaWTube2C2 =  30.72/2.;
+      Float_t rOuFaWTube2C2 =  30.72/2.- 0.05;
       // Front Flange 
       Float_t dzFaWTube2F   =  0.6;
       Float_t rInFaWTube2F  = 15.4/2.;
@@ -518,7 +514,7 @@ void AliABSOv3::CreateGeometry()
       // Inner region with higher transport cuts
       TGeoPcon*   shFaPbConeI = MakeShapeFromTemplate(shFaPbCone, 0., -3.);
       TGeoVolume* voFaPbConeI  = new TGeoVolume("AFaPbConeI", shFaPbConeI, kMedPbSh);
-      voFaPbCone->AddNode(voFaPbConeI, 1, vec0);
+      voFaPbCone->AddNode(voFaPbConeI, 1, gGeoIdentity);
       
       
 // Pos 13
@@ -561,6 +557,7 @@ void AliABSOv3::CreateGeometry()
 //    Drawing ALIP2A__00xx       //
 ///////////////////////////////////     
       Float_t dzFaSteelCone25   = 25.;
+      Float_t eps = 0.001;
       Float_t rInFaSteelCone25A = rInFaConcreteCone2;
       Float_t rOuFaSteelCone25A = rOuFaConcreteCone2;      
       Float_t rInFaSteelCone25B = rInFaSteelCone25A + dzFaSteelCone25 * angle02;
@@ -568,8 +565,8 @@ void AliABSOv3::CreateGeometry()
       
       TGeoVolume* voFaSteelCone25 = new TGeoVolume("AFaSteelCone25", 
                                                   new TGeoCone(dzFaSteelCone25/2., 
-                                                               rInFaSteelCone25A, rOuFaSteelCone25A,       
-                                                               rInFaSteelCone25B, rOuFaSteelCone25B),
+                                                               rInFaSteelCone25A + eps, rOuFaSteelCone25A - eps,           
+                                                               rInFaSteelCone25B + eps, rOuFaSteelCone25B - eps),
                                                   kMedSteelSh);
 
 // Pos 16
@@ -585,16 +582,16 @@ void AliABSOv3::CreateGeometry()
       
       TGeoVolume* voFaSteelCone31 = new TGeoVolume("AFaSteelCone31", 
                                                   new TGeoCone(dzFaSteelCone31/2., 
-                                                               rInFaSteelCone31A, rOuFaSteelCone31A,       
-                                                               rInFaSteelCone31B, rOuFaSteelCone31B),
+                                                               rInFaSteelCone31A + eps, rOuFaSteelCone31A - eps,           
+                                                               rInFaSteelCone31B + eps, rOuFaSteelCone31B - eps),
                                                   kMedSteelSh);
-      // Outer Rregion with higher transport cuts
+      // Outer Region with higher transport cuts
       dz = 5.;
       TGeoVolume* voFaSteelCone31I = new TGeoVolume("AFaSteelCone31I", 
                                                    new TGeoCone(dz/2., 
-                                                                rInFaSteelCone31B - dz * angle03, 
-                                                                rOuFaSteelCone31B - dz * angle10, 
-                                                                rInFaSteelCone31B, rOuFaSteelCone31B),
+                                                                rInFaSteelCone31B - dz * angle03 + eps
+                                                                rOuFaSteelCone31B - dz * angle10 - eps
+                                                                rInFaSteelCone31B + eps, rOuFaSteelCone31B - eps),
                                                    kMedSteel);
       
       voFaSteelCone31->AddNode(voFaSteelCone31I, 1,  new TGeoTranslation(0., 0., dzFaSteelCone31/2. - dz/2.));
@@ -611,7 +608,7 @@ void AliABSOv3::CreateGeometry()
       // 2nd section
       Float_t dzFaCompRing2  =  1.2;
       Float_t rInFaCompRing2 = 14.0/2.;
-      Float_t rOuFaCompRing2 = 34.3/2.;
+      Float_t rOuFaCompRing2 = 35.3/2.;
 
       TGeoPcon* shFaCompRing = new TGeoPcon(0., 360., 4);
       z = 0.;
@@ -711,16 +708,17 @@ void AliABSOv3::CreateGeometry()
       shFaM->DefineSection(15, z,  rInFaCH2Cone2,                    rOuSteelEnvelopeR2);
 
       TGeoVolume* voFaM = new TGeoVolume("AFaM", shFaM, kMedAir);
-
+      voFaM->SetVisibility(0);
+      
 
 //
 //    Assemble volumes inside acceptance
       TGeoPcon* shFaAccM = new TGeoPcon(0., 360., 7);
       for (Int_t i = 0; i < 4; i++) {
-         Float_t z     = shFaGraphiteCone->GetZ(i);
+         Float_t zpos  = shFaGraphiteCone->GetZ(i);
          Float_t rmin  = shFaGraphiteCone->GetRmin(i);
          Float_t rmax  = shFaGraphiteCone->GetRmax(i);
-         shFaAccM->DefineSection(i, z, rmin, rmax);
+         shFaAccM->DefineSection(i, zpos, rmin, rmax);
       }
       z  = dzFaGraphiteCone + dzFaConcreteCone + dzFaSteelCone25;
       z0 = z + zFa + dzFaFlange;
@@ -732,18 +730,18 @@ void AliABSOv3::CreateGeometry()
       TGeoVolume* voFaAccM = new TGeoVolume("AFaAcc", shFaAccM, kMedAir);
       
       z = 0;
-      voFaAccM->AddNode(voFaGraphiteCone, 1, vec0);
+      voFaAccM->AddNode(voFaGraphiteCone, 1, gGeoIdentity);
       z += dzFaGraphiteCone;
       voFaAccM->AddNode(voFaConcreteCone, 1, new TGeoTranslation(0., 0., z + dzFaConcreteCone / 2.));
       z += dzFaConcreteCone;
-      voFaAccM->AddNode(voFaSteelCone25,  1, new TGeoTranslation(0., 0., z + dzFaSteelCone25 / 2. + 0.001));
+      voFaAccM->AddNode(voFaSteelCone25,  1, new TGeoTranslation(0., 0., z + dzFaSteelCone25 / 2.));
       z += dzFaSteelCone25;
-      voFaAccM->AddNode(voFaSteelCone31,  1, new TGeoTranslation(0., 0., z + dzFaSteelCone31 / 2. + 0.001));
+      voFaAccM->AddNode(voFaSteelCone31,  1, new TGeoTranslation(0., 0., z + dzFaSteelCone31 / 2.));
 
 //
 // Inner shield
       TGeoVolumeAssembly* voFaInnerShield = new TGeoVolumeAssembly("AFaInnerShield");
-      voFaInnerShield->AddNode(voFaWTube1, 1, vec0);
+      voFaInnerShield->AddNode(voFaWTube1, 1, gGeoIdentity);
       z = dzFaWTube1 - 0.6;
       voFaInnerShield->AddNode(voFaWTube2, 1, new TGeoTranslation(0., 0., z) );
       z += dzFaWTube2;
@@ -758,16 +756,16 @@ void AliABSOv3::CreateGeometry()
 //    Adding volumes to mother volume
 //
       z = 0.;
-      voFaM->AddNode(voFaWPlateA,       1, vec0);
+      voFaM->AddNode(voFaWPlateA,       1, gGeoIdentity);
       z += dzFaWPlate;
       voFaM->AddNode(voFaSteelEnvelope, 1, new TGeoTranslation(0., 0., z));
       z += dzSteelEnvelopeFC;
       voFaM->AddNode(voFaPbCone,        1, new TGeoTranslation(0., 0., z));
       z += (dzFaPbCone + dzFaCH2Cone / 2.);
       voFaM->AddNode(voFaCH2Cone,       1, new TGeoTranslation(0., 0., z));
-      voFaM->AddNode(voFaFlange,   1, vec0);
-      voFaM->AddNode(voFaMgRing,   1, vec0);
-      voFaM->AddNode(voFaCompRing, 1, vec0);
+      voFaM->AddNode(voFaFlange,   1, gGeoIdentity);
+      voFaM->AddNode(voFaMgRing,   1, gGeoIdentity);
+      voFaM->AddNode(voFaCompRing, 1, gGeoIdentity);
       voFaM->AddNode(voFaAccM, 1, new TGeoTranslation(0., 0., dzFaFlange));
 
 ////////////////////////////////////////////////////
@@ -863,7 +861,7 @@ void AliABSOv3::CreateGeometry()
          new TGeoCompositeShape("shFassCentral", "FassCone-(FassWindow:tFassWindow+FassApperture)");
       
       TGeoVolume* voFassCentral = new TGeoVolume("AFassCentral", shFassCentral, kMedSteel);
-      voFass->AddNode(voFassCentral, 1, vec0);
+      voFass->AddNode(voFassCentral, 1, gGeoIdentity);
       
 //
 // Aluminum ring
@@ -890,15 +888,15 @@ void AliABSOv3::CreateGeometry()
 //
 // Absorber and Support
       TGeoVolumeAssembly* voFA = new TGeoVolumeAssembly("AFA");
-      voFA->AddNode(voFaM,        1, vec0);
+      voFA->AddNode(voFaM,        1, gGeoIdentity);
       voFA->AddNode(voFaEndPlate, 1, new TGeoTranslation(0., 0., dzFa + dzEndPlate/2.));
       voFA->AddNode(voFass, 1, new TGeoTranslation(0., 0., 388.45));
-      voFA->AddNode(voFassAlRing, 1, new TGeoTranslation(0., 0., 382. - 0.55));
+      voFA->AddNode(voFassAlRing, 1, new TGeoTranslation(0., 0., 382. - 3.56));
       top->AddNode(voFA, 1, new TGeoCombiTrans(0., 0., -90., rotxz));
 }
 
 
-TGeoPcon* AliABSOv3::MakeShapeFromTemplate(TGeoPcon* pcon, Float_t drMin, Float_t drMax)
+TGeoPcon* AliABSOv3::MakeShapeFromTemplate(const TGeoPcon* pcon, Float_t drMin, Float_t drMax)
 {
     // 
     // Returns new shape based on a template changing