X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STRUCT%2FAliMAG.cxx;h=3d39a10e4b3ecf17645816b876eff8d83a3ae611;hb=cb15f5057a69750da53f4cdc2cbd3f07560d403f;hp=76e4c57148c845a6a86f229e35306115de563c7e;hpb=58af11ef6356aa7b30ec617d78951cb99f1a10da;p=u%2Fmrichter%2FAliRoot.git diff --git a/STRUCT/AliMAG.cxx b/STRUCT/AliMAG.cxx index 76e4c57148c..3d39a10e4b3 100644 --- a/STRUCT/AliMAG.cxx +++ b/STRUCT/AliMAG.cxx @@ -29,11 +29,20 @@ Andreas Morsch.
+
 */
 //End_Html
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
  
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
 #include 
 
 #include "AliMAG.h"
@@ -63,9 +72,9 @@ AliMAG::AliMAG(const char *name, const char *title)
   */
   //End_Html
   
-  SetMarkerColor(7);
-  SetMarkerStyle(2);
-  SetMarkerSize(0.4);
+  //PH  SetMarkerColor(7);
+  //PH  SetMarkerStyle(2);
+  //PH  SetMarkerSize(0.4);
 }
 
 //_____________________________________________________________________________
@@ -79,146 +88,255 @@ void AliMAG::CreateGeometry()
     
   */
   //End_Html
+    
   //Begin_Html
   /*
     
-  */
+    
Dimensions taken from drawing: ALIL3___00010 //End_Html - - Int_t *idtmed = fIdtmed->GetArray()-299; - - Float_t dpar[13]; - Int_t idrotm[399]; - Float_t par[10]; - - // ANGLE POLAIRE MAXIMUM - - // Define Mother - - par[0] = 22.5; - par[1] = 360.; - par[2] = 8.; - par[3] = 2.; - par[4] = -600.; - par[5] = 580.; - par[6] = 790.; - par[7] = 600.; - par[8] = 580.; - par[9] = 790.; - gMC->Gsvolu("L3MO", "PGON", idtmed[334], par, 10); - gMC->Gspos("L3MO", 1, "ALIC", 0., -30., 0., 0, "ONLY"); - - // Define coils - - par[5] = 585.; - par[6] = 690.; - par[8] = 585.; - par[9] = 690.; - gMC->Gsvolu("L3CO", "PGON", idtmed[328], par, 10); - gMC->Gspos("L3CO", 1, "L3MO", 0., 0., 0., 0, "ONLY"); - - par[5] = 580.; - par[6] = 585.; - par[8] = 580.; - par[9] = 585.; - gMC->Gsvolu("L3C1", "PGON", idtmed[308], par, 10); - gMC->Gspos("L3C1", 1, "L3MO", 0., 0., 0., 0, "ONLY"); - - // Define yoke - - par[5] = 690.; - par[6] = 790.; - par[8] = 690.; - par[9] = 790.; - gMC->Gsvolu("L3YO", "PGON", idtmed[329], par, 10); - gMC->Gspos("L3YO", 1, "L3MO", 0., 0., 0., 0, "ONLY"); - - // Define the return yoke of L3 (DOOR) - - par[4] = 600.; - par[5] = 0.; - par[6] = 790.; - par[7] = 700.; - par[8] = par[5]; - par[9] = par[6]; - gMC->Gsvolu("L3DO", "PGON", idtmed[334], par, 10); - gMC->Gsvolu("L3DX", "PGON", idtmed[334], par, 10); - - par[4] = 610.; - par[5] = 0.; - par[6] = 790.; - par[7] = 700.; - par[8] = par[5]; - par[9] = par[6]; - gMC->Gsvolu("L3FR", "PGON", idtmed[329], par, 10); - gMC->Gsvolu("L3FX", "PGON", idtmed[329], par, 10); - - // INNER LAYER - - par[4] = 600.; - par[7] = 610.; - gMC->Gsvolu("L3IR", "PGON", idtmed[309], par, 10); - gMC->Gsvolu("L3IX", "PGON", idtmed[309], par, 10); - - // DOOR OPENING - - dpar[0] = 22.5; - dpar[1] = 360; - dpar[2] = 8.; - dpar[3] = 3.; - dpar[4] = 610.; - dpar[5] = 0.; - dpar[6] = 163.5; - dpar[7] = 670.; - dpar[8] = dpar[5]; - dpar[9] = dpar[6]; - dpar[10] = 700.; - dpar[11] = dpar[5]; - dpar[12] = dpar[6] + 50.; - gMC->Gsvolu("L3O1", "PGON", idtmed[314], dpar, 13); - gMC->Gsvolu("L3O3", "PGON", idtmed[314], dpar, 13); - par[4] = 600.; - par[5] = 0.; - par[6] = 163.5; - par[7] = 610.; - par[8] = 0.; - par[9] = 163.5; - gMC->Gsvolu("L3O2", "PGON", idtmed[314], par, 10); - gMC->Gsvolu("L3O4", "PGON", idtmed[314], par, 10); - - // THE DOOR OPENING HAS TO BE PLACED WITH 'MANY' SINCE THE REGION - // WILL CONTAIN A MUON CHAMBER, BEAM PIPE AND BEAM SHIELD - // PLACED WITH 'ONLY'. - - AliMatrix(idrotm[300], 90., 0., 90., 90., 180., 0.); + */ +// Octagon + const Int_t kNSides = 8; + const Float_t kStartAngle = 22.5; // deg + const Float_t kFullAngle = 360.0; // deg +// Mother volume + const Float_t kRBMotherInner = 600.00; // cm + const Float_t kRBMotherOuter = 790.50; // cm + const Float_t kLBMother = 706.00; // cm +// Yoke + const Float_t kRYokeInner = 703.50; // cm + const Float_t kRYokeOuter = 790.50; // cm + const Float_t kLYoke = 620.00; // cm +// Coil + const Float_t kRCoilInner = 593.00; // cm + const Float_t kRCoilOuter = 682.00; // cm + const Float_t kLCoil = 588.00; // cm +// Cooling + const Float_t kRCoolingOuter = 1.70; // cm + const Float_t kRCoolingInner = 1.00; // cm +// Thermal Shield + const Float_t kRThermalShieldInner = 566.00; // cm + const Float_t kRThermalShieldOuter = 571.00; // cm +// Crown + const Float_t kRCrownInner = 600.00; // cm + const Float_t kRCrownOuter = 785.50; // cm + const Float_t kLCrown1 = 605.00; // cm + const Float_t kLCrown2 = 620.00; // cm + const Float_t kLCrown3 = 706.00; // cm +// Door + const Float_t kRDoorOuter = 600.00; // cm + const Float_t kRPlugInner = 183.50; // cm + const Float_t kLDoor1 = 615.50; // cm + const Float_t kLDoor2 = 714.60; // cm +// + const Float_t kDegRad = TMath::Pi()/180.; + + + // + // Top volume + TGeoVolume* top = gGeoManager->GetVolume("ALIC"); + // Media + TGeoMedium* medAir = gGeoManager->GetMedium("MAG_AIR_C1"); + TGeoMedium* medAlu = gGeoManager->GetMedium("MAG_ALU_C1"); + TGeoMedium* medAluI = gGeoManager->GetMedium("MAG_ALU_C0"); + TGeoMedium* medSteel = gGeoManager->GetMedium("MAG_ST_C1"); + TGeoMedium* medWater = gGeoManager->GetMedium("MAG_WATER"); + // + // Offset between LHC and LEP axis + Float_t os = -30.; - gMC->Gspos("L3DO", 1, "ALIC", 0., -30., 0., 0, "MANY"); - gMC->Gspos("L3FR", 1, "L3DO", 0., 0., 0., 0, "MANY"); - gMC->Gspos("L3IR", 1, "L3DO", 0., 0., 0., 0, "MANY"); - - gMC->Gspos("L3DX", 1, "ALIC", 0., -30., 0., idrotm[300], "MANY"); - gMC->Gspos("L3FX", 1, "L3DX", 0., 0., 0., 0, "MANY"); - gMC->Gspos("L3IX", 1, "L3DX", 0., 0., 0., 0, "MANY"); + // + // Define Barrel Mother + // + TGeoPgon* shBMother = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2); + shBMother->DefineSection(0, -kLBMother, kRBMotherInner, kRBMotherOuter); + shBMother->DefineSection(1, kLBMother, kRBMotherInner, kRBMotherOuter); + // + TGeoVolumeAssembly* voBMother = new TGeoVolumeAssembly("L3BM"); + // + // Define Thermal Shield + // + // Only one layer + // This can be improved: replace by (protection - shield - insulation) ! + // + TGeoPgon* shThermSh = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2); + shThermSh->DefineSection(0, -kLCoil, kRThermalShieldInner, kRThermalShieldOuter); + shThermSh->DefineSection(1, kLCoil, kRThermalShieldInner, kRThermalShieldOuter); + // + TGeoVolume* voThermSh = new TGeoVolume("L3TS", shThermSh, medAluI); + voBMother->AddNode(voThermSh, 1, new TGeoTranslation(0., 0., 0.)); + // + // Define Coils and cooling circuits + // + TGeoPgon* shCoilMother = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2); + shCoilMother->DefineSection(0, -kLCoil, kRCoilInner - 2. * kRCoolingOuter, kRCoilOuter + 2. * kRCoolingOuter); + shCoilMother->DefineSection(1, kLCoil, kRCoilInner - 2. * kRCoolingOuter, kRCoilOuter + 2. * kRCoolingOuter); + // + // Coils + TGeoVolume* voCoilMother = new TGeoVolume("L3CM", shCoilMother, medAir); + voBMother->AddNode(voCoilMother, 1, new TGeoTranslation(0., 0., 0.)); + // Devide into the 168 turns + TGeoVolume* voCoilTurn = voCoilMother->Divide("L3CD", 3, 168, 0., 0.); + TGeoPgon* shCoils = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2); + shCoils->DefineSection(0, -3., kRCoilInner, kRCoilOuter); + shCoils->DefineSection(1, 3., kRCoilInner, kRCoilOuter); + // + TGeoVolume* voCoils = new TGeoVolume("L3C0", shCoils, medAlu); + voCoilTurn->AddNode(voCoils, 1, new TGeoTranslation(0., 0., 0.)); + // + // Hexagonal Cooling circuits + // + const Float_t kRCC = kRCoolingOuter; + const Float_t kRCW = kRCoolingInner; + const Float_t kRCL = kRCC * TMath::Tan(30. / 180. * TMath::Pi()); + const Float_t kRWL = kRCW * TMath::Tan(30. / 180. * TMath::Pi()); + // Outer Circuits + // + // Pipe + TGeoPgon* shCoolingPipeO = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4); + shCoolingPipeO->DefineSection(0, -kRCC, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01); + shCoolingPipeO->DefineSection(1, -kRCL, kRCoilOuter, kRCoilOuter + 2. * kRCC); + shCoolingPipeO->DefineSection(2, kRCL, kRCoilOuter, kRCoilOuter + 2. * kRCC); + shCoolingPipeO->DefineSection(3, kRCC, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01); + // + TGeoVolume* voCoolingPipeO = new TGeoVolume("L3CCO", shCoolingPipeO, medAlu); + voCoilTurn->AddNode(voCoolingPipeO, 1, new TGeoTranslation(0., 0., 0.)); + // + TGeoPgon* shCoolingWaterO = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4); + shCoolingWaterO->DefineSection(0, -kRCW, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01); + shCoolingWaterO->DefineSection(1, -kRWL, kRCoilOuter + (kRCC - kRCW), kRCoilOuter + kRCC + kRCW); + shCoolingWaterO->DefineSection(2, kRWL, kRCoilOuter + (kRCC - kRCW), kRCoilOuter + kRCC + kRCW); + shCoolingWaterO->DefineSection(3, kRCW, kRCoilOuter + kRCC, kRCoilOuter + kRCC + 0.01); + // + TGeoVolume* voCoolingWaterO = new TGeoVolume("L3CWO", shCoolingWaterO, medWater); + voCoolingPipeO->AddNode(voCoolingWaterO, 1, new TGeoTranslation(0., 0., 0.)); - if(!strcmp(gMC->GetName(),"TGeant3") || !strcmp(gMC->GetName(),"TFluka")) { + // Inner Circuits + // + // Pipe + TGeoPgon* shCoolingPipeI = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4); + shCoolingPipeI->DefineSection(0, -kRCC, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01); + shCoolingPipeI->DefineSection(1, -kRCL, kRCoilInner - 2. * kRCC, kRCoilInner); + shCoolingPipeI->DefineSection(2, kRCL, kRCoilInner - 2. * kRCC, kRCoilInner); + shCoolingPipeI->DefineSection(3, kRCC, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01); + // + TGeoVolume* voCoolingPipeI = new TGeoVolume("L3CCI", shCoolingPipeI, medAlu); + voCoilTurn->AddNode(voCoolingPipeI, 1, new TGeoTranslation(0., 0., 0.)); + // + TGeoPgon* shCoolingWaterI = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4); + shCoolingWaterI->DefineSection(0, -kRCW, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01); + shCoolingWaterI->DefineSection(1, -kRWL, kRCoilInner - kRCC - kRCW, kRCoilInner - (kRCC - kRCW)); + shCoolingWaterI->DefineSection(2, kRWL, kRCoilInner - kRCC - kRCW, kRCoilInner - (kRCC - kRCW)); + shCoolingWaterI->DefineSection(3, kRCW, kRCoilInner - kRCC, kRCoilInner - kRCC + 0.01); + // + TGeoVolume* voCoolingWaterI = new TGeoVolume("L3CWI", shCoolingWaterI, medWater); + voCoolingPipeI->AddNode(voCoolingWaterI, 1, new TGeoTranslation(0., 0., 0.)); - gMC->Gspos("L3O1", 1, "L3FR", 0., 30., 0., 0, "MANY"); - gMC->Gspos("L3O2", 1, "L3IR", 0., 30., 0., 0, "MANY"); - gMC->Gspos("L3O3", 1, "L3FX", 0., 30., 0., 0, "MANY"); - gMC->Gspos("L3O4", 1, "L3IX", 0., 30., 0., 0, "MANY"); + // + // Define Yoke + // + TGeoPgon* shYoke = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 2); + shYoke->DefineSection(0, -kLYoke, kRYokeInner, kRYokeOuter); + shYoke->DefineSection(1, +kLYoke, kRYokeInner, kRYokeOuter); + // + TGeoVolume* voYoke = new TGeoVolume("L3YO", shYoke, medSteel); + voBMother->AddNode(voYoke, 1, new TGeoTranslation(0., 0., 0.)); + // + // Define Crown + // + TGeoPgon* shCrown = new TGeoPgon(kStartAngle, kFullAngle, kNSides, 4); + shCrown->DefineSection(0, kLCrown1, kRCrownInner, kRYokeInner); + shCrown->DefineSection(1, kLCrown2, kRCrownInner, kRYokeInner); + shCrown->DefineSection(2, kLCrown2, kRCrownInner, kRCrownOuter); + shCrown->DefineSection(3, kLCrown3, kRCrownInner, kRCrownOuter); + // + TGeoVolume* voCrown = new TGeoVolume("L3CR", shCrown, medSteel); + + // + // Door including "Plug" + // + Float_t slo = 2. * kRDoorOuter * TMath::Tan(22.5 * kDegRad); + Float_t sli = 2. * kRPlugInner * TMath::Tan(22.5 * kDegRad); + Double_t xpol1[12], xpol2[12], ypol1[12], ypol2[12]; + + xpol1[ 0] = 2. ; ypol1[ 0] = kRDoorOuter; + xpol1[ 1] = slo/2. ; ypol1[ 1] = kRDoorOuter; + xpol1[ 2] = kRDoorOuter; ypol1[ 2] = slo/2.; + xpol1[ 3] = kRDoorOuter; ypol1[ 3] = -slo/2.; + xpol1[ 4] = slo/2. ; ypol1[ 4] = -kRDoorOuter; + xpol1[ 5] = 2. ; ypol1[ 5] = -kRDoorOuter; + xpol1[ 6] = 2. ; ypol1[ 6] = -kRPlugInner - os; + xpol1[ 7] = sli/2. ; ypol1[ 7] = -kRPlugInner - os; + xpol1[ 8] = kRPlugInner; ypol1[ 8] = -sli/2. - os; + xpol1[ 9] = kRPlugInner; ypol1[ 9] = sli/2. - os; + xpol1[10] = sli/2. ; ypol1[10] = kRPlugInner - os; + xpol1[11] = 2. ; ypol1[11] = kRPlugInner - os; + + TGeoXtru* shL3DoorR = new TGeoXtru(2); + shL3DoorR->DefinePolygon(12, xpol1, ypol1); + shL3DoorR->DefineSection(0, kLDoor1); + shL3DoorR->DefineSection(1, kLDoor2); + TGeoVolume* voL3DoorR = new TGeoVolume("L3DoorR", shL3DoorR, medSteel); + + for (Int_t i = 0; i < 12; i++) { + xpol2[i] = - xpol1[11 - i]; + ypol2[i] = ypol1[11 - i]; } - else { - gMC->Gspos("L3O1", 1, "ALIC", 0., 0., 0., 0, "MANY"); - gMC->Gspos("L3O2", 1, "ALIC", 0., 0., 0., 0, "MANY"); - gMC->Gsbool("L3O1", "L3DO"); - gMC->Gsbool("L3O2", "L3DO"); + + TGeoXtru* shL3DoorL = new TGeoXtru(2); + shL3DoorL->DefinePolygon(12, xpol2, ypol2); + shL3DoorL->DefineSection(0, kLDoor1); + shL3DoorL->DefineSection(1, kLDoor2); + TGeoVolume* voL3DoorL = new TGeoVolume("L3DoorL", shL3DoorL, medSteel); + // + // Plug support plate + // + Float_t ro = kRPlugInner + 50.; + slo = 2. * ro * TMath::Tan(22.5 * kDegRad); + + xpol1[ 0] = 2. ; ypol1[ 0] = ro - os; + xpol1[ 1] = slo/2. ; ypol1[ 1] = ro - os; + xpol1[ 2] = ro ; ypol1[ 2] = slo/2. - os; + xpol1[ 3] = ro ; ypol1[ 3] = -slo/2.- os; + xpol1[ 4] = slo/2. ; ypol1[ 4] = -ro - os; + xpol1[ 5] = 2. ; ypol1[ 5] = -ro - os; + + for (Int_t i = 0; i < 12; i++) { + xpol2[i] = - xpol1[11 - i]; + ypol2[i] = ypol1[11 - i]; + } + + + TGeoXtru* shL3PlugSPR = new TGeoXtru(2); + shL3PlugSPR->DefinePolygon(12, xpol1, ypol1); + shL3PlugSPR->DefineSection(0, kLDoor1-10.); + shL3PlugSPR->DefineSection(1, kLDoor1); + TGeoVolume* voL3PlugSPR = new TGeoVolume("L3PlugSPR", shL3PlugSPR, medSteel); + + TGeoXtru* shL3PlugSPL = new TGeoXtru(2); + shL3PlugSPL->DefinePolygon(12, xpol2, ypol2); + shL3PlugSPL->DefineSection(0, kLDoor1-10.); + shL3PlugSPL->DefineSection(1, kLDoor1); + TGeoVolume* voL3PlugSPL = new TGeoVolume("L3PlugSPL", shL3PlugSPL, medSteel); - gMC->Gspos("L3O3", 1, "ALIC", 0., 0., 0., idrotm[300], "MANY"); - gMC->Gspos("L3O4", 1, "ALIC", 0., 0., 0., idrotm[300], "MANY"); - gMC->Gsbool("L3O3", "L3DX"); - gMC->Gsbool("L3O4", "L3DX"); - } + + // Position crown and door + TGeoRotation* rotxz = new TGeoRotation("rotxz", 90., 0., 90., 90., 180., 0.); + + TGeoVolumeAssembly *l3 = new TGeoVolumeAssembly("L3MO"); + voBMother->AddNode(voCrown, 1, new TGeoTranslation(0., 0., 0.)); + voBMother->AddNode(voCrown, 2, new TGeoCombiTrans(0., 0., 0., rotxz)); + l3->AddNode(voBMother, 1, new TGeoTranslation(0.,0.,0.)); + l3->AddNode(voL3DoorR, 1, new TGeoTranslation(0., 0., 0.)); + l3->AddNode(voL3DoorR, 2, new TGeoCombiTrans(0., 0., 0., rotxz)); + l3->AddNode(voL3DoorL, 1, new TGeoTranslation(0., 0., 0.)); + l3->AddNode(voL3DoorL, 2, new TGeoCombiTrans(0., 0., 0., rotxz)); + l3->AddNode(voL3PlugSPR, 1, new TGeoTranslation(0., 0., 0.)); + l3->AddNode(voL3PlugSPR, 2, new TGeoCombiTrans(0., 0., 0., rotxz)); + l3->AddNode(voL3PlugSPL, 1, new TGeoTranslation(0., 0., 0.)); + l3->AddNode(voL3PlugSPL, 2, new TGeoCombiTrans(0., 0., 0., rotxz)); + top->AddNode(l3, 1, new TGeoTranslation(0., os, 0.)); } //_____________________________________________________________________________ @@ -228,30 +346,43 @@ void AliMAG::CreateMaterials() // Create materials for L3 magnet // - 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(); Float_t epsil, stmin, deemax, tmaxfd, stemax; // --- Define the various materials for GEANT --- - + // Steel + Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; + Float_t zsteel[4] = { 26.,24.,28.,14. }; + Float_t wsteel[4] = { .715,.18,.1,.005 }; Float_t aAir[4]={12.0107,14.0067,15.9994,39.948}; 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 aWater[2]={1.00794,15.9994}; + Float_t zWater[2]={1.,8.}; + Float_t wWater[2]={0.111894,0.888106}; + // Aluminum - AliMaterial(9, "Al$", 26.98, 13., 2.7, 8.9, 37.2); - AliMaterial(29, "Al$", 26.98, 13., 2.7, 8.9, 37.2); + AliMaterial(9, "Al0$", 26.98, 13., 2.7, 8.9, 37.2); + AliMaterial(29, "Al1$", 26.98, 13., 2.7, 8.9, 37.2); + // Stainless Steel + AliMixture(19, "STAINLESS STEEL1", asteel, zsteel, 7.88, 4, wsteel); + AliMixture(39, "STAINLESS STEEL2", asteel, zsteel, 7.88, 4, wsteel); + AliMixture(59, "STAINLESS STEEL3", asteel, zsteel, 7.88, 4, wsteel); // Iron - AliMaterial(10, "Fe$", 55.85, 26., 7.87, 1.76, 17.1); - AliMaterial(30, "Fe$", 55.85, 26., 7.87, 1.76, 17.1); + AliMaterial(10, "Fe0$", 55.85, 26., 7.87, 1.76, 17.1); + AliMaterial(30, "Fe1$", 55.85, 26., 7.87, 1.76, 17.1); // Air - AliMixture(15, "AIR$ ", aAir, zAir, dAir, 4, wAir); - AliMixture(35, "AIR$ ", aAir, zAir, dAir, 4, wAir); + AliMixture(15, "AIR0$ ", aAir, zAir, dAir, 4, wAir); + AliMixture(35, "AIR1$ ", aAir, zAir, dAir, 4, wAir); + // Water + AliMixture(16, "WATER", aWater, zWater, 1., 2, wWater); + // **************** // Defines tracking media parameters. @@ -278,14 +409,12 @@ void AliMAG::CreateMaterials() AliMedium(15, "AIR_C0 ", 15, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin); AliMedium(35, "AIR_C1 ", 35, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin); -} - -//_____________________________________________________________________________ -void AliMAG::DrawModule() -{ - // - // Draw a shaded view of the L3 magnet - // + // Steel + AliMedium(19, "ST_C0 ", 19, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin); + AliMedium(39, "ST_C1 ", 39, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin); + AliMedium(59, "ST_C3 ", 59, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin); + // WATER + AliMedium(16, "WATER ", 16, 0, isxfld, sxmgmx, tmaxfd, stemax, deemax, epsil, stmin); } //_____________________________________________________________________________ @@ -295,7 +424,7 @@ void AliMAG::Init() // Initialise L3 magnet after it has been built Int_t i; // - if(fDebug) { + if(AliLog::GetGlobalDebugLevel()>0) { printf("\n%s: ",ClassName()); for(i=0;i<35;i++) printf("*"); printf(" MAG_INIT ");