- Float_t rfvacu0[8], rfvacu1[8], rfvacu2[8], rfvacu3[8], rfvacu4[8], rfvacu5[8];
-
- for (ifl=0; ifl<7; ifl++) {
- rfluka1[ifl] = par2[4+3*ifl];
- rfluka2[ifl] = par2[5+3*ifl]-dRSteel2;
- rfluka3[ifl] = par2[5+3*ifl];
- rfvacu5[ifl] = r2V;
- rfvacu4[ifl]=rfvacu5[0]+dTubeS;
- rfvacu3[ifl]=rfvacu4[0]+dInsuS;
- rfvacu2[ifl]=rfvacu3[0]+dEnveS;
- rfvacu1[ifl]=rfvacu2[0]+dFreeS;
- rfvacu0[ifl]=rfvacu1[0]+dProtS;
- }
-
- char* materials1[11]
- = {"VACUUM", "STEEL", "PIPEINSU", "STEEL", "AIR", "STEEL", "AIR", "NIW",
- "NIW", "STEEL"};
- char* fields1[11]
- = {"MF", "MF", "MF", "MF", "MF", "MF", "MF", "MF", "MF", "MF", "MF"};
- char* cuts1[11]
- = {"$SHH","$SHH","$SHH","$SHH","$SHH","$SHH","$SHH", "$SHH","$SHH","$SHS", "$SHS"};
-
-
- rf1[0]=0.; rf1[1]=rfvacu5[0]; rf1[2]=rfvacu4[0]; rf1[3]=rfvacu3[0];
- rf1[4]=rfvacu2[0]; rf1[5]=rfvacu1[0]; rf1[6]=rfvacu0[0];
- rf1[7]=rfluka1[0]; rf1[9]=R11-dRSteel1;
- rf1[10]=R21;
- for (Int_t i=1; i<7; i++) rf2[i]=rf1[i]+4.*TMath::Tan(thetaOpenB);
- rf2[7]=rf1[7]+4.*TMath::Tan(thetaOpen2);
- rf2[9]=rf1[9]; rf2[10]=rf1[10];
- rf1[8]=13.;
- rf2[8]=rf1[8]+4.*TMath::Tan(thetaOpenPb);
-
- flukaGeom->Comment("2nd part: Beam pipe lateral struture (1)");
- flukaGeom->OnionCone(rf1, rf2, 11 , zvac4, zvac4+4, posfluka, materials1, fields1, cuts1);
-
-
- for (Int_t i=0; i<11; i++) rf1[i]=rf2[i];
- for (Int_t i=1; i<7; i++)
- rf2[i]=rf1[i]+(zvac6-zvac4-4.)*TMath::Tan(thetaOpenB);
- rf2[7]=rf1[7]+(zvac6-zvac4-4.)*TMath::Tan(thetaOpen2);
- rf2[8]=rf1[8]+(zvac6-zvac4-4.)*TMath::Tan(thetaOpenPb);
- rf1[9]=R21-dRSteel2;
- rf1[10]=R21;
- rf2[9]=R21-dRSteel2;
- rf2[10]=R21;
- flukaGeom->Comment("2nd part: Beam pipe lateral struture (2)");
- flukaGeom->OnionCone(rf1, rf2, 11 , zvac4+4, zvac6, posfluka, materials1, fields1, cuts1);
-
- for (Int_t i=0; i<11; i++) rf1[i]=rf2[i];
- for (Int_t i=1; i<7; i++)
- rf2[i]=rf1[i]+4.*TMath::Tan(thetaOpenB);
- rf2[7]=rf1[7]+4.*TMath::Tan(thetaOpen2);
-
- rf2[8]=rf1[8]+4.*TMath::Tan(thetaOpenPb);
- rf1[9]=R21-dRSteel2;
- rf2[9]=R21-dRSteel2;
- rf1[10]=1;
- rf2[10]=-1;
- flukaGeom->Comment("2nd part: Beam pipe lateral struture (3)");
- flukaGeom->OnionCone(rf1, rf2, 11 , zvac6, zvac6+4, posfluka, materials1, fields1, cuts1);
-
-
- for (Int_t i=0; i<11; i++) rf1[i]=rf2[i];
- for (Int_t i=1; i<7; i++)
- rf2[i]=rf1[i]+(zPb-(zvac6-4.))*TMath::Tan(thetaOpenB);
- rf2[7]=rf1[7]+(zPb-(zvac6-4.))*TMath::Tan(thetaOpen2);
-
- rf2[8]=rf1[8]+(zPb-(zvac6-4.))*TMath::Tan(thetaOpenPb);
- rf1[9]=(zvac6+4)*TMath::Tan(accMin)-dRSteel2;
- rf2[9]=zPb*TMath::Tan(accMin)-dRSteel2;
- rf1[10]=1.;
- rf2[10]=-1.;
- flukaGeom->Comment("2nd part: Beam pipe lateral struture (4)");
- flukaGeom->OnionCone(rf1, rf2, 11 , zvac6+4, zPb, posfluka, materials1, fields1, cuts1);
-
+ Float_t r3V = 0.;
+
+ if (fWriteGeometry) {
+ char* materials1[8]
+ = {"VACUUM", "STEEL", "PIPEINSU", "STEEL", "AIR", "NIW", "NIW", "STEEL"};
+ char* fields1[8]
+ = {"MF", "MF", "MF", "MF", "MF", "MF", "MF", "MF"};
+ char* cuts1[8]
+ = {"$SHH","$SHH","$SHH","$SHH","$SHH","$SHH","$SHH","$SHH"};
+
+ flukaGeom->Comment("2nd part: Beam shield lateral struture (0)");
+ // until end of recess 1
+ rf1[0] = 0.; rf1[1] = r2V; rf1[2] = rf1[1] + dTubeS; rf1[3] = rf1[2] + kDInsuS;
+ rf1[4] = rf1[3] + kDEnveS; rf1[5] = r2; rf1[6] = rf1[5]+2.;
+ rf1[7] = kR11-kDRSteel1; rf1[8] = kR21;
+
+ for (i=1; i<7; i++) rf2[i]=rf1[i]+4.*TMath::Tan(kThetaOpenB);
+ rf2[7] = rf1[7];
+ rf2[8] = rf1[8];
+ flukaGeom->OnionCone(rf1, rf2, 9 , kZvac4, kZvac4+4, posfluka, materials1, fields1, cuts1);
+
+ flukaGeom->Comment("2nd part: Beam shield lateral struture (1)");
+ // until end of recess 2
+ for (i=0; i<9; i++) rf1[i]=rf2[i];
+ rf1[7] = kR21-kDRSteel2; rf1[8] = kR21;
+ for (i=1; i<9; i++) rf2[i]=rf1[i]+(kZvac6-kZvac4-4.)*TMath::Tan(kThetaOpenB);
+ rf2[7] = rf1[7];
+ rf2[8] = rf1[8];
+ flukaGeom->OnionCone(rf1, rf2, 9 , kZvac4+4, kZvac6, posfluka, materials1, fields1, cuts1);
+
+ flukaGeom->Comment("2nd part: Beam shield lateral struture (2)");
+ // steel recess
+ for (i=0; i<9; i++) rf1[i]=rf2[i];
+ rf1[8] = kZvac6*TMath::Tan(kAccMin);
+ rf1[7] = kR21-kDRSteel2;
+
+ for (i=1; i<9; i++) rf2[i]=rf1[i]+4.*TMath::Tan(kThetaOpenB);
+ rf2[7] = rf1[7];
+
+ rf2[8] = -(rf1[8]+4.*TMath::Tan(kAccMin));
+ rf1[8] = -rf1[8];
+
+ flukaGeom->OnionCone(rf1, rf2, 9 , kZvac6, kZvac6+4, posfluka, materials1, fields1, cuts1);
+ rf1[8] = -rf1[8];
+ rf2[8] = -rf2[8];