* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id $ */
+/* $Id$ */
//-------------------------------------------------------------------------
// The small angle absorber SAA (beam shield)
//
///////////////////////////////////
// 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");
// 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);
//
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);
}