]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STRUCT/AliSHILv3.cxx
added float/double/signed HLT basic data types
[u/mrichter/AliRoot.git] / STRUCT / AliSHILv3.cxx
index a479b83cf6ff81b4edead8e524930db15cdee9f4..9fa4aaaca87c942fbbbe504886d81d2cc56a68c4 100644 (file)
@@ -13,7 +13,7 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/* $Id $ */
+/* $Id$ */
 
 //-------------------------------------------------------------------------
 // The small angle absorber SAA (beam shield)
@@ -1119,26 +1119,24 @@ void AliSHILv3::CreateGeometry()
 //
 ///////////////////////////////////
 //    SAA3 Outer Shape           //
-//    Drawing ALIP2A__0xxx       //
+//    Drawing ALIP2A__0288       //
 ///////////////////////////////////
       
       TGeoVolumeAssembly* voSaa3  = new TGeoVolumeAssembly("YSAA3");
       
 ///////////////////////////////////
-//    SAA3 Steel Components      //
-//    Drawing ALIP2A__0xxx       //
+//    SAA3 Concrete cone         //
+//    Drawing ALIP2A__0284       //
 ///////////////////////////////////
 //    Block
       TGeoBBox* shSaa3CCBlockO   = new TGeoBBox(80./2., 80./2., 100./2.);
       shSaa3CCBlockO->SetName("Saa3CCBlockO");
 
-      TGeoPcon* shSaa3InnerRegion  = new TGeoPcon(0., 360., 6);
-      shSaa3InnerRegion->DefineSection( 0, -60.0, 0., 56.6/2.);
-      shSaa3InnerRegion->DefineSection( 1, -45.0, 0., 56.6/2.);
-      shSaa3InnerRegion->DefineSection( 2, -42.0, 0., 50.6/2.);
-      shSaa3InnerRegion->DefineSection( 3, -30.0, 0., 50.6/2.);
-      shSaa3InnerRegion->DefineSection( 4,  30.5, 0., 16.8/2.);
-      shSaa3InnerRegion->DefineSection( 5,  60.0, 0., 16.8/2.);
+      TGeoPcon* shSaa3InnerRegion  = new TGeoPcon(0., 360., 4);
+      shSaa3InnerRegion->DefineSection( 0, -60.0, 0., 27.1);
+      shSaa3InnerRegion->DefineSection( 1, -23.0, 0., 27.1);
+      shSaa3InnerRegion->DefineSection( 2,  29.1, 0., 12.3);
+      shSaa3InnerRegion->DefineSection( 3,  60.0, 0., 12.3);
       shSaa3InnerRegion->SetName("Saa3InnerRegion");
 
       TGeoCompositeShape* shSaa3CCBlock = new TGeoCompositeShape("Saa3CCBlock", "Saa3CCBlockO-Saa3InnerRegion");
@@ -1250,29 +1248,29 @@ void AliSHILv3::CreateGeometry()
       // Position of the dipole
       Float_t ziDipole = 741.;
       
-      TGeoPcon* shYOUT1 = new TGeoPcon(0., 360., 25);
+      TGeoPcon* shYOUT1 = new TGeoPcon(0., 360., 24);
       Float_t eps = 1.e-2;
       // FA Tail Section
-      for (Int_t iz =  0; iz < 9; iz++) {
+      for (Int_t iz =  1; iz < 9; iz++) {
          z = shFaWTail->GetZ(iz+1);
          if (iz == 8) z -= ozFaSaa1;
-         shYOUT1->DefineSection(iz, z + ziFaWTail, shFaWTail->GetRmax(iz+1) + eps, 150.);
+         shYOUT1->DefineSection(iz-1, z + ziFaWTail, shFaWTail->GetRmax(iz+1) + eps, 150.);
       }
       // FA-SAA1 Joint
-      z = shYOUT1->GetZ(8);
+      z = shYOUT1->GetZ(7);
       
       for (Int_t iz =  9; iz < 17; iz++) 
-         shYOUT1->DefineSection(iz, z + shFaSaa1->GetZ(iz-9), shFaSaa1->GetRmax(iz-9) + eps, 150.);
+         shYOUT1->DefineSection(iz-1, z + shFaSaa1->GetZ(iz-9), shFaSaa1->GetRmax(iz-9) + eps, 150.);
 
-      z = shYOUT1->GetZ(16) - ozSaa1;
+      z = shYOUT1->GetZ(15) - ozSaa1;
       // SAA1  - Dipole
       for (Int_t iz = 17; iz < 24; iz++) 
-         shYOUT1->DefineSection(iz, z + shSaa1M->GetZ(iz-13), shSaa1M->GetRmax(iz-13) + eps, 150.); 
+         shYOUT1->DefineSection(iz-1, z + shSaa1M->GetZ(iz-13), shSaa1M->GetRmax(iz-13) + eps, 150.); 
       // Distance between dipole and start of SAA1 2deg opening cone
       dz   = ziDipole - (zSaa1StEnv[0] - dSt + zSaa1StEnvS + ziSaa1);
       rOut = rOuSaa1StEnv2 + dz * TMath::Tan(2. * kDegRad);
       
-      shYOUT1->DefineSection(24, ziDipole, rOut + eps, 150.);
+      shYOUT1->DefineSection(23, ziDipole, rOut + eps, 150.);
 
       InvertPcon(shYOUT1);
       TGeoVolume* voYOUT1 = new TGeoVolume("YOUT1", shYOUT1, kMedAirMu);
@@ -1286,38 +1284,50 @@ void AliSHILv3::CreateGeometry()
 //
       Float_t zoDipole = 1249.;
       
-      TGeoPcon* shYOUT2 = new TGeoPcon(0., 360., 14);
+      TGeoPcon* shYOUT21 = new TGeoPcon(0., 360., 14);
       z =  zoDipole;
-      shYOUT2->DefineSection(0, z,             rOuSaa1String,       252.);
+      shYOUT21->DefineSection(0, z,             rOuSaa1String,       375.);
 //    Start of SAA1-SAA2
       z = ziSaa1Saa2;
-      shYOUT2->DefineSection(1, z,             rOuSaa1String,       252.);
-      shYOUT2->DefineSection(2, z,             rOuSaa1Saa2Steel,    252.);
+      shYOUT21->DefineSection(1, z,             rOuSaa1String,       375.);
+      shYOUT21->DefineSection(2, z,             rOuSaa1Saa2Steel,    375.);
 //    End of SAA1-SAA2
       z = ziSaa2;
-      shYOUT2->DefineSection(3, z,             rOuSaa1Saa2Steel,    252.);
+      shYOUT21->DefineSection(3, z,             rOuSaa1Saa2Steel,    375.);
 //    SAA2
-      shYOUT2->DefineSection( 4, z,            rInSaa2StEnv1 + dSt, 252.);
+      shYOUT21->DefineSection( 4, z,            rInSaa2StEnv1 + dSt, 375.);
       z = ziSaa2 + zSaa2PbRing;
-      shYOUT2->DefineSection( 5, z,            rInSaa2StEnv1 + dSt, 252.);
+      shYOUT21->DefineSection( 5, z,            rInSaa2StEnv1 + dSt, 375.);
 //    Pb Cone
-      shYOUT2->DefineSection( 6, z,            rOuSaa2PbRingF,      252.);
+      shYOUT21->DefineSection( 6, z,            rOuSaa2PbRingF,      375.);
       rmin = rOuSaa2PbRingF + (1380. - z) * TMath::Tan(1.6 * kDegRad);
-      shYOUT2->DefineSection( 7, 1380., rmin, 252.);
-      shYOUT2->DefineSection( 8, 1380., rmin, 304.);
+      shYOUT21->DefineSection( 7, 1380., rmin, 375.);
+      shYOUT21->DefineSection( 8, 1380., rmin, 375.);
       z = ziSaa2 + zSaa2PbRing + dzSaa2PbRing;
-      shYOUT2->DefineSection( 9, z,            rOuSaa2PbRingR,      304.);
+      shYOUT21->DefineSection( 9, z,            rOuSaa2PbRingR,      375.);
 //    Straight Sections
-      shYOUT2->DefineSection(10, z,            rInSaa2StEnv1 + dSt, 460.);
+      shYOUT21->DefineSection(10, z,            rInSaa2StEnv1 + dSt, 460.);
       z = ziSaa2 + dzSaa2StEnv1;
-      shYOUT2->DefineSection(11, z,            rInSaa2StEnv1 + dSt, 460.);
-      shYOUT2->DefineSection(12, z,            rInSaa2StEnv2 + dSt, 460.);
+      shYOUT21->DefineSection(11, z,            rInSaa2StEnv1 + dSt, 460.);
+      shYOUT21->DefineSection(12, z,            rInSaa2StEnv2 + dSt, 460.);
       z += dzSaa2StEnv2;
-      shYOUT2->DefineSection(13, z,            rInSaa2StEnv2 + dSt, 460.);
+      shYOUT21->DefineSection(13, z,            rInSaa2StEnv2 + dSt, 460.);
+            
+      InvertPcon(shYOUT21);
+      shYOUT21->SetName("shYOUT21");
+
+      TGeoBBox* shYOUT22 = new TGeoBBox(460. , 200., 65.);
+      shYOUT22->SetName("shYOUT22");
+      
+      TGeoTranslation* tYOUT22 = new TGeoTranslation(0., -310. - 200., -zcFilter);
+      tYOUT22->SetName("tYOUT22");
+      tYOUT22->RegisterYourself();
+      
+
+      TGeoCompositeShape* shYOUT2 = new TGeoCompositeShape("shYOUT2", "shYOUT21-shYOUT22:tYOUT22");
       
-      InvertPcon(shYOUT2);
       TGeoVolume* voYOUT2 = new TGeoVolume("YOUT2", shYOUT2, kMedAirMu);
-      voYOUT2->SetVisibility(0);
+      voYOUT2->SetVisibility(1);
       voYOUT2->AddNode(voMuonFilter, 1, new TGeoCombiTrans(0., dzMuonFilter * TMath::Tan(alhc * kDegrad), -zcFilter, rotxzlhc));
       top->AddNode(voYOUT2, 1, gGeoIdentity);
 }