61   physicalTreatmentRoom(0),iortDetectorConstruction(0),
 
   65   solidFinalCollimatorIORT(0),
 
   66   logicFinalCollimatorIORT(0),
 
   67   physiFinalCollimatorIORT(0),
 
   69   solidGiunz1FinalCollIORT(0),
 
   70   logicGiunz1FinalCollIORT(0),
 
   71   physiGiunz1FinalCollIORT(0),
 
   73   solidGiunz2FinalCollIORT(0),  
 
   74   logicGiunz2FinalCollIORT(0),
 
   75   physiGiunz2FinalCollIORT(0),
 
   77   solidGiunz3FinalCollIORT(0),
 
   78   logicGiunz3FinalCollIORT(0),
 
   79   physiGiunz3FinalCollIORT(0),  
 
   81   solidGiunz3FinalCollIntIORT(0),
 
   82   logicGiunz3FinalCollIntIORT(0),
 
   83   physiGiunz3FinalCollIntIORT(0), 
 
   85   solidGiunz4FinalCollIORT(0),
 
   86   logicGiunz4FinalCollIORT(0),
 
   87   physiGiunz4FinalCollIORT(0),
 
   89   solidGiunz5FinalCollIORT(0),
 
   90   logicGiunz5FinalCollIORT(0),
 
   91   physiGiunz5FinalCollIORT(0),
 
  105   solidBlocco20mmIORT(0),
 
  106   logicBlocco20mmIORT(0),
 
  107   physiBlocco20mmIORT(0),  
 
  154   delete collimatorMessenger;
 
  155   delete iortDetectorConstruction;
 
  164   SetDefaultDimensions();
 
  167   ConstructCollimator50BeamLine();
 
  172   return physicalTreatmentRoom;
 
  185 void Collimator50BeamLine::SetDefaultDimensions()
 
  190   white -> SetVisibility(
true);
 
  194   blue -> SetVisibility(
true);
 
  198   gray-> SetVisibility(
true);
 
  202   red-> SetVisibility(
true);
 
  206   yellow-> SetVisibility(
true);
 
  210   green -> SetVisibility(
true);
 
  214   darkGreen -> SetVisibility(
true);
 
  218   darkOrange3 -> SetVisibility(
true);
 
  222   skyBlue -> SetVisibility(
true);
 
  229   G4double defaultOuterRadiusFinalCollimatorIORT = 30. *
mm;
 
  230   OuterRadiusFinalCollimatorIORT = defaultOuterRadiusFinalCollimatorIORT;
 
  232   G4double defaultinnerRadiusFinalCollimatorIORT = 25. *
mm;
 
  233   innerRadiusFinalCollimatorIORT = defaultinnerRadiusFinalCollimatorIORT;
 
  270   finalCollimatorMaterialIORT = PMMANist;
 
  273   Giunz1FinalCollMaterialIORT = PMMANist;
 
  276   Giunz2FinalCollMaterialIORT = PMMANist;
 
  279   Giunz3FinalCollMaterialIORT = PMMANist;
 
  282   Giunz3FinalCollMaterialIntIORT = airNist;
 
  285   Giunz4FinalCollMaterialIORT = PMMANist;
 
  288   Giunz5FinalCollMaterialIORT = PMMANist;
 
  291   Blocco1IORTMaterialIORT = PMMANist; 
 
  294   Blocco2IORTMaterialIORT = PMMANist; 
 
  297   Blocco3IORTMaterialIORT = PMMANist;
 
  300   Blocco20mmIORTMaterialIORT = PMMANist;
 
  303     CM1_1_2IORTMaterialIORT = aluminumNist;
 
  306     CM1_2_2IORTMaterialIORT = aluminumNist;
 
  309     CM2_1_2IORTMaterialIORT = aluminumNist;
 
  312     CM2_2_2IORTMaterialIORT = aluminumNist;
 
  315     CCMIORTMaterialIORT = PMMANist;
 
  318     PFS1IORTMaterialIORT = PMMANist;
 
  321     PFS2IORTMaterialIORT = PMMANist;
 
  324     PFS3IORTMaterialIORT = PMMANist;
 
  327     FTIORTMaterialIORT = titanioNist;
 
  330     VSIORTMaterialIORT = galacticNist;
 
  335 void Collimator50BeamLine::ConstructCollimator50BeamLine()
 
  347   G4Box* treatmentRoom = 
new G4Box(
"TreatmentRoom",worldX,worldY,worldZ);
 
  350                                                             "logicTreatmentRoom", 
 
  354                         "physicalTreatmentRoom", 
 
  392   const G4double XPositionVSIORT = -862.797 *
mm;
 
  394   solidVSIORT = 
new G4Tubs(
"VSIORT", innRadiusVSIORT, 
 
  398                     spanningAngleVSIORT);
 
  401                                   VSIORTMaterialIORT, 
"VSIORT", 0, 0, 0);
 
  404                        "VSIORT", logVSIORT, physicalTreatmentRoom, 
false, 0); 
 
  406   logVSIORT -> SetVisAttributes(green);
 
  428   const G4double XPositionFTIORT = -861.791 *
mm;
 
  430   solidFTIORT = 
new G4Tubs(
"FTIORT", innRadiusFTIORT, 
 
  434                     spanningAngleFTIORT);
 
  437                                   FTIORTMaterialIORT, 
"FTIORT", 0, 0, 0);
 
  440                        "FTIORT", logFTIORT, physicalTreatmentRoom, 
false, 0); 
 
  442   logFTIORT -> SetVisAttributes(yellow);
 
  469   const G4double XPositionPFS3IORT = -848.755 *
mm;
 
  471   solidPFS3IORT = 
new G4Tubs(
"PFS3IORT", innRadiusPFS3IORT, 
 
  475                     spanningAnglePFS3IORT);
 
  478                                   PFS3IORTMaterialIORT, 
"PFS3IORT", 0, 0, 0);
 
  481                        "PFS3IORT", logPFS3IORT, physicalTreatmentRoom, 
false, 0); 
 
  483   logPFS3IORT -> SetVisAttributes(white);
 
  495   const G4double XPositionPFS2IORT = -844.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 = -841.905 *
mm;
 
  522   solidPFS1IORT = 
new G4Tubs(
"PFS1IORT", innRadiusPFS1IORT, 
 
  526                     spanningAnglePFS1IORT);
 
  529                                   PFS1IORTMaterialIORT, 
"PFS1IORT", 0, 0, 0);
 
  532                        "PFS1IORT", logPFS1IORT, physicalTreatmentRoom, 
false, 0); 
 
  534   logPFS1IORT -> SetVisAttributes(green);
 
  545   const G4double XPositionCCMIORT = -837.0125 *
mm;
 
  547   solidCCMIORT = 
new G4Tubs(
"CCMIORT", innRadiusCCMIORT, 
 
  551                     spanningAngleCCMIORT);
 
  554                                   CCMIORTMaterialIORT, 
"CCMIORT", 0, 0, 0);
 
  557                        "CCMIORT", logCCMIORT, physicalTreatmentRoom, 
false, 0); 
 
  559   logCCMIORT -> SetVisAttributes(green);
 
  566   const G4double outRadiusCM2_2_2IORT = 20. *
mm;
 
  570   const G4double spanningAngleCM2_2_2IORT = 360.*
deg;
 
  571   const G4double XPositionCM2_2_2IORT = -841. *
mm;
 
  573   solidCM2_2_2IORT = 
new G4Tubs(
"CM2_2_2IORT", innRadiusCM2_2_2IORT, 
 
  574                     outRadiusCM2_2_2IORT,
 
  576                     startAngleCM2_2_2IORT, 
 
  577                     spanningAngleCM2_2_2IORT);
 
  580                                   CM2_2_2IORTMaterialIORT, 
"CM2_2_2IORT", 0, 0, 0);
 
  583                        "CM2_2_2ORT", logCM2_2_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  585   logCM2_2_2IORT -> SetVisAttributes(green);  
 
  592   const G4double outRadiusCM2_1_2IORT = 20. *
mm;
 
  596   const G4double spanningAngleCM2_1_2IORT = 360.*
deg;
 
  597   const G4double XPositionCM2_1_2IORT = -839. *
mm;
 
  599   solidCM2_1_2IORT = 
new G4Tubs(
"CM2_1_2IORT", innRadiusCM2_1_2IORT, 
 
  600                     outRadiusCM2_1_2IORT,
 
  602                     startAngleCM2_1_2IORT, 
 
  603                     spanningAngleCM2_1_2IORT);
 
  606                                   CM2_1_2IORTMaterialIORT, 
"CM2_1_2IORT", 0, 0, 0);
 
  609                        "CM2_1_2ORT", logCM2_1_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  611   logCM2_1_2IORT -> SetVisAttributes(yellow); 
 
  617   const G4double outRadiusCM1_2_2IORT = 20. *
mm;
 
  621   const G4double spanningAngleCM1_2_2IORT = 360.*
deg;
 
  622   const G4double XPositionCM1_2_2IORT = -837. *
mm;
 
  624   solidCM1_2_2IORT = 
new G4Tubs(
"CM1_2_2IORT", innRadiusCM1_2_2IORT, 
 
  625                     outRadiusCM1_2_2IORT,
 
  627                     startAngleCM1_2_2IORT, 
 
  628                     spanningAngleCM1_2_2IORT);
 
  631                               CM1_2_2IORTMaterialIORT, 
"CM1_2_2IORT", 0, 0, 0);
 
  634                        "CM1_2_2ORT", logCM1_2_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  636   logCM1_2_2IORT -> SetVisAttributes(yellow);
 
  642   const G4double outRadiusCM1_1_2IORT = 20. *
mm;
 
  646   const G4double spanningAngleCM1_1_2IORT = 360.*
deg;
 
  647   const G4double XPositionCM1_1_2IORT = -835. *
mm;
 
  649   solidCM1_1_2IORT = 
new G4Tubs(
"CM1_1_2IORT", innRadiusCM1_1_2IORT, 
 
  650                     outRadiusCM1_1_2IORT,
 
  652                     startAngleCM1_1_2IORT, 
 
  653                     spanningAngleCM1_1_2IORT);
 
  656                                   CM1_1_2IORTMaterialIORT, 
"CM1_1_2IORT", 0, 0, 0);
 
  659                        "CM1_1_2ORT", logCM1_1_2IORT, physicalTreatmentRoom, 
false, 0); 
 
  661   logCM1_1_2IORT -> SetVisAttributes(yellow);
 
  683   const G4double outRadiusBlocco20mmIORT = 36.5 *
mm;
 
  684   const G4double innRadiusBlocco20mmIORT = 10. *
mm;
 
  687   const G4double spanningAngleBlocco20mmIORT = 360.*
deg;
 
  688   const G4double XPositionBlocco20mmIORT = -830. *
mm;
 
  691   solidBlocco20mmIORT = 
new G4Tubs(
"Blocco20mmIORT", innRadiusBlocco20mmIORT, 
 
  692                     outRadiusBlocco20mmIORT,
 
  694                     startAngleBlocco20mmIORT, 
 
  695                     spanningAngleBlocco20mmIORT);
 
  698                                   Blocco20mmIORTMaterialIORT, 
"Blocco20mmIORT", 0, 0, 0);
 
  701                        "Blocco20mmORT", logBlocco20mmIORT, physicalTreatmentRoom, 
false, 0); 
 
  703   logBlocco20mmIORT -> SetVisAttributes(green);
 
  710   const G4double outRadiusBlocco3IORT = 36.5 *
mm;
 
  711   const G4double innRadiusBlocco3IORT = 15. *
mm;
 
  714   const G4double spanningAngleBlocco3IORT = 360.*
deg;
 
  715   const G4double XPositionBlocco3IORT = -823.5 *
mm;
 
  717   solidBlocco3IORT = 
new G4Tubs(
"Blocco3IORT", innRadiusBlocco3IORT, 
 
  718                     outRadiusBlocco3IORT,
 
  720                     startAngleBlocco3IORT, 
 
  721                     spanningAngleBlocco3IORT);
 
  724                                   Blocco3IORTMaterialIORT, 
"Blocco3IORT", 0, 0, 0);
 
  727                        "Blocco3ORT", logBlocco3IORT, physicalTreatmentRoom, 
false, 0); 
 
  729   logBlocco3IORT -> SetVisAttributes(yellow);
 
  735   const G4double outRadiusBlocco2IORT = 41.5 *
mm;
 
  736   const G4double innRadiusBlocco2IORT = 15. *
mm;
 
  739   const G4double spanningAngleBlocco2IORT = 360.*
deg;
 
  740   const G4double XPositionBlocco2IORT = -812. *
mm;
 
  742   solidBlocco2IORT = 
new G4Tubs(
"Blocco2IORT", innRadiusBlocco2IORT, 
 
  743                     outRadiusBlocco2IORT,
 
  745                     startAngleBlocco2IORT, 
 
  746                     spanningAngleBlocco2IORT);
 
  749                                   Blocco2IORTMaterialIORT, 
"Blocco2IORT", 0, 0, 0);
 
  752                        "Blocco2IORT", logBlocco2IORT, physicalTreatmentRoom, 
false, 0); 
 
  754   logBlocco2IORT -> SetVisAttributes(red);
 
  760   const G4double outRadiusBlocco1IORT = 52.0 *
mm;
 
  761   const G4double innRadiusBlocco1IORT = 15. *
mm;
 
  764   const G4double spanningAngleBlocco1IORT = 360.*
deg;
 
  765   const G4double XPositionBlocco1IORT = -795.5*
mm;
 
  767   solidBlocco1IORT = 
new G4Tubs(
"Blocco1IORT", innRadiusBlocco1IORT, 
 
  768                     outRadiusBlocco1IORT,
 
  770                     startAngleBlocco1IORT, 
 
  771                     spanningAngleBlocco1IORT);
 
  774                                   Blocco1IORTMaterialIORT, 
"Blocco1IORT", 0, 0, 0);
 
  777                        "Blocco1IORT", logBlocco1IORT, physicalTreatmentRoom, 
false, 0); 
 
  779   logBlocco1IORT -> SetVisAttributes(white);
 
  796   const G4double outRadiusGiunz5FinalCollIORT = 48.25 *
mm;
 
  797   const G4double innRadiusGiunz5FinalCollIORT = 13.75 *
mm;
 
  798   const G4double hightGiunz5FinalCollIORT = 3.5 *
mm;
 
  799   const G4double startAngleGiunz5FinalCollIORT = 0.*
deg;
 
  800   const G4double spanningAngleGiunz5FinalCollIORT = 360.*
deg;
 
  801   const G4double Giunz5FinalCollXPositionIORT = -783.5 *
mm;
 
  803   solidGiunz5FinalCollIORT = 
new G4Tubs(
"Giunz5FinalCollIORT", innRadiusGiunz5FinalCollIORT, 
 
  804                     outRadiusGiunz5FinalCollIORT,
 
  805                     hightGiunz5FinalCollIORT, 
 
  806                     startAngleGiunz5FinalCollIORT, 
 
  807                     spanningAngleGiunz5FinalCollIORT);
 
  810                                   Giunz5FinalCollMaterialIORT, 
"Giunz5FinalCollIORT", 0, 0, 0);
 
  813                        "Giunz5FinalCollIORT", logGiunz5FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  815   logGiunz5FinalCollIORT -> SetVisAttributes(yellow);
 
  821   const G4double outRadiusGiunz4FinalCollIORT = 42. *
mm;
 
  822   const G4double innRadiusGiunz4FinalCollIORT = 13.75 *
mm;
 
  823   const G4double hightGiunz4FinalCollIORT = 8.5 *
mm;
 
  824   const G4double startAngleGiunz4FinalCollIORT = 0.*
deg;
 
  825   const G4double spanningAngleGiunz4FinalCollIORT = 360.*
deg;
 
  826   const G4double Giunz4FinalCollXPositionIORT = -771.5 *
mm;
 
  828   solidGiunz4FinalCollIORT = 
new G4Tubs(
"Giunz4FinalCollIORT", innRadiusGiunz4FinalCollIORT, 
 
  829                     outRadiusGiunz4FinalCollIORT,
 
  830                     hightGiunz4FinalCollIORT, 
 
  831                     startAngleGiunz4FinalCollIORT, 
 
  832                     spanningAngleGiunz4FinalCollIORT);
 
  835                                   Giunz4FinalCollMaterialIORT, 
"Giunz4FinalCollIORT", 0, 0, 0);
 
  838                        "Giunz4FinalCollIORT", logGiunz4FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  840   logGiunz4FinalCollIORT -> SetVisAttributes(blue); 
 
  848   const G4double outRadiusGiunz3FinalCollIORT = 42. *
mm;
 
  849   const G4double innRadiusGiunz3FinalCollIORT = 0. *
mm;
 
  850   const G4double hightGiunz3FinalCollIORT = 4.25 *
mm;
 
  851   const G4double startAngleGiunz3FinalCollIORT = 0.*
deg;
 
  852   const G4double spanningAngleGiunz3FinalCollIORT = 360.*
deg;
 
  853   const G4double Giunz3FinalCollXPositionIORT = -758.75 *
mm;
 
  855   solidGiunz3FinalCollIORT = 
new G4Tubs(
"Giunz3FinalCollIORT", innRadiusGiunz3FinalCollIORT, 
 
  856                     outRadiusGiunz3FinalCollIORT,
 
  857                     hightGiunz3FinalCollIORT, 
 
  858                     startAngleGiunz3FinalCollIORT, 
 
  859                     spanningAngleGiunz3FinalCollIORT);
 
  862                                   Giunz3FinalCollMaterialIORT, 
"Giunz3FinalCollIORT", 0, 0, 0);
 
  865                        "Giunz3FinalCollIORT", logicsolidGiunz3FinalCollIORT, physicalTreatmentRoom, 
false, 0); 
 
  867  logicsolidGiunz3FinalCollIORT -> SetVisAttributes(yellow);
 
  878   solidGiunz3FinalCollIntIORT = 
new G4Cons(
"Giunz3FinalCollIntIORT",0.*
mm,13.75*
mm,0.*
mm,20.0*
mm,4.25*
mm,0.*
deg,360.*
deg);
 
  881                                   Giunz3FinalCollMaterialIntIORT, 
"Giunz3FinalCollIntIORT", 0, 0, 0);
 
  883   physiGiunz3FinalCollIntIORT = 
new G4PVPlacement(0, 
G4ThreeVector(0.,0.,0.),
"Giunz3FinalCollIntIORT", logicsolidGiunz3FinalCollIntIORT,physiGiunz3FinalCollIORT, 
false, 0); 
 
  885   logicsolidGiunz3FinalCollIntIORT -> SetVisAttributes(yellow); 
 
  896   const G4double hightFinalCollimatorIORT = 349.75 *
mm;
 
  897   const G4double startAngleFinalCollimatorIORT = 0.*
deg;
 
  898   const G4double spanningAngleFinalCollimatorIORT = 360.*
deg;
 
  899   const G4double finalCollimatorXPositionIORT = -404.75 *
mm;
 
  908   solidFinalCollimatorIORT = 
new G4Tubs(
"FinalCollimatorIORT", innerRadiusFinalCollimatorIORT, 
 
  909                     OuterRadiusFinalCollimatorIORT,
 
  910                     hightFinalCollimatorIORT, 
 
  911                     startAngleFinalCollimatorIORT, 
 
  912                     spanningAngleFinalCollimatorIORT);
 
  915                                   finalCollimatorMaterialIORT, 
"FinalCollimatorIORT", 0, 0, 0);
 
  918                        "FinalCollimatorIORT", logFinalCollimatorIORT, physicalTreatmentRoom, 
false, 0); 
 
  921   logFinalCollimatorIORT -> SetVisAttributes(gray); 
 
  931   solidFinalCollimatorIORT -> SetInnerRadius(value);
 
  933   G4cout<<
"Inner Radius of the final collimator IORT is (mm):" 
  934     << solidFinalCollimatorIORT -> GetInnerRadius()/
mm 
  942   solidFinalCollimatorIORT -> SetOuterRadius(value);
 
  944   G4cout<<
"Outer Radius of the final collimator IORT is (mm):" 
  945     << solidFinalCollimatorIORT -> GetOuterRadius()/
mm