X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STRUCT%2FAliHALLv3.cxx;h=becb3e911a6a00f6bffe27cbe4660774548d85f5;hb=af6a50bbbb153c6b9e953722fa0506f244ca275e;hp=63f4657b1418c5bae8a5b63c71d8fd51e5cc4e62;hpb=b8bb2f2aaee678e17858119b4e34a81bac312944;p=u%2Fmrichter%2FAliRoot.git diff --git a/STRUCT/AliHALLv3.cxx b/STRUCT/AliHALLv3.cxx index 63f4657b141..becb3e911a6 100644 --- a/STRUCT/AliHALLv3.cxx +++ b/STRUCT/AliHALLv3.cxx @@ -83,8 +83,8 @@ void AliHALLv3::CreateGeometry() // Rotations // rotation by 90 deg in the y-z plane - TGeoRotation* rot000 = new TGeoRotation("rot000", 90., 0., 0., 0., 90., 90.); - TGeoRotation* rot001 = new TGeoRotation("rot001", 270., 0., 90., 90., 0., 0.); + TGeoRotation* rot000 = new TGeoRotation("rot000", 90., 0.,180., 0., 90., 90.); + TGeoRotation* rot001 = new TGeoRotation("rot001", 270., 0., 90., 90., 180., 0.); // Materials TGeoMedium* kMedCC = gGeoManager->GetMedium("HALL_CC_C2"); @@ -140,15 +140,15 @@ void AliHALLv3::CreateGeometry() new TGeoTrd1(xl +dl, xl, hullen, dh / 2.), kMedCC); r2 = hullen + zHall26; - asHall->AddNode(voHUFL, 1, new TGeoCombiTrans(70., -100. - dh / 2., -r2, rot000)); + asHall->AddNode(voHUFL, 1, new TGeoCombiTrans(70., -100. - dh / 2., -r2 - 0.755, rot000)); // // RB24/26 wall phid = phi * kRaddeg; TGeoVolume* voHUWA = new TGeoVolume("HUWA", - new TGeoTubeSeg(r, r+dr, hullen, phid - 90., 270. - phid), + new TGeoTubeSeg(r, r+dr, hullen, phid - 90. + 0.002, 270. - phid - 0.002), kMedCC); - asHall->AddNode(voHUWA, 1, new TGeoTranslation(70., 40., -zHall26 - hullen )); + asHall->AddNode(voHUWA, 1, new TGeoTranslation(70., 40., -zHall26 - hullen + 0.002 )); // // Air inside tunnel TGeoTube* shHUWAT1 = new TGeoTube(0., r, hullen); @@ -167,14 +167,14 @@ void AliHALLv3::CreateGeometry() TGeoCompositeShape* shHUWAT = new TGeoCompositeShape("HUWAT", "(shHUWAT1-shHUWAT2:tHUWAT2)-shHUWAT3:tHUWAT3"); TGeoVolume* voHUWAT = new TGeoVolume("HUWAT", shHUWAT, kMedAir); - asHall->AddNode(voHUWAT, 1, new TGeoTranslation(70., 40., -zHall26 - hullen)); + asHall->AddNode(voHUWAT, 1, new TGeoTranslation(70., 40., -zHall26 - hullen - 0.755)); // // Hall floor // RB26 side phid = 16.197; Float_t dzFloor26 = zHall26 - dzL3/2.; - TGeoBBox* shHHF1 = new TGeoBBox(dxFloor/2. + 470., dyFloor/2., dzFloor26/2.); + TGeoBBox* shHHF1 = new TGeoBBox(dxFloor/2. + 470., dyFloor/2., dzFloor26/2. - 0.002); shHHF1->SetName("shHHF1"); TGeoVolume* voHHF1 = new TGeoVolume("HHF1", shHHF1, kMedCC); asHall->AddNode(voHHF1, 2, new TGeoTranslation(0., yFloor, -(dzL3/2. + dzFloor26/2.))); @@ -200,7 +200,7 @@ void AliHALLv3::CreateGeometry() Float_t trALP1 = TMath::ATan((trBL1 - trTL1) / 2. / trH1) * kRaddeg; dx = 1.5 * trBL1 - 0.5 * trTL1 + dxFloor/2. + dyFloor * TMath::Tan(phid * kDegrad); TGeoVolume* voHHW11 = new TGeoVolume("HHW11", - new TGeoTrap(dzFloor26/2., 0., 0., + new TGeoTrap(dzFloor26/2. - 0.002, 0., 0., trH1, trBL1, trTL1, trALP1, trH1, trBL1, trTL1, trALP1), kMedCC); TGeoVolume* voHHW12 = new TGeoVolume("HHW12", @@ -212,13 +212,13 @@ void AliHALLv3::CreateGeometry() asHall->AddNode(voHHW12, 1, new TGeoTranslation( dx, dy, (dzL3/2. + dzFloor24/2.))); asHall->AddNode(voHHW12, 2, new TGeoCombiTrans (-dx, dy, (dzL3/2. + dzFloor24/2.), rot001)); - asHall->AddNode(voHHW11, 3, new TGeoTranslation( dx, dy, -(dzL3/2. + dzFloor26/2.))); - asHall->AddNode(voHHW11, 4, new TGeoCombiTrans (-dx, dy, -(dzL3/2. + dzFloor26/2.), rot001)); + asHall->AddNode(voHHW11, 1, new TGeoTranslation( dx, dy, -(dzL3/2. + dzFloor26/2.))); + asHall->AddNode(voHHW11, 2, new TGeoCombiTrans (-dx, dy, -(dzL3/2. + dzFloor26/2.), rot001)); Float_t boDY = (yHall - (yFloor + dyFloor/2.) - 2. * trH1)/ 2.; Float_t dzHall = zHall26 + zHall24; - TGeoVolume* voHBW1 = new TGeoVolume("HBW1", new TGeoBBox(50., boDY, dzHall / 2.), kMedCC); + TGeoVolume* voHBW1 = new TGeoVolume("HBW1", new TGeoBBox(50., boDY, dzHall / 2. - 0.05), kMedCC); asHall->AddNode(voHBW1, 1, new TGeoTranslation( 1120., yHall - boDY, (zHall24-zHall26)/2.)); asHall->AddNode(voHBW1, 2, new TGeoTranslation(-1120., yHall - boDY, (zHall24-zHall26)/2.)); @@ -231,7 +231,7 @@ void AliHALLv3::CreateGeometry() am = hm * TMath::Tan(phim / 2. * kDegrad); bm = (hm + 76.) / hm * am; cm = bm * 2. / TMath::Sqrt(2.); - trH1 = (1273.78 - cm) / 2.; + trH1 = (1273.78 - cm) / 2. - 0.002; trBL1 = 235. - cm * TMath::Tan(phid * kDegrad) / 2.; trTL1 = 50.; trALP1 = TMath::ATan((trBL1 - trTL1) / 2. / trH1) * kRaddeg; @@ -240,7 +240,7 @@ void AliHALLv3::CreateGeometry() dx = cm * TMath::Tan(phid * kDegrad) + dxFloor/2. + trBL1 * 1.5 - trTL1 * .5; TGeoVolume* voHHW2 = new TGeoVolume("HHW2", - new TGeoTrap(dzL3/2., 0., 0., + new TGeoTrap(dzL3/2. - 0.002, 0., 0., trH1, trBL1, trTL1, trALP1, trH1, trBL1, trTL1, trALP1), kMedCC); @@ -271,10 +271,10 @@ void AliHALLv3::CreateGeometry() TGeoVolume* voHHF2 = new TGeoVolume("HHF2", - new TGeoTrd1(dx1FloorL3, dx2FloorL3, dzL3/2., dyFloorL3/2.), + new TGeoTrd1(dx1FloorL3 - 0.5, dx2FloorL3 - 0.5, dzL3/2., dyFloorL3/2.), kMedCC); - asHall->AddNode(voHHF2, 1, new TGeoCombiTrans(0., yFloor - dyFloor / 2. + dyFloorL3 / 2.,0., rot000)); + asHall->AddNode(voHHF2, 1, new TGeoCombiTrans(0., yFloor - dyFloor / 2. + dyFloorL3 / 2. - 0.5,0., rot000)); // // Tunnel roof and pit // Roof @@ -300,6 +300,7 @@ void AliHALLv3::CreateGeometry() // // Pit wall ground level + dy = yFloor + 1206. / 2. + dyFloor/2.; TGeoTube* shHHCPW1 = new TGeoTube(rPit, rPit + 100., 1206./2.); shHHCPW1->SetName("shHHCPW1"); TGeoCombiTrans* trHHCPW1 = new TGeoCombiTrans("trHHCPW1", 0., 0., 0., rot000); @@ -307,14 +308,21 @@ void AliHALLv3::CreateGeometry() TGeoBBox* shHHCPW2 = new TGeoBBox(rPit + 100., 1206./ 2. + 20., rPit + 100.); shHHCPW2->SetName("shHHCPW2"); + + TGeoTube* shHHCPW3 = new TGeoTube(0., 60., 60.); + shHHCPW3->SetName("shHHCPW3"); TGeoTranslation* trHHCPW2 = new TGeoTranslation("trHHCPW2", 0., 0., -(rPit + 100.) - oPit); trHHCPW2->RegisterYourself(); - TGeoCompositeShape* shHHCPW = new TGeoCompositeShape("HHCPW", "shHHCPW1:trHHCPW1-shHHCPW2:trHHCPW2"); + TGeoTranslation* trHHCPW3 = new TGeoTranslation("trHHCPW3", 0., -dy, rPit + 50.); + trHHCPW3->RegisterYourself(); + + TGeoCompositeShape* shHHCPW + = new TGeoCompositeShape("HHCPW", "shHHCPW1:trHHCPW1-(shHHCPW2:trHHCPW2+shHHCPW3:trHHCPW3)"); TGeoVolume* voHHCPW = new TGeoVolume("HHCPW", shHHCPW, kMedCC); - dy = yFloor + 1206. / 2. + dyFloor/2.; + asHall->AddNode(voHHCPW, 1, new TGeoTranslation(0., dy, 2300.)); // // Foundations of the Muon Spectrometer @@ -335,7 +343,7 @@ void AliHALLv3::CreateGeometry() ys += dy; dy = 91.32/2.; ys += dy; - TGeoVolume* voFmsMfTb1 = new TGeoVolume("FmsMfTb1", new TGeoBBox(330., dy, 90.), kMedCC); + TGeoVolume* voFmsMfTb1 = new TGeoVolume("FmsMfTb1", new TGeoBBox(330., dy, 60.), kMedCC); asFMS->AddNode(voFmsMfTb1, 1, new TGeoTranslation(0., ys, zFil)); ys += dy; dy = 41.14/2.; @@ -345,7 +353,7 @@ void AliHALLv3::CreateGeometry() // // Dipole foundation ys = yFloor + dyFloor / 2.; - dy = 263.54/2; + dy = (263.54 - 6.2)/2.; ys += dy; TGeoVolume* voFmsDf1 = new TGeoVolume("FmsDf1", new TGeoBBox(370., dy, 448.0 / 2.), kMedCC); asFMS->AddNode(voFmsDf1, 1, new TGeoTranslation(0., ys, zFil + 240. + 224.)); @@ -420,7 +428,10 @@ void AliHALLv3::CreateGeometry() // Opening for beam pipe TGeoBBox* shShPx24Pl2 = new TGeoBBox(15., 20., 60.); shShPx24Pl2->SetName("ShPx24Pl2"); - TGeoCompositeShape* shPx24Pl = new TGeoCompositeShape("Px24Pl", "ShPx24Pl1-ShPx24Pl2"); + TGeoTranslation* trPl2 = new TGeoTranslation("trPl2", -55., 0., 0.); + trPl2->RegisterYourself(); + + TGeoCompositeShape* shPx24Pl = new TGeoCompositeShape("Px24Pl", "ShPx24Pl1-ShPx24Pl2:trPl2"); TGeoVolume* voPx24Pl = new TGeoVolume("Px24Pl", shPx24Pl, kMedST); asShPx24->AddNode(voPx24Pl, 1, new TGeoTranslation(55., 0., -1205./2. + 40.)); asHall->AddNode(asFMS, 1, new TGeoTranslation(0., 0., 0.));