50 modulator(0), physicalTreatmentRoom(0),hadrontherapyDetectorConstruction(0),
 
   51 physiBeamLineSupport(0), physiBeamLineCover(0), physiBeamLineCover2(0),
 
   52 firstScatteringFoil(0), physiFirstScatteringFoil(0), physiKaptonWindow(0),
 
   53 solidStopper(0), physiStopper(0), secondScatteringFoil(0), physiSecondScatteringFoil(0),
 
   54 physiFirstCollimator(0), solidRangeShifterBox(0), logicRangeShifterBox(0),
 
   55 physiRangeShifterBox(0), physiSecondCollimator(0), physiFirstCollimatorModulatorBox(0),
 
   56 physiHoleFirstCollimatorModulatorBox(0), physiSecondCollimatorModulatorBox(0),
 
   57 physiHoleSecondCollimatorModulatorBox(0), physiMOPIMotherVolume(0),
 
   58 physiFirstMonitorLayer1(0), physiFirstMonitorLayer2(0), physiFirstMonitorLayer3(0),
 
   59 physiFirstMonitorLayer4(0), physiSecondMonitorLayer1(0), physiSecondMonitorLayer2(0),
 
   60 physiSecondMonitorLayer3(0), physiSecondMonitorLayer4(0), physiNozzleSupport(0), 
 
   61 physiBrassTube(0), solidFinalCollimator(0), physiFinalCollimator(0)
 
   67     static G4String ROGeometryName = 
"DetectorROGeometry";
 
   70     G4cout << 
"Going to register Parallel world...";
 
  136     white -> SetVisibility(
true);
 
  137     white -> SetForceSolid(
true);
 
  140     blue -> SetVisibility(
true);
 
  141     blue -> SetForceSolid(
true);
 
  144     gray-> SetVisibility(
true);
 
  145     gray-> SetForceSolid(
true);
 
  148     red-> SetVisibility(
true);
 
  149     red-> SetForceSolid(
true);
 
  152     yellow-> SetVisibility(
true);
 
  153     yellow-> SetForceSolid(
true);
 
  156     green -> SetVisibility(
true);
 
  157     green -> SetForceSolid(
true);
 
  168     skyBlue -> SetVisibility(
true);
 
  169     skyBlue -> SetForceSolid(
true);
 
  183     G4double defaultVacuumZoneXPosition = -3010.0 *
mm;
 
  188     G4double defaultFirstScatteringFoilXSize = 0.0075 *
mm;
 
  191     G4double defaultFirstScatteringFoilYSize = 52.5   *
mm;
 
  194     G4double defaultFirstScatteringFoilZSize = 52.5   *
mm;
 
  197     G4double defaultFirstScatteringFoilXPosition = 0.0 *
mm;
 
  210     G4double defaultKaptonWindowXPosition = 100.0*
mm - defaultKaptonWindowXSize;
 
  228     G4double defaultStopperXPosition = -2705.0 *
mm;
 
  243     G4double defaultSecondScatteringFoilXSize = 0.0125 *
mm;
 
  246     G4double defaultSecondScatteringFoilYSize = 52.5   *
mm;
 
  249     G4double defaultSecondScatteringFoilZSize = 52.5   *
mm;
 
  252     G4double defaultSecondScatteringFoilXPosition = defaultStopperXPosition + defaultHeightStopper + defaultSecondScatteringFoilXSize;
 
  255     G4double defaultSecondScatteringFoilYPosition =  0 *
mm;
 
  258     G4double defaultSecondScatteringFoilZPosition =  0 *
mm;
 
  275     G4double defaultRangeShifterXPosition = -2393.0 *
mm;
 
  278     G4double defaultRangeShifterYPosition = 0. *
mm;
 
  281     G4double defaultRangeShifterZPosition = 0. *
mm;
 
  292     G4double defaultMOPIMotherVolumeXSize = 12127.0 *um;
 
  295     G4double defaultMOPIMotherVolumeYSize = 40.0 *
cm;
 
  298     G4double defaultMOPIMotherVolumeZSize = 40.0 *
cm;
 
  301     G4double defaultMOPIMotherVolumeXPosition = -1000.0 *
mm;
 
  304     G4double defaultMOPIMotherVolumeYPosition = 0.0 *
mm;
 
  307     G4double defaultMOPIMotherVolumeZPosition = 0.0 *
mm;
 
  311     G4double defaultMOPIFirstKaptonLayerXSize = 35 *um;
 
  314     G4double defaultMOPIFirstKaptonLayerYSize = 30 *
cm;
 
  317     G4double defaultMOPIFirstKaptonLayerZSize = 30 *
cm;
 
  323     G4double defaultMOPIFirstKaptonLayerYPosition = 0.0 *
mm;
 
  326     G4double defaultMOPIFirstKaptonLayerZPosition = 0.0 *
mm;
 
  330     G4double defaultMOPIFirstAluminumLayerXSize = 15 *um;
 
  333     G4double defaultMOPIFirstAluminumLayerYSize = 30 *
cm;
 
  336     G4double defaultMOPIFirstAluminumLayerZSize = 30 *
cm;
 
  339     G4double defaultMOPIFirstAluminumLayerXPosition =
 
  343     G4double defaultMOPIFirstAluminumLayerYPosition = 0.0 *
mm;
 
  346     G4double defaultMOPIFirstAluminumLayerZPosition = 0.0 *
mm;
 
  350     G4double defaultMOPIFirstAirGapXSize = 6000 *um;
 
  353     G4double defaultMOPIFirstAirGapYSize = 30 *
cm;
 
  356     G4double defaultMOPIFirstAirGapZSize = 30 *
cm;
 
  359     G4double defaultMOPIFirstAirGapXPosition =
 
  363     G4double defaultMOPIFirstAirGapYPosition = 0.0 *
mm;
 
  366     G4double defaultMOPIFirstAirGapZPosition = 0.0 *
mm;
 
  370     G4double defaultMOPICathodeXSize = 25.0 *um;
 
  379     G4double defaultMOPICathodeXPosition =
 
  383     G4double defaultMOPICathodeYPosition = 0.0 *
mm;
 
  386     G4double defaultMOPICathodeZPosition = 0.0 *
mm;
 
  390     G4double defaultMOPISecondAirGapXSize = 6000 *um;
 
  393     G4double defaultMOPISecondAirGapYSize = 30 *
cm;
 
  396     G4double defaultMOPISecondAirGapZSize = 30 *
cm;
 
  399     G4double defaultMOPISecondAirGapXPosition =
 
  403     G4double defaultMOPISecondAirGapYPosition = 0.0 *
mm;
 
  406     G4double defaultMOPISecondAirGapZPosition = 0.0 *
mm;
 
  410     G4double defaultMOPISecondAluminumLayerXSize = 15 *um;
 
  413     G4double defaultMOPISecondAluminumLayerYSize = 30 *
cm;
 
  416     G4double defaultMOPISecondAluminumLayerZSize = 30 *
cm;
 
  419     G4double defaultMOPISecondAluminumLayerXPosition =
 
  423     G4double defaultMOPISecondAluminumLayerYPosition = 0.0 *
mm;
 
  426     G4double defaultMOPISecondAluminumLayerZPosition = 0.0 *
mm;
 
  430     G4double defaultMOPISecondKaptonLayerXSize = 35 *um;
 
  433     G4double defaultMOPISecondKaptonLayerYSize = 30 *
cm;
 
  436     G4double defaultMOPISecondKaptonLayerZSize = 30 *
cm;
 
  439     G4double defaultMOPISecondKaptonLayerXPosition =
 
  443     G4double defaultMOPISecondKaptonLayerYPosition = 0.0 *
mm;
 
  446     G4double defaultMOPISecondKaptonLayerZPosition = 0.0 *
mm;
 
  452     G4double defaultinnerRadiusFinalCollimator = 7.5 *
mm;
 
  561     G4Box* treatmentRoom = 
new G4Box(
"TreatmentRoom",worldX,worldY,worldZ);
 
  564                                                               "logicTreatmentRoom",
 
  568                                               "physicalTreatmentRoom",
 
  599     const G4double beamLineSupportXSize = 1.5*
m;
 
  601     const G4double beamLineSupportZSize = 600.*
mm;
 
  603     const G4double beamLineSupportXPosition = -1745.09 *
mm;
 
  604     const G4double beamLineSupportYPosition = -230. *
mm;
 
  605     const G4double beamLineSupportZPosition = 0.*
mm;
 
  607     G4Box* beamLineSupport = 
new G4Box(
"BeamLineSupport",
 
  608                                        beamLineSupportXSize,
 
  609                                        beamLineSupportYSize,
 
  610                                        beamLineSupportZSize);
 
  616                                                               beamLineSupportYPosition,
 
  617                                                               beamLineSupportZPosition),
 
  619                                              logicBeamLineSupport,
 
  624     logicBeamLineSupport -> SetVisAttributes(
gray);
 
  629     const G4double beamLineCoverXSize = 1.5*
m;
 
  633     const G4double beamLineCoverXPosition = -1745.09 *
mm;
 
  634     const G4double beamLineCoverYPosition = -1000.*
mm;
 
  635     const G4double beamLineCoverZPosition = 600.*
mm;
 
  637     G4Box* beamLineCover = 
new G4Box(
"BeamLineCover",
 
  647                                                             beamLineCoverYPosition,
 
  648                                                             beamLineCoverZPosition),
 
  660                                                              beamLineCoverYPosition,
 
  661                                                              - beamLineCoverZPosition),
 
  668     logicBeamLineCover -> SetVisAttributes(
blue);
 
  696                                                                     "FirstScatteringFoil");
 
  699                                                  "FirstScatteringFoil", logicFirstScatteringFoil, physiVacuumZone,
 
  702     logicFirstScatteringFoil -> SetVisAttributes(
skyBlue);
 
  707     G4Box* solidKaptonWindow = 
new G4Box(
"KaptonWindow",
 
  717                                           "KaptonWindow", logicKaptonWindow,
 
  718                                           physiVacuumZone, 
false,       0);
 
  720     logicKaptonWindow -> SetVisAttributes(
darkOrange3);
 
  770                                                                      "SecondScatteringFoil");
 
  775                                                   "SeconScatteringFoil",
 
  776                                                   logicSecondScatteringFoil,
 
  781     logicSecondScatteringFoil -> SetVisAttributes(
skyBlue);
 
  818     const G4double firstCollimatorYSize = 100.*
mm;
 
  819     const G4double firstCollimatorZSize = 100.*
mm;
 
  821     const G4double firstCollimatorXPosition = -2673.00*
mm;
 
  822     const G4double firstCollimatorYPosition = 0.*
mm;
 
  823     const G4double firstCollimatorZPosition = 0.*
mm;
 
  825     G4Box* solidFirstCollimator = 
new G4Box(
"FirstCollimator",
 
  826                                             firstCollimatorXSize,
 
  827                                             firstCollimatorYSize,
 
  828                                             firstCollimatorZSize);
 
  835                                                               firstCollimatorYPosition,
 
  836                                                               firstCollimatorZPosition),
 
  838                                              logicFirstCollimator,
 
  845     G4double innerRadiusHoleFirstCollimator   = 0.*
mm;
 
  846     G4double outerRadiusHoleFirstCollimator   = 15.*
mm;
 
  849     G4double spanningAngleHoleFirstCollimator = 360.*
deg;
 
  851     G4Tubs* solidHoleFirstCollimator = 
new G4Tubs(
"HoleFirstCollimator",
 
  852                                                   innerRadiusHoleFirstCollimator,
 
  853                                                   outerRadiusHoleFirstCollimator,
 
  854                                                   hightHoleFirstCollimator,
 
  855                                                   startAngleHoleFirstCollimator,
 
  856                                                   spanningAngleHoleFirstCollimator);
 
  860                                                                     "HoleFirstCollimator",
 
  868                                                  "HoleFirstCollimator",
 
  869                                                  logicHoleFirstCollimator,
 
  877     const G4double secondCollimatorXPosition = -1900.00*
mm;
 
  878     const G4double secondCollimatorYPosition =  0*
mm;
 
  879     const G4double secondCollimatorZPosition =  0*
mm;
 
  882                                                                secondCollimatorYPosition,
 
  883                                                                secondCollimatorZPosition),
 
  885                                               logicFirstCollimator,
 
  894                                                   "HoleSecondCollimator",
 
  895                                                   logicHoleFirstCollimator,
 
  909     const G4double firstCollimatorModulatorXSize = 10.*
mm;
 
  910     const G4double firstCollimatorModulatorYSize = 200.*
mm;
 
  911     const G4double firstCollimatorModulatorZSize = 200.*
mm;
 
  913     const G4double firstCollimatorModulatorXPosition = -2523.00*
mm;
 
  914     const G4double firstCollimatorModulatorYPosition = 0.*
mm;
 
  915     const G4double firstCollimatorModulatorZPosition = 0.*
mm;
 
  917     G4Box* solidFirstCollimatorModulatorBox = 
new G4Box(
"FirstCollimatorModulatorBox",
 
  918                                                         firstCollimatorModulatorXSize,
 
  919                                                         firstCollimatorModulatorYSize,
 
  920                                                         firstCollimatorModulatorZSize);
 
  924                                                                             "FirstCollimatorModulatorBox");
 
  927                                                                           firstCollimatorModulatorYPosition,
 
  928                                                                           firstCollimatorModulatorZPosition),
 
  929                                                          "FirstCollimatorModulatorBox",
 
  930                                                          logicFirstCollimatorModulatorBox,
 
  936     const G4double innerRadiusHoleFirstCollimatorModulatorBox = 0.*
mm;
 
  937     const G4double outerRadiusHoleFirstCollimatorModulatorBox = 31.*
mm;
 
  938     const G4double hightHoleFirstCollimatorModulatorBox = 10.*
mm;
 
  939     const G4double startAngleHoleFirstCollimatorModulatorBox = 0.*
deg;
 
  940     const G4double spanningAngleHoleFirstCollimatorModulatorBox = 360.*
deg;
 
  942     G4Tubs* solidHoleFirstCollimatorModulatorBox  = 
new G4Tubs(
"HoleFirstCollimatorModulatorBox",
 
  943                                                                innerRadiusHoleFirstCollimatorModulatorBox,
 
  944                                                                outerRadiusHoleFirstCollimatorModulatorBox,
 
  945                                                                hightHoleFirstCollimatorModulatorBox ,
 
  946                                                                startAngleHoleFirstCollimatorModulatorBox,
 
  947                                                                spanningAngleHoleFirstCollimatorModulatorBox);
 
  951                                                                                 "HoleFirstCollimatorModulatorBox",
 
  955                                                              "HoleFirstCollimatorModulatorBox",
 
  956                                                              logicHoleFirstCollimatorModulatorBox,
 
  962     const G4double secondCollimatorModulatorXSize = 10.*
mm;
 
  963     const G4double secondCollimatorModulatorYSize = 200.*
mm;
 
  964     const G4double secondCollimatorModulatorZSize = 200.*
mm;
 
  966     const G4double secondCollimatorModulatorXPosition = -1953.00 *
mm;
 
  968     const G4double secondCollimatorModulatorYPosition = 0.*
mm;
 
  969     const G4double secondCollimatorModulatorZPosition = 0.*
mm;
 
  971     G4Box* solidSecondCollimatorModulatorBox = 
new G4Box(
"SecondCollimatorModulatorBox",
 
  972                                                          secondCollimatorModulatorXSize,
 
  973                                                          secondCollimatorModulatorYSize,
 
  974                                                          secondCollimatorModulatorZSize);
 
  978                                                                              "SecondCollimatorModulatorBox");
 
  981                                                                            secondCollimatorModulatorYPosition,
 
  982                                                                            secondCollimatorModulatorZPosition),
 
  983                                                           "SecondCollimatorModulatorBox",
 
  984                                                           logicSecondCollimatorModulatorBox,
 
  990     const G4double innerRadiusHoleSecondCollimatorModulatorBox = 0.*
mm;
 
  991     const G4double outerRadiusHoleSecondCollimatorModulatorBox = 31.*
mm;
 
  992     const G4double hightHoleSecondCollimatorModulatorBox = 10.*
mm;
 
  993     const G4double startAngleHoleSecondCollimatorModulatorBox = 0.*
deg;
 
  994     const G4double spanningAngleHoleSecondCollimatorModulatorBox = 360.*
deg;
 
  996     G4Tubs* solidHoleSecondCollimatorModulatorBox  = 
new G4Tubs(
"HoleSecondCollimatorModulatorBox",
 
  997                                                                 innerRadiusHoleSecondCollimatorModulatorBox,
 
  998                                                                 outerRadiusHoleSecondCollimatorModulatorBox,
 
  999                                                                 hightHoleSecondCollimatorModulatorBox ,
 
 1000                                                                 startAngleHoleSecondCollimatorModulatorBox,
 
 1001                                                                 spanningAngleHoleSecondCollimatorModulatorBox);
 
 1005                                                                                  "HoleSecondCollimatorModulatorBox",
 
 1009                                                               "HoleSecondCollimatorModulatorBox",
 
 1010                                                               logicHoleSecondCollimatorModulatorBox,
 
 1013     logicFirstCollimator -> SetVisAttributes(
yellow);
 
 1014     logicFirstCollimatorModulatorBox -> SetVisAttributes(
blue);
 
 1015     logicSecondCollimatorModulatorBox -> SetVisAttributes(
blue);
 
 1036     const G4double monitor1XPosition = -1262.47498 *
mm;
 
 1037     const G4double monitor2XPosition = -4.500011*
mm;
 
 1038     const G4double monitor4XPosition = 4.500011*
mm;
 
 1040     G4Box* solidFirstMonitorLayer1 = 
new G4Box(
"FirstMonitorLayer1",
 
 1047                                                                    "FirstMonitorLayer1");
 
 1051                                                 "FirstMonitorLayer1",
 
 1052                                                 logicFirstMonitorLayer1,
 
 1057     G4Box* solidFirstMonitorLayer2 = 
new G4Box(
"FirstMonitorLayer2",
 
 1064                                                                    "FirstMonitorLayer2");
 
 1067                                                 "FirstMonitorLayer2",
 
 1068                                                 logicFirstMonitorLayer2,
 
 1073     G4Box* solidFirstMonitorLayer3 = 
new G4Box(
"FirstMonitorLayer3",
 
 1080                                                                    "FirstMonitorLayer3");
 
 1085                                                 logicFirstMonitorLayer3,
 
 1090     G4Box* solidFirstMonitorLayer4 = 
new G4Box(
"FirstMonitorLayer4",
 
 1097                                                                    "FirstMonitorLayer4");
 
 1100                                                 "FirstMonitorLayer4",
 
 1101                                                 logicFirstMonitorLayer4,
 
 1118     logicFirstMonitorLayer3 -> SetVisAttributes(
white);
 
 1151                                                 "MOPIMotherVolume");
 
 1170                                                     "MOPIFirstKaptonLayer");
 
 1176                                                   "MOPIFirstKaptonLayer",
 
 1190                                                       "MOPIFirstAluminumLayer");
 
 1196                                                     "MOPIFirstAluminumLayer",
 
 1243                                                 "MOPISecondAirgap");
 
 1260                                                        "MOPISecondAluminumLayer");
 
 1266                                                      "MOPISecondAluminumLayer",
 
 1280                                                      "MOPISecondKaptonLayer");
 
 1286                                                    "MOPISecondKaptonLayer",
 
 1310     const G4double nozzleSupportXSize = 29.5 *
mm;
 
 1311     const G4double nozzleSupportYSize = 180. *
mm;
 
 1312     const G4double nozzleSupportZSize = 180. *
mm;
 
 1314     const G4double nozzleSupportXPosition = -397.50 *
mm;
 
 1321     G4Box* solidNozzleSupport = 
new G4Box(
"NozzleSupport",
 
 1324                                           nozzleSupportZSize);
 
 1337     logicNozzleSupport -> SetVisAttributes(
yellow);
 
 1344     const G4double innerRadiusHoleNozzleSupport = 0.*
mm;
 
 1345     const G4double outerRadiusHoleNozzleSupport = 21.5*
mm;
 
 1346     const G4double hightHoleNozzleSupport = 29.5 *
mm;
 
 1347     const G4double startAngleHoleNozzleSupport = 0.*
deg;
 
 1348     const G4double spanningAngleHoleNozzleSupport = 360.*
deg;
 
 1350     G4Tubs* solidHoleNozzleSupport = 
new G4Tubs(
"HoleNozzleSupport",
 
 1351                                                 innerRadiusHoleNozzleSupport,
 
 1352                                                 outerRadiusHoleNozzleSupport,
 
 1353                                                 hightHoleNozzleSupport,
 
 1354                                                 startAngleHoleNozzleSupport,
 
 1355                                                 spanningAngleHoleNozzleSupport);
 
 1359                                                                   "HoleNozzleSupport",
 
 1366                                                "HoleNozzleSupport",
 
 1367                                                logicHoleNozzleSupport,
 
 1371     logicHoleNozzleSupport -> SetVisAttributes(
darkOrange3);
 
 1377     const G4double outerRadiusBrassTube = 21.5 *
mm;
 
 1382     const G4double brassTubeXPosition = -227.5 *
mm;
 
 1385                                         innerRadiusBrassTube,
 
 1386                                         outerRadiusBrassTube,
 
 1388                                         startAngleBrassTube,
 
 1389                                         spanningAngleBrassTube);
 
 1411     const G4double innerRadiusBrassTube2= 18.*
mm;
 
 1412     const G4double outerRadiusBrassTube2 = 21.5 *
mm;
 
 1415     const G4double spanningAngleBrassTube2 = 360.*
deg;
 
 1420                                          innerRadiusBrassTube2,
 
 1421                                          outerRadiusBrassTube2,
 
 1423                                          startAngleBrassTube2,
 
 1424                                          spanningAngleBrassTube2);
 
 1447     const G4double innerRadiusBrassTube3= 18.*
mm;
 
 1448     const G4double outerRadiusBrassTube3 = 21.5 *
mm;
 
 1451     const G4double spanningAngleBrassTube3 = 360.*
deg;
 
 1453     const G4double brassTube3XPosition = -437 *
mm;
 
 1456                                          innerRadiusBrassTube3,
 
 1457                                          outerRadiusBrassTube3,
 
 1459                                          startAngleBrassTube3,
 
 1460                                          spanningAngleBrassTube3);
 
 1486     const G4double outerRadiusFinalCollimator = 21.5*
mm;
 
 1487     const G4double hightFinalCollimator = 3.5*
mm;
 
 1488     const G4double startAngleFinalCollimator = 0.*
deg;
 
 1489     const G4double spanningAngleFinalCollimator = 360.*
deg;
 
 1490     const G4double finalCollimatorXPosition = -83.5 *
mm;
 
 1500                                       outerRadiusFinalCollimator,
 
 1501                                       hightFinalCollimator,
 
 1502                                       startAngleFinalCollimator,
 
 1503                                       spanningAngleFinalCollimator);
 
 1515     logicFinalCollimator -> SetVisAttributes(
yellow);
 
 1523     G4cout << 
"The Range Shifter is translated to"<< value/
mm <<
"mm along the X axis" <<
G4endl;
 
 1540     G4cout <<
"The X size of the first scattering foil is (mm):"<<
 
 1550     G4cout <<
"The X size of the second scattering foil is (mm):"<<
 
 1560     G4cout << 
"OuterRadius od the Stopper is (mm):" 
 1570     G4cout<<
"Inner Radius of the final collimator is (mm):" 
 1584             G4cout << 
"The material of the Range Shifter has been changed to " << materialChoice << 
G4endl;
 
 1589         G4cout << 
"WARNING: material \"" << materialChoice << 
"\" doesn't exist in NIST elements/materials" 
 1590             " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" << 
G4endl;
 
 1591         G4cout << 
"Use command \"/parameter/nist\" to see full materials list!" << 
G4endl;
 
G4VPhysicalVolume * physiKaptonWindow
 
G4Box * solidMOPIFirstKaptonLayer
 
G4Material * holeModulatorBoxMaterial
 
G4Material * brassTube2Material
 
G4double rangeShifterZPosition
 
void SetDefaultDimensions()
 
G4Material * MOPIFirstKaptonLayerMaterial
 
G4double MOPISecondKaptonLayerYSize
 
G4double MOPISecondAirGapYSize
 
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
 
G4Tubs * solidFinalCollimator
 
G4Box * solidMOPISecondKaptonLayer
 
G4double MOPIFirstAirGapYPosition
 
G4VPhysicalVolume * physiFirstMonitorLayer2
 
G4double MOPISecondAirGapZPosition
 
G4Material * nozzleSupportMaterial
 
G4VisAttributes * darkOrange3
 
G4double MOPISecondKaptonLayerXPosition
 
G4double rangeShifterYPosition
 
G4double MOPIFirstAluminumLayerXSize
 
G4Material * holeNozzleSupportMaterial
 
G4double secondScatteringFoilZSize
 
G4double stopperYPosition
 
G4double MOPIMotherVolumeYPosition
 
G4VPhysicalVolume * physiHoleFirstCollimator
 
CLHEP::Hep3Vector G4ThreeVector
 
G4double MOPISecondAluminumLayerXSize
 
G4Material * MOPICathodeMaterial
 
G4VPhysicalVolume * physicalTreatmentRoom
 
G4Material * beamLineSupportMaterial
 
CLHEP::HepRotation G4RotationMatrix
 
G4double MOPIFirstAirGapZPosition
 
G4VPhysicalVolume * physiFinalCollimator
 
G4double MOPIFirstKaptonLayerZSize
 
PassiveProtonBeamLineMessenger * passiveMessenger
 
G4double MOPIMotherVolumeYSize
 
G4double MOPIMotherVolumeXPosition
 
G4LogicalVolume * logicMOPICathode
 
void SetModulatorAngle(G4double angle)
 
G4VPhysicalVolume * physiFirstMonitorLayer1
 
HadrontherapyDetectorROGeometry * RO
 
G4double outerRadiusStopper
 
G4double MOPIFirstKaptonLayerYPosition
 
G4double MOPISecondAirGapXSize
 
void HadrontherapyBeamScatteringFoils()
 
void HadrontherapyBeamMonitoring()
 
G4double MOPIMotherVolumeZSize
 
void HadrontherapyBeamCollimators()
 
G4Material * rangeShifterMaterial
 
G4double MOPIFirstAluminumLayerZPosition
 
G4double MOPISecondAirGapXPosition
 
G4VPhysicalVolume * physiHoleSecondCollimator
 
G4double rangeShifterYSize
 
G4double MOPIFirstKaptonLayerXPosition
 
void SetSecondScatteringFoilXSize(G4double)
 
G4double MOPIFirstAirGapXSize
 
G4VPhysicalVolume * physiFirstScatteringFoil
 
G4VPhysicalVolume * physiFirstCollimator
 
G4double secondScatteringFoilZPosition
 
G4Material * MOPISecondKaptonLayerMaterial
 
HadrontherapyDetectorConstruction * hadrontherapyDetectorConstruction
 
G4VPhysicalVolume * physiBeamLineCover2
 
G4double rangeShifterXSize
 
static G4NistManager * Instance()
 
G4VPhysicalVolume * physiSecondCollimator
 
G4Material * holeFirstCollimatorMaterial
 
G4Box * solidMOPIMotherVolume
 
void RegisterParallelWorld(G4VUserParallelWorld *)
 
G4Material * layer1MonitorChamberMaterial
 
G4VPhysicalVolume * physiSecondMonitorLayer2
 
G4double innerRadiusStopper
 
G4Box * solidMOPIFirstAluminumLayer
 
G4double kaptonWindowXSize
 
G4double firstScatteringFoilXPosition
 
G4double MOPICathodeXPosition
 
G4VPhysicalVolume * physiSecondMonitorLayer4
 
G4VPhysicalVolume * physiFirstCollimatorModulatorBox
 
G4Material * MOPIFirstAluminumLayerMaterial
 
G4VPhysicalVolume * physiFirstMonitorLayer3
 
G4Material * layer4MonitorChamberMaterial
 
G4double MOPIFirstAirGapZSize
 
G4double MOPISecondKaptonLayerXSize
 
G4double MOPISecondAluminumLayerYPosition
 
G4Box * solidMOPIFirstAirGap
 
void SetRangeShifterXPosition(G4double value)
 
G4double MOPIFirstAluminumLayerYPosition
 
void HadrontherapyBeamFinalCollimator()
 
G4GLOB_DLL std::ostream G4cout
 
G4double kaptonWindowYSize
 
void HadrontherapyBeamLineSupport()
 
G4LogicalVolume * logicMOPIFirstAirGap
 
G4VPhysicalVolume * physiMOPIMotherVolume
 
G4Material * MOPIMotherVolumeMaterial
 
G4Box * secondScatteringFoil
 
void SetInnerRadiusFinalCollimator(G4double)
 
G4double secondScatteringFoilXSize
 
G4double MOPISecondKaptonLayerZSize
 
G4Material * brassTubeMaterial
 
G4LogicalVolume * logicMOPIFirstKaptonLayer
 
void SetOuterRadiusStopper(G4double)
 
G4double firstScatteringFoilYSize
 
G4Material * modulatorBoxMaterial
 
void HadrontherapyBeamNozzle()
 
G4VPhysicalVolume * physiHoleFirstCollimatorModulatorBox
 
G4VPhysicalVolume * physiBrassTube2
 
void SetFirstScatteringFoilXSize(G4double)
 
static const double perCent
 
G4VPhysicalVolume * physiFirstMonitorLayer4
 
G4Material * brassTube3Material
 
G4double secondScatteringFoilXPosition
 
G4LogicalVolume * logicMOPISecondAluminumLayer
 
G4VPhysicalVolume * physiMOPISecondAirGap
 
void SetRangeShifterXSize(G4double halfSize)
 
G4double MOPISecondAluminumLayerZPosition
 
G4double MOPISecondAluminumLayerXPosition
 
void HadrontherapyRangeShifter()
 
G4double MOPISecondKaptonLayerZPosition
 
G4VPhysicalVolume * physiNozzleSupport
 
G4VPhysicalVolume * physiBrassTube3
 
G4double MOPICathodeZPosition
 
G4VPhysicalVolume * physiSecondMonitorLayer1
 
G4double startAngleStopper
 
void SetRSMaterial(G4String)
 
G4Material * kaptonWindowMaterial
 
G4LogicalVolume * logicMOPISecondAirGap
 
G4double MOPIFirstAluminumLayerYSize
 
G4VPhysicalVolume * physiSecondCollimatorModulatorBox
 
static G4RunManager * GetRunManager()
 
G4double MOPISecondKaptonLayerYPosition
 
G4double firstScatteringFoilZSize
 
G4VPhysicalVolume * physiHoleNozzleSupport
 
G4double MOPIFirstKaptonLayerZPosition
 
G4double secondScatteringFoilYPosition
 
G4double rangeShifterXPosition
 
G4Material * secondScatteringFoilMaterial
 
G4LogicalVolume * logicMOPISecondKaptonLayer
 
G4LogicalVolume * logicMOPIMotherVolume
 
G4double MOPICathodeXSize
 
G4LogicalVolume * logicMOPIFirstAluminumLayer
 
G4double spanningAngleStopper
 
G4VPhysicalVolume * physiMOPISecondKaptonLayer
 
G4VPhysicalVolume * physiMOPIFirstAluminumLayer
 
G4VPhysicalVolume * physiSecondScatteringFoil
 
G4double MOPIFirstKaptonLayerYSize
 
G4VPhysicalVolume * physiMOPICathode
 
static const G4VisAttributes Invisible
 
G4Material * layer2MonitorChamberMaterial
 
G4LogicalVolume * logicStopper
 
G4double MOPICathodeYSize
 
G4VPhysicalVolume * physiHoleSecondCollimatorModulatorBox
 
G4double MOPISecondAluminumLayerYSize
 
G4LogicalVolume * logicRangeShifterBox
 
G4VPhysicalVolume * physiStopper
 
void ConstructPassiveProtonBeamLine()
 
G4double kaptonWindowXPosition
 
G4VPhysicalVolume * physiMOPIFirstAirGap
 
void HadrontherapyMOPIDetector()
 
G4VisAttributes * darkGreen
 
G4Box * solidRangeShifterBox
 
G4double MOPIMotherVolumeXSize
 
G4double MOPIFirstAirGapXPosition
 
HadrontherapyModulator * modulator
 
G4VPhysicalVolume * physiBeamLineSupport
 
G4double MOPICathodeYPosition
 
G4double rangeShifterZSize
 
G4double MOPIFirstAirGapYSize
 
G4VPhysicalVolume * Construct()
 
G4double MOPICathodeZSize
 
G4Material * stopperMaterial
 
G4double MOPISecondAluminumLayerZSize
 
void InitializeDetectorROGeometry(HadrontherapyDetectorROGeometry *, G4ThreeVector detectorToWorldPosition)
 
G4VPhysicalVolume * physiMOPIFirstKaptonLayer
 
G4double vacuumZoneXPosition
 
G4double MOPISecondAirGapZSize
 
G4VPhysicalVolume * physiSecondMonitorLayer3
 
G4Material * MOPISecondAirGapMaterial
 
G4double MOPIFirstKaptonLayerXSize
 
G4VPhysicalVolume * physiBrassTube
 
G4Material * firstScatteringFoilMaterial
 
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
 
G4double stopperXPosition
 
G4double firstScatteringFoilXSize
 
G4ThreeVector GetDetectorToWorldPosition()
 
G4VPhysicalVolume * physiRangeShifterBox
 
G4double innerRadiusFinalCollimator
 
G4Material * vacuumZoneMaterial
 
G4Material * MOPISecondAluminumLayerMaterial
 
G4double MOPIFirstAluminumLayerXPosition
 
G4double stopperZPosition
 
G4double kaptonWindowZSize
 
G4double secondScatteringFoilYSize
 
G4Material * layer3MonitorChamberMaterial
 
G4double MOPISecondAirGapYPosition
 
G4VPhysicalVolume * physiMOPISecondAluminumLayer
 
G4Box * solidMOPISecondAirGap
 
G4Box * firstScatteringFoil
 
G4double MOPIFirstAluminumLayerZSize
 
G4Material * firstCollimatorMaterial
 
G4Box * solidMOPISecondAluminumLayer
 
G4VisAttributes * skyBlue
 
G4double MOPIMotherVolumeZPosition
 
G4VPhysicalVolume * physiBeamLineCover
 
G4Material * finalCollimatorMaterial
 
G4Material * MOPIFirstAirGapMaterial