TGeoMedium* kMedPbSh = gGeoManager->GetMedium("SHIL_PB_C2");
//
TGeoMedium* kMedConcSh = gGeoManager->GetMedium("SHIL_CC_C2");
+//
+ TGeoMedium* kMedCastiron = gGeoManager->GetMedium("SHIL_CAST_IRON0");
+ TGeoMedium* kMedCastironSh = gGeoManager->GetMedium("SHIL_CAST_IRON2");
//
const Float_t kDegRad = TMath::Pi() / 180.;
const Float_t kAngle02 = TMath::Tan( 2.00 * kDegRad);
// Outer radius at the end of the tail
Float_t rOuFaWTailE = 31.6/2.;
// Total length of the tail
- Float_t dzFaWTail = 70.7;
+ const Float_t dzFaWTail = 70.7;
TGeoPcon* shFaWTail = new TGeoPcon(0., 360., 10);
z = 0.;
dz = 0.;
dz += kFaWring2HWidth;
- asFaExtraShield->AddNode(voFaWring2, 1, new TGeoCombiTrans(0., 0., dz, rot090));
- asFaExtraShield->AddNode(voFaWring2, 2, new TGeoCombiTrans(0., 0., dz, rot270));
+ asFaExtraShield->AddNode(voFaWring2, 1, new TGeoCombiTrans(0., 0., dz, rot180));
+ asFaExtraShield->AddNode(voFaWring2, 2, new TGeoCombiTrans(0., 0., dz, rot000));
dz += kFaWring2HWidth;
dz += kFaDWrings;
dz += kFaWring3HWidth;
- asFaExtraShield->AddNode(voFaWring3, 1, new TGeoCombiTrans(0., 0., dz, rot000));
- asFaExtraShield->AddNode(voFaWring3, 2, new TGeoCombiTrans(0., 0., dz, rot180));
+ asFaExtraShield->AddNode(voFaWring3, 1, new TGeoCombiTrans(0., 0., dz, rot090));
+ asFaExtraShield->AddNode(voFaWring3, 2, new TGeoCombiTrans(0., 0., dz, rot270));
dz += kFaWring3HWidth;
dz += kFaWring5HWidth;
asFaExtraShield->AddNode(voFaWring5, 1, new TGeoTranslation(0., 0., dz));
dz += kFaWring5HWidth;
dz += kFaWring3HWidth;
- asFaExtraShield->AddNode(voFaWring3, 3, new TGeoCombiTrans(0., 0., dz, rot090));
- asFaExtraShield->AddNode(voFaWring3, 4, new TGeoCombiTrans(0., 0., dz, rot270));
+ asFaExtraShield->AddNode(voFaWring3, 3, new TGeoCombiTrans(0., 0., dz, rot180));
+ asFaExtraShield->AddNode(voFaWring3, 4, new TGeoCombiTrans(0., 0., dz, rot000));
dz += kFaWring3HWidth;
dz += kFaDWrings;
dz += kFaWring2HWidth;
- asFaExtraShield->AddNode(voFaWring2, 3, new TGeoCombiTrans(0., 0., dz, rot000));
- asFaExtraShield->AddNode(voFaWring2, 4, new TGeoCombiTrans(0., 0., dz, rot180));
+ asFaExtraShield->AddNode(voFaWring2, 3, new TGeoCombiTrans(0., 0., dz, rot090));
+ asFaExtraShield->AddNode(voFaWring2, 4, new TGeoCombiTrans(0., 0., dz, rot270));
dz += kFaWring2HWidth;
// Inner radius of flange FA side
Float_t rInFaSaa1F2 = 25.2/2.;
// Length of joint
- Float_t dzFaSaa1 = 34.8;
+ const Float_t dzFaSaa1 = 34.8;
// Outer Radius at the end of the joint
Float_t rOuFaSaa1E = 41.93/2.;
// Drawing ALIP2A__0107 //
///////////////////////////////////
// Total length
- Float_t dzSaa1 = 659.2;
+ const Float_t dzSaa1 = 659.2;
//
TGeoPcon* shSaa1M = new TGeoPcon(0., 360., 20);
Float_t kSec = 0.2; // security distance to avoid trivial extrusions
Float_t saa1Wring3Router = 23.40;
Float_t saa1Wring3HWidth = 3.75;
Float_t saa1Wring3Cutoffx = 4.50;
- Float_t saa1Wring3Cutoffy = 4.40;
+ Float_t saa1Wring3Cutoffy = 4.50;
TGeoTubeSeg* shSaa1Wring3a = new TGeoTubeSeg(saa1Wring3Rinner, saa1Wring3Router, saa1Wring3HWidth, 0., 90.);
shSaa1Wring3a->SetName("shSaa1Wring3a");
TGeoBBox* shSaa1Wring3b = new TGeoBBox(saa1Wring3Router / 2., saa1Wring3Router / 2., saa1Wring3HWidth);
Float_t dzSaa1Saa2F2 = 3.1;
Float_t rInSaa1Saa2F2 = 54.1/2.;
// Total length
- Float_t dzSaa1Saa2 = 34.9;
+ const Float_t dzSaa1Saa2 = 34.9;
TGeoPcon* shSaa1Saa2Pb = new TGeoPcon(0., 360., 8);
tanAlpha = TMath::Tan(1.89 / 2. * kDegRad);
TGeoPcon* shSaa2PbComp = new TGeoPcon(0., 360., 16);
// Total length
- Float_t dzSaa2PbComp = 512.;
+ const Float_t dzSaa2PbComp = 512.;
// Length of 1st bellow recess
Float_t dzSaa2PbCompB1 = 24.;
// Length of 2nd bellow recess
// Drawing ALIP2A__0284 //
///////////////////////////////////
// Block
- TGeoBBox* shSaa3CCBlockO = new TGeoBBox(80./2., 80./2., 100./2.);
+ TGeoBBox* shSaa3CCBlockO = new TGeoBBox(80./2., 80./2., 80./2.); // modified by ernesto.calvo@pucp.edu.pe
shSaa3CCBlockO->SetName("Saa3CCBlockO");
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);
+ // + 10.0 cm // ecv
+ shSaa3InnerRegion->DefineSection( 0, -50.0, 0., 27.1);
+ shSaa3InnerRegion->DefineSection( 1, -13.0, 0., 27.1);
+ shSaa3InnerRegion->DefineSection( 2, 39.1, 0., 12.3);
+ shSaa3InnerRegion->DefineSection( 3, 80.0, 0., 12.3);
shSaa3InnerRegion->SetName("Saa3InnerRegion");
TGeoCompositeShape* shSaa3CCBlock = new TGeoCompositeShape("Saa3CCBlock", "Saa3CCBlockO-Saa3InnerRegion");
voSaa3->AddNode(voSaa3CCBlock, 1, gGeoIdentity);
-// Plate 1: 240 cm x 80 cm x 100 cm (x 2)
+// Plate 1: 240 cm x 80 cm x 80 cm (x 2)
TGeoVolume* voSaa3SteelPlate1 = new TGeoVolume("YSAA3SteelPlate1",
- new TGeoBBox(240./2., 80./2., 100./2.),
+ new TGeoBBox(240./2., 80./2., 80./2.),
kMedSteelSh);
TGeoVolume* voSaa3SteelPlate11 = new TGeoVolume("YSAA3SteelPlate11",
new TGeoBBox(240./2., 80./2., 10./2.),
kMedSteel);
- voSaa3SteelPlate1->AddNode(voSaa3SteelPlate11, 1, new TGeoTranslation(0., 0., -45.));
+ voSaa3SteelPlate11->SetVisContainers(kTRUE);
+ voSaa3SteelPlate1 ->SetVisibility(kTRUE);
+ voSaa3SteelPlate1->AddNode(voSaa3SteelPlate11, 1, new TGeoTranslation(0., 0., -35.));
voSaa3->AddNode(voSaa3SteelPlate1, 1, new TGeoTranslation(0., +80., 0.));
voSaa3->AddNode(voSaa3SteelPlate1, 2, new TGeoTranslation(0., -80., 0.));
-// Plate 2: 80 cm x 80 cm x 100 cm (x 2)
+// Plate 2: 80 cm x 80 cm x 80 cm (x 2)
TGeoVolume* voSaa3SteelPlate2 = new TGeoVolume("YSAA3SteelPlate2",
- new TGeoBBox( 80./2., 80./2., 100./2.),
+ new TGeoBBox( 80./2., 80./2., 80./2.),
kMedSteelSh);
TGeoVolume* voSaa3SteelPlate21 = new TGeoVolume("YSAA3SteelPlate21",
new TGeoBBox( 80./2., 80./2., 10./2.),
kMedSteel);
- voSaa3SteelPlate2->AddNode(voSaa3SteelPlate21, 1, new TGeoTranslation(0., 0., -45.));
-
+ voSaa3SteelPlate2->AddNode(voSaa3SteelPlate21, 1, new TGeoTranslation(0., 0., -35.));
voSaa3->AddNode(voSaa3SteelPlate2, 1, new TGeoTranslation(+80, 0., 0.));
voSaa3->AddNode(voSaa3SteelPlate2, 2, new TGeoTranslation(-80, 0., 0.));
+
+
///////////////////////////////////
// Muon Filter //
// Drawing ALIP2A__0105 //
///////////////////////////////////
// Half Length
- Float_t dzMuonFilter = 60.;
+ const Float_t dzMuonFilter = 60.;
TGeoBBox* shMuonFilterO = new TGeoBBox(550./2., 620./2., dzMuonFilter);
shMuonFilterO->SetName("FilterO");
TGeoCompositeShape* shMuonFilter = new TGeoCompositeShape("MuonFilter", "FilterO-FilterI:trFilter");
//
// !!!!! Needs to be inclined
- TGeoVolume* voMuonFilter = new TGeoVolume("YMuonFilter", shMuonFilter, kMedSteel);
+ TGeoVolume* voMuonFilter = new TGeoVolume("YMuonFilter", shMuonFilter, kMedCastiron);
// Inner part with higher transport cuts
Float_t dzMuonFilterH = 50.;
TGeoTube* shMuonFilterIH = new TGeoTube(0., 50., dzMuonFilterH + 5.);
shMuonFilterIH->SetName("FilterIH");
TGeoCompositeShape* shMuonFilterH = new TGeoCompositeShape("MuonFilterH", "FilterOH-FilterIH:trFilter");
- TGeoVolume* voMuonFilterH = new TGeoVolume("YMuonFilterH", shMuonFilterH, kMedSteelSh);
+ TGeoVolume* voMuonFilterH = new TGeoVolume("YMuonFilterH", shMuonFilterH, kMedCastironSh);
voMuonFilter->AddNode(voMuonFilterH, 1, gGeoIdentity);
//
TGeoVolumeAssembly* voSaa = new TGeoVolumeAssembly("YSAA");
//
-//
-//
-//
-//
// Starting position of the FA Flange/Tail
- Float_t ziFaWTail = 499.0;
+ const Float_t ziFaWTail = 499.0;
// End of the FA Flange/Tail
- Float_t zoFaWTail = ziFaWTail + dzFaWTail;
+ const Float_t zoFaWTail = ziFaWTail + dzFaWTail;
// Starting position of the FA/SAA1 Joint (2.8 cm overlap with tail)
- Float_t ozFaSaa1 = 2.8;
- Float_t ziFaSaa1 = zoFaWTail - ozFaSaa1;
+ const Float_t ozFaSaa1 = 2.8;
+ const Float_t ziFaSaa1 = zoFaWTail - ozFaSaa1;
// End of the FA/SAA1 Joint
- Float_t zoFaSaa1 = ziFaSaa1 + dzFaSaa1;
+ const Float_t zoFaSaa1 = ziFaSaa1 + dzFaSaa1;
// Starting position of SAA1 (2.0 cm overlap with joint)
- Float_t ozSaa1 = 2.;
- Float_t ziSaa1 = zoFaSaa1 - ozSaa1;
+ const Float_t ozSaa1 = 2.;
+ const Float_t ziSaa1 = zoFaSaa1 - ozSaa1;
// End of SAA1
- Float_t zoSaa1 = ziSaa1 + dzSaa1;
+ const Float_t zoSaa1 = ziSaa1 + dzSaa1;
// Starting position of SAA1/SAA2 Joint (1.95 cm overlap with SAA1)
- Float_t ziSaa1Saa2 = zoSaa1 - 1.95;
+ const Float_t ziSaa1Saa2 = zoSaa1 - 1.95;
// End of SAA1/SAA2 Joint
- Float_t zoSaa1Saa2 = ziSaa1Saa2 + dzSaa1Saa2;
+ const Float_t zoSaa1Saa2 = ziSaa1Saa2 + dzSaa1Saa2;
// Starting position of SAA2 (3.1 cm overlap with the joint)
- Float_t ziSaa2 = zoSaa1Saa2 - 3.1;
+ const Float_t ziSaa2 = zoSaa1Saa2 - 3.1;
// End of SAA2
- Float_t zoSaa2 = ziSaa2 + dzSaa2PbComp;
+ const Float_t zoSaa2 = ziSaa2 + dzSaa2PbComp;
// Position of SAA3
- Float_t zcSaa3 = zoSaa2 + 50.;
+ const Float_t zcSaa3 = zoSaa2 + 40.; // ecv (put the CC block 5cm closer to the Wall) // <--cancell that!! (cancelled)
// Position of the Muon Filter
- Float_t zcFilter = 1465.9 + dzMuonFilter;
+ const Float_t zcFilter = 1465.9 + dzMuonFilter;
voSaa->AddNode(voFaWTail, 1, new TGeoTranslation(0., 0., ziFaWTail));
voSaa->AddNode(voFaSaa1, 1, new TGeoTranslation(0., 0., ziFaSaa1));
voSaa->AddNode(voSaa1 , 1, new TGeoTranslation(0., 0., ziSaa1));
voSaa->AddNode(voSaa1Saa2, 1, new TGeoTranslation(0., 0., ziSaa1Saa2 - 0.1));
voSaa->AddNode(voSaa2 , 1, new TGeoTranslation(0., 0., ziSaa2));
+
+//
+// Add Saa3 to Saa and Saa to top volume
+//
voSaa->AddNode(voSaa3, 1, new TGeoTranslation(0., 0., zcSaa3));
TGeoRotation* rotxz = new TGeoRotation("rotxz", 90., 0., 90., 90., 180., 0.);
top->AddNode(voSaa, 1, new TGeoCombiTrans(0., 0., 0., rotxz));
+
+
+
//
// Mother volume for muon stations 1+2 and shielding material placed between the quadrants
//
voYOUT1->SetVisibility(0);
voYOUT1->AddNode(asSaa1ExtraShield, 1, new TGeoCombiTrans(0., 0., - (100.7 + 62.2 + saa1ExtraShieldL / 2. + ziFaWTail), rotxz));
- voYOUT1->AddNode(asFaExtraShield, 1, new TGeoCombiTrans(0., 0., - (16.41 + kFaWring2HWidth + ziFaWTail), rotxz));
+ voYOUT1->AddNode(asFaExtraShield, 1, new TGeoCombiTrans(0., 0., - (16.41 - 1.46 + kFaWring2HWidth + ziFaWTail), rotxz));
top->AddNode(voYOUT1, 1, gGeoIdentity);
//
// Mother volume for muon stations 4+5 and trigger stations.
InvertPcon(shYOUT21);
shYOUT21->SetName("shYOUT21");
- TGeoBBox* shYOUT22 = new TGeoBBox(460. , 200., 65.);
+ TGeoBBox* shYOUT22 = new TGeoBBox(460. , 200., 65. - 1.5);
shYOUT22->SetName("shYOUT22");
TGeoTranslation* tYOUT22 = new TGeoTranslation(0., -310. - 200., -zcFilter);
delete[] rmax;
}
-TGeoPcon* AliSHILv3::MakeShapeFromTemplate(TGeoPcon* pcon, Float_t drMin, Float_t drMax)
+TGeoPcon* AliSHILv3::MakeShapeFromTemplate(const TGeoPcon* pcon, Float_t drMin, Float_t drMax)
{
//
// Returns new shape based on a template changing