60   physicalTreatmentRoom(0),iortDetectorConstruction(0),
 
   63   solidFinalCollimatorIORT(0),
 
   64   logicFinalCollimatorIORT(0),
 
   65   physiFinalCollimatorIORT(0),
 
   67   solidGiunz1FinalCollIORT(0),
 
   68   logicGiunz1FinalCollIORT(0),
 
   69   physiGiunz1FinalCollIORT(0),
 
   71   solidGiunz2FinalCollIORT(0),  
 
   72   logicGiunz2FinalCollIORT(0),
 
   73   physiGiunz2FinalCollIORT(0),
 
   75   solidGiunz3FinalCollIORT(0),
 
   76   logicGiunz3FinalCollIORT(0),
 
   77   physiGiunz3FinalCollIORT(0),  
 
   79   solidGiunz3FinalCollIntIORT(0),
 
   80   logicGiunz3FinalCollIntIORT(0),
 
   81   physiGiunz3FinalCollIntIORT(0), 
 
   83   solidGiunz4FinalCollIORT(0),
 
   84   logicGiunz4FinalCollIORT(0),
 
   85   physiGiunz4FinalCollIORT(0),
 
   87   solidGiunz5FinalCollIORT(0),
 
   88   logicGiunz5FinalCollIORT(0),
 
   89   physiGiunz5FinalCollIORT(0),
 
  103   solidBlocco20mmIORT(0),
 
  104   logicBlocco20mmIORT(0),
 
  105   physiBlocco20mmIORT(0),  
 
  152   delete collimatorMessenger;
 
  153   delete iortDetectorConstruction;
 
  162   SetDefaultDimensions();
 
  165   ConstructCollimator100BeamLine();
 
  171   return physicalTreatmentRoom;
 
  184 void Collimator100BeamLine::SetDefaultDimensions()
 
  189   white -> SetVisibility(
true);
 
  193   blue -> SetVisibility(
true);
 
  197   gray-> SetVisibility(
true);
 
  201   red-> SetVisibility(
true);
 
  205   yellow-> SetVisibility(
true);
 
  209   green -> SetVisibility(
true);
 
  213   darkGreen -> SetVisibility(
true);
 
  217   darkOrange3 -> SetVisibility(
true);
 
  221   skyBlue -> SetVisibility(
true);
 
  228   G4double defaultOuterRadiusFinalCollimatorIORT = 55. *
mm;
 
  229   OuterRadiusFinalCollimatorIORT = defaultOuterRadiusFinalCollimatorIORT;
 
  231   G4double defaultinnerRadiusFinalCollimatorIORT = 50. *
mm;
 
  232   innerRadiusFinalCollimatorIORT = defaultinnerRadiusFinalCollimatorIORT;
 
  269   finalCollimatorMaterialIORT = PMMANist;
 
  272   Giunz1FinalCollMaterialIORT = PMMANist;
 
  275   Giunz2FinalCollMaterialIORT = PMMANist;
 
  278   Giunz3FinalCollMaterialIORT = PMMANist;
 
  281   Giunz3FinalCollMaterialIntIORT = airNist;
 
  284   Giunz4FinalCollMaterialIORT = PMMANist;
 
  287   Giunz5FinalCollMaterialIORT = PMMANist;
 
  290   Blocco1IORTMaterialIORT = PMMANist; 
 
  293   Blocco2IORTMaterialIORT = PMMANist; 
 
  296   Blocco3IORTMaterialIORT = PMMANist;
 
  299   Blocco20mmIORTMaterialIORT = PMMANist;
 
  302     CM1_1_2IORTMaterialIORT = aluminumNist;
 
  305     CM1_2_2IORTMaterialIORT = aluminumNist;
 
  308     CM2_1_2IORTMaterialIORT = aluminumNist;
 
  311     CM2_2_2IORTMaterialIORT = aluminumNist;
 
  314     CCMIORTMaterialIORT = PMMANist;
 
  317     PFS1IORTMaterialIORT = PMMANist;
 
  320     PFS2IORTMaterialIORT = PMMANist;
 
  323     PFS3IORTMaterialIORT = PMMANist;
 
  326     FTIORTMaterialIORT = titanioNist;
 
  329     VSIORTMaterialIORT = galacticNist;
 
  334 void Collimator100BeamLine::ConstructCollimator100BeamLine()
 
  346   G4Box* treatmentRoom = 
new G4Box(
"TreatmentRoom",worldX,worldY,worldZ);
 
  349                                                             "logicTreatmentRoom", 
 
  353                         "physicalTreatmentRoom", 
 
  391   const G4double XPositionVSIORT = -1062.797 *
mm;
 
  393   solidVSIORT = 
new G4Tubs(
"VSIORT", innRadiusVSIORT, 
 
  397                      spanningAngleVSIORT);
 
  400                                   VSIORTMaterialIORT, 
"VSIORT", 0, 0, 0);
 
  403                        "VSIORT", logicVSIORT, physicalTreatmentRoom, 
false, 0); 
 
  404   logVSIORT -> SetVisAttributes(green);
 
  425   const G4double XPositionFTIORT = -1061.791 *
mm;
 
  428   solidFTIORT = 
new G4Tubs(
"FTIORT", innRadiusFTIORT, 
 
  432                      spanningAngleFTIORT);
 
  435                                   FTIORTMaterialIORT, 
"FTIORT", 0, 0, 0);
 
  438                        "FTIORT", logFTIORT, physicalTreatmentRoom, 
false, 0); 
 
  440   logFTIORT -> SetVisAttributes(yellow);
 
  467   const G4double XPositionPFS3IORT = -1048.755 *
mm;
 
  470   solidPFS3IORT = 
new G4Tubs(
"PFS3IORT", innRadiusPFS3IORT, 
 
  474                     spanningAnglePFS3IORT);
 
  477                                   PFS3IORTMaterialIORT, 
"PFS3IORT", 0, 0, 0);
 
  480                        "PFS3IORT", logPFS3IORT, physicalTreatmentRoom, 
false, 0); 
 
  482   logPFS3IORT -> SetVisAttributes(white);
 
  494   const G4double XPositionPFS2IORT = -1044.255 *
mm;
 
  497   solidPFS2IORT = 
new G4Tubs(
"PFS2IORT", innRadiusPFS2IORT, 
 
  501                     spanningAnglePFS2IORT);
 
  504                                   PFS2IORTMaterialIORT, 
"PFS2IORT", 0, 0, 0);
 
  507                        "PFS2IORT", logPFS2IORT, physicalTreatmentRoom, 
false, 0); 
 
  509   logPFS2IORT -> SetVisAttributes(green);
 
  520   const G4double XPositionPFS1IORT = -1041.905 *
mm;
 
  523   solidPFS1IORT = 
new G4Tubs(
"PFS1IORT", innRadiusPFS1IORT, 
 
  527                     spanningAnglePFS1IORT);
 
  530                                   PFS1IORTMaterialIORT, 
"PFS1IORT", 0, 0, 0);
 
  533                        "PFS1IORT", logPFS1IORT, physicalTreatmentRoom, 
false, 0); 
 
  535   logPFS1IORT -> SetVisAttributes(green);
 
  546   const G4double XPositionCCMIORT = -1037.0125 *
mm;
 
  549   solidCCMIORT = 
new G4Tubs(
"CCMIORT", innRadiusCCMIORT, 
 
  553                     spanningAngleCCMIORT);
 
  556                                   CCMIORTMaterialIORT, 
"CCMIORT", 0, 0, 0);
 
  559                        "CCMIORT", logCCMIORT, physicalTreatmentRoom, 
false, 0); 
 
  561   logCCMIORT -> SetVisAttributes(green);
 
  568   const G4double outRadiusCM2_2_2IORT = 20. *
mm;
 
  572   const G4double spanningAngleCM2_2_2IORT = 360.*
deg;
 
  573   const G4double XPositionCM2_2_2IORT = -1041. *
mm;
 
  576   solidCM2_2_2IORT = 
new G4Tubs(
"CM2_2_2IORT", innRadiusCM2_2_2IORT, 
 
  577                     outRadiusCM2_2_2IORT,
 
  579                     startAngleCM2_2_2IORT, 
 
  580                     spanningAngleCM2_2_2IORT);
 
  583                                   CM2_2_2IORTMaterialIORT, 
"CM2_2_2IORT", 0, 0, 0);
 
  586                        "CM2_2_2ORT", logCM2_2_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  588   logCM2_2_2IORT -> SetVisAttributes(green);  
 
  595   const G4double outRadiusCM2_1_2IORT = 20. *
mm;
 
  599   const G4double spanningAngleCM2_1_2IORT = 360.*
deg;
 
  600   const G4double XPositionCM2_1_2IORT = -1039. *
mm;
 
  603   solidCM2_1_2IORT = 
new G4Tubs(
"CM2_1_2IORT", innRadiusCM2_1_2IORT, 
 
  604                     outRadiusCM2_1_2IORT,
 
  606                     startAngleCM2_1_2IORT, 
 
  607                     spanningAngleCM2_1_2IORT);
 
  610                                   CM2_1_2IORTMaterialIORT, 
"CM2_1_2IORT", 0, 0, 0);
 
  613                        "CM2_1_2ORT", logCM2_1_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  615   logCM2_1_2IORT -> SetVisAttributes(yellow); 
 
  621   const G4double outRadiusCM1_2_2IORT = 20. *
mm;
 
  625   const G4double spanningAngleCM1_2_2IORT = 360.*
deg;
 
  626   const G4double XPositionCM1_2_2IORT = -1037. *
mm;
 
  629   solidCM1_2_2IORT = 
new G4Tubs(
"CM1_2_2IORT", innRadiusCM1_2_2IORT, 
 
  630                     outRadiusCM1_2_2IORT,
 
  632                     startAngleCM1_2_2IORT, 
 
  633                     spanningAngleCM1_2_2IORT);
 
  636                               CM1_2_2IORTMaterialIORT, 
"CM1_2_2IORT", 0, 0, 0);
 
  639                        "CM1_2_2ORT", logCM1_2_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  642   logCM1_2_2IORT -> SetVisAttributes(yellow);
 
  648   const G4double outRadiusCM1_1_2IORT = 20. *
mm;
 
  652   const G4double spanningAngleCM1_1_2IORT = 360.*
deg;
 
  653   const G4double XPositionCM1_1_2IORT = -1035. *
mm;
 
  657   solidCM1_1_2IORT = 
new G4Tubs(
"CM1_1_2IORT", innRadiusCM1_1_2IORT, 
 
  658                     outRadiusCM1_1_2IORT,
 
  660                     startAngleCM1_1_2IORT, 
 
  661                     spanningAngleCM1_1_2IORT);
 
  664                                   CM1_1_2IORTMaterialIORT, 
"CM1_1_2IORT", 0, 0, 0);
 
  667                        "CM1_1_2ORT", logCM1_1_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  668   logCM1_1_2IORT -> SetVisAttributes(yellow);
 
  690   const G4double outRadiusBlocco20mmIORT = 36.5 *
mm;
 
  691   const G4double innRadiusBlocco20mmIORT = 10. *
mm;
 
  694   const G4double spanningAngleBlocco20mmIORT = 360.*
deg;
 
  695   const G4double XPositionBlocco20mmIORT = -1030. *
mm;
 
  698   solidBlocco20mmIORT = 
new G4Tubs(
"Blocco20mmIORT", innRadiusBlocco20mmIORT, 
 
  699                     outRadiusBlocco20mmIORT,
 
  701                     startAngleBlocco20mmIORT, 
 
  702                     spanningAngleBlocco20mmIORT);
 
  705                                   Blocco20mmIORTMaterialIORT, 
"Blocco20mmIORT", 0, 0, 0);
 
  708                        "Blocco20mmORT", logBlocco20mmIORT, physicalTreatmentRoom, 
false, 0); 
 
  711   logBlocco20mmIORT -> SetVisAttributes(green);
 
  718   const G4double outRadiusBlocco3IORT = 36.5 *
mm;
 
  719   const G4double innRadiusBlocco3IORT = 15. *
mm;
 
  722   const G4double spanningAngleBlocco3IORT = 360.*
deg;
 
  723   const G4double XPositionBlocco3IORT = -1023.5 *
mm;
 
  726   solidBlocco3IORT = 
new G4Tubs(
"Blocco3IORT", innRadiusBlocco3IORT, 
 
  727                     outRadiusBlocco3IORT,
 
  729                     startAngleBlocco3IORT, 
 
  730                     spanningAngleBlocco3IORT);
 
  733                                   Blocco3IORTMaterialIORT, 
"Blocco3IORT", 0, 0, 0);
 
  736                        "Blocco3ORT", logBlocco3IORT, physicalTreatmentRoom, 
false, 0); 
 
  739   logBlocco3IORT -> SetVisAttributes(yellow);
 
  745   const G4double outRadiusBlocco2IORT = 41.5 *
mm;
 
  746   const G4double innRadiusBlocco2IORT = 15. *
mm;
 
  749   const G4double spanningAngleBlocco2IORT = 360.*
deg;
 
  750   const G4double XPositionBlocco2IORT = -1012. *
mm;
 
  753   solidBlocco2IORT = 
new G4Tubs(
"Blocco2IORT", innRadiusBlocco2IORT, 
 
  754                     outRadiusBlocco2IORT,
 
  756                     startAngleBlocco2IORT, 
 
  757                     spanningAngleBlocco2IORT);
 
  760                                   Blocco2IORTMaterialIORT, 
"Blocco2IORT", 0, 0, 0);
 
  763                        "Blocco2IORT", logBlocco2IORT, physicalTreatmentRoom, 
false, 0); 
 
  766   logBlocco2IORT -> SetVisAttributes(red);
 
  772   const G4double outRadiusBlocco1IORT = 52.0 *
mm;
 
  773   const G4double innRadiusBlocco1IORT = 15. *
mm;
 
  776   const G4double spanningAngleBlocco1IORT = 360.*
deg;
 
  777   const G4double XPositionBlocco1IORT = -995.5*
mm;
 
  780   solidBlocco1IORT = 
new G4Tubs(
"Blocco1IORT", innRadiusBlocco1IORT, 
 
  781                     outRadiusBlocco1IORT,
 
  783                     startAngleBlocco1IORT, 
 
  784                     spanningAngleBlocco1IORT);
 
  787                                   Blocco1IORTMaterialIORT, 
"Blocco1IORT", 0, 0, 0);
 
  790                        "Blocco1IORT", logBlocco1IORT, physicalTreatmentRoom, 
false, 0); 
 
  793   logBlocco1IORT -> SetVisAttributes(white);
 
  810   const G4double outRadiusGiunz5FinalCollIORT = 48.25 *
mm;
 
  811   const G4double innRadiusGiunz5FinalCollIORT = 13.75 *
mm;
 
  812   const G4double hightGiunz5FinalCollIORT = 3.5 *
mm;
 
  813   const G4double startAngleGiunz5FinalCollIORT = 0.*
deg;
 
  814   const G4double spanningAngleGiunz5FinalCollIORT = 360.*
deg;
 
  815   const G4double Giunz5FinalCollXPositionIORT = -983.5 *
mm;
 
  819   solidGiunz5FinalCollIORT = 
new G4Tubs(
"Giunz5FinalCollIORT", innRadiusGiunz5FinalCollIORT, 
 
  820                     outRadiusGiunz5FinalCollIORT,
 
  821                     hightGiunz5FinalCollIORT, 
 
  822                     startAngleGiunz5FinalCollIORT, 
 
  823                     spanningAngleGiunz5FinalCollIORT);
 
  826                                   Giunz5FinalCollMaterialIORT, 
"Giunz5FinalCollIORT", 0, 0, 0);
 
  829                        "Giunz5FinalCollIORT", logGiunz5FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  831   logGiunz5FinalCollIORT -> SetVisAttributes(yellow);
 
  837   const G4double outRadiusGiunz4FinalCollIORT = 42. *
mm;
 
  838   const G4double innRadiusGiunz4FinalCollIORT = 13.75 *
mm;
 
  839   const G4double hightGiunz4FinalCollIORT = 8.5 *
mm;
 
  840   const G4double startAngleGiunz4FinalCollIORT = 0.*
deg;
 
  841   const G4double spanningAngleGiunz4FinalCollIORT = 360.*
deg;
 
  842   const G4double Giunz4FinalCollXPositionIORT = -971.5 *
mm;
 
  846   solidGiunz4FinalCollIORT = 
new G4Tubs(
"Giunz4FinalCollIORT", innRadiusGiunz4FinalCollIORT, 
 
  847                     outRadiusGiunz4FinalCollIORT,
 
  848                     hightGiunz4FinalCollIORT, 
 
  849                     startAngleGiunz4FinalCollIORT, 
 
  850                     spanningAngleGiunz4FinalCollIORT);
 
  853                                   Giunz4FinalCollMaterialIORT, 
"Giunz4FinalCollIORT", 0, 0, 0);
 
  856                        "Giunz4FinalCollIORT", logGiunz4FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  858   logGiunz4FinalCollIORT -> SetVisAttributes(blue); 
 
  866   const G4double outRadiusGiunz3FinalCollIORT = 42. *
mm;
 
  867   const G4double innRadiusGiunz3FinalCollIORT = 0. *
mm;
 
  868   const G4double hightGiunz3FinalCollIORT = 4.25 *
mm;
 
  869   const G4double startAngleGiunz3FinalCollIORT = 0.*
deg;
 
  870   const G4double spanningAngleGiunz3FinalCollIORT = 360.*
deg;
 
  871   const G4double Giunz3FinalCollXPositionIORT = -958.75 *
mm;
 
  874   solidGiunz3FinalCollIORT = 
new G4Tubs(
"Giunz3FinalCollIORT", innRadiusGiunz3FinalCollIORT, 
 
  875                     outRadiusGiunz3FinalCollIORT,
 
  876                     hightGiunz3FinalCollIORT, 
 
  877                     startAngleGiunz3FinalCollIORT, 
 
  878                     spanningAngleGiunz3FinalCollIORT);
 
  881                                   Giunz3FinalCollMaterialIORT, 
"Giunz3FinalCollIORT", 0, 0, 0);
 
  884                        "Giunz3FinalCollIORT", logicsolidGiunz3FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  886   logicsolidGiunz3FinalCollIORT -> SetVisAttributes(yellow);
 
  897   solidGiunz3FinalCollIntIORT = 
new G4Cons(
"Giunz3FinalCollIntIORT",0.*
mm,13.75*
mm,0.*
mm,22.25*
mm,4.25*
mm,0.*
deg,360.*
deg);
 
  900                                   Giunz3FinalCollMaterialIntIORT, 
"Giunz3FinalCollIntIORT", 0, 0, 0);
 
  902   physiGiunz3FinalCollIntIORT = 
new G4PVPlacement(0, 
G4ThreeVector(0.,0.,0.),
"Giunz3FinalCollIntIORT", logicsolidGiunz3FinalCollIntIORT,physiGiunz3FinalCollIORT, 
false, 0); 
 
  904   logicsolidGiunz3FinalCollIntIORT -> SetVisAttributes(yellow); 
 
  911   const G4double outRadiusGiunz2FinalCollIORT = 42. *
mm;
 
  912   const G4double innRadiusGiunz2FinalCollIORT = 22.25 *
mm;
 
  913   const G4double hightGiunz2FinalCollIORT = 5.75 *
mm;
 
  914   const G4double startAngleGiunz2FinalCollIORT = 0.*
deg;
 
  915   const G4double spanningAngleGiunz2FinalCollIORT = 360.*
deg;
 
  916   const G4double Giunz2FinalCollXPositionIORT = -948.75 *
mm;
 
  920   solidGiunz2FinalCollIORT = 
new G4Tubs(
"Giunz2FinalCollIORT", innRadiusGiunz2FinalCollIORT, 
 
  921                     outRadiusGiunz2FinalCollIORT,
 
  922                     hightGiunz2FinalCollIORT, 
 
  923                     startAngleGiunz2FinalCollIORT, 
 
  924                     spanningAngleGiunz2FinalCollIORT);
 
  927                                   Giunz2FinalCollMaterialIORT, 
"Giunz2FinalCollIORT", 0, 0, 0);
 
  930                        "Giunz2FinalCollIORT", logGiunz2FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  932   logGiunz2FinalCollIORT -> SetVisAttributes(red); 
 
  938   const G4double outRadiusGiunz1FinalCollIORT = 65. *
mm;
 
  939   const G4double innRadiusGiunz1FinalCollIORT = 22.25 *
mm;
 
  940   const G4double hightGiunz1FinalCollIORT = 10. *
mm;
 
  941   const G4double startAngleGiunz1FinalCollIORT = 0.*
deg;
 
  942   const G4double spanningAngleGiunz1FinalCollIORT = 360.*
deg;
 
  943   const G4double Giunz1FinalCollXPositionIORT = -933.*
mm;
 
  947   solidGiunz1FinalCollIORT = 
new G4Tubs(
"Giunz1FinalCollIORT", innRadiusGiunz1FinalCollIORT, 
 
  948                     outRadiusGiunz1FinalCollIORT,
 
  949                     hightGiunz1FinalCollIORT, 
 
  950                     startAngleGiunz1FinalCollIORT, 
 
  951                     spanningAngleGiunz1FinalCollIORT);
 
  954                                   Giunz1FinalCollMaterialIORT, 
"Giunz1FinalCollIORT", 0, 0, 0);
 
  957                        "Giunz1FinalCollIORT", logGiunz1FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  959    logGiunz1FinalCollIORT -> SetVisAttributes(gray); 
 
  971   const G4double hightFinalCollimatorIORT = 434. *
mm;
 
  972   const G4double startAngleFinalCollimatorIORT = 0.*
deg;
 
  973   const G4double spanningAngleFinalCollimatorIORT = 360.*
deg;
 
  974   const G4double finalCollimatorXPositionIORT = -489.*
mm;
 
  986   solidFinalCollimatorIORT = 
new G4Tubs(
"FinalCollimatorIORT", innerRadiusFinalCollimatorIORT, 
 
  987                     OuterRadiusFinalCollimatorIORT,
 
  988                     hightFinalCollimatorIORT, 
 
  989                     startAngleFinalCollimatorIORT, 
 
  990                     spanningAngleFinalCollimatorIORT);
 
  993                                   finalCollimatorMaterialIORT, 
"FinalCollimatorIORT", 0, 0, 0);
 
  996                        "FinalCollimatorIORT", logFinalCollimatorIORT, physicalTreatmentRoom, 
false, 0); 
 
  999    logFinalCollimatorIORT -> SetVisAttributes(darkGreen); 
 
 1010   solidFinalCollimatorIORT -> SetInnerRadius(value);
 
 1012   G4cout<<
"Inner Radius of the final collimator IORT is (mm):" 
 1013     << solidFinalCollimatorIORT -> GetInnerRadius()/
mm 
 1021   solidFinalCollimatorIORT -> SetOuterRadius(value);
 
 1023   G4cout<<
"Outer Radius of the final collimator IORT is (mm):" 
 1024     << solidFinalCollimatorIORT -> GetOuterRadius()/
mm