56 modulator(0), physicalTreatmentRoom(0),hadrontherapyDetectorConstruction(0),
57 physiBeamLineSupport(0), physiBeamLineCover(0), physiBeamLineCover2(0),
58 firstScatteringFoil(0), physiFirstScatteringFoil(0), physiKaptonWindow(0),
59 solidStopper(0), physiStopper(0),
60 secondScatteringFoil(0), physiSecondScatteringFoil(0),
61 physiFirstCollimator(0), solidRangeShifterBox(0), logicRangeShifterBox(0),
62 physiRangeShifterBox(0), physiSecondCollimator(0),
63 physiFirstCollimatorModulatorBox(0),
64 physiHoleFirstCollimatorModulatorBox(0),
65 physiSecondCollimatorModulatorBox(0),
66 physiHoleSecondCollimatorModulatorBox(0),
67 physiMOPIMotherVolume(0),
68 physiFirstMonitorLayer1(0), physiFirstMonitorLayer2(0),
69 physiFirstMonitorLayer3(0), physiFirstMonitorLayer4(0),
70 physiSecondMonitorLayer1(0), physiSecondMonitorLayer2(0),
71 physiSecondMonitorLayer3(0), physiSecondMonitorLayer4(0),
72 physiNozzleSupport(0),
74 solidFinalCollimator(0),
75 physiFinalCollimator(0)
83 static G4String ROGeometryName =
"DetectorROGeometry";
88 G4cout <<
"Going to register Parallel world...";
145 white -> SetVisibility(
true);
146 white -> SetForceSolid(
true);
149 blue -> SetVisibility(
true);
150 blue -> SetForceSolid(
true);
153 gray-> SetVisibility(
true);
154 gray-> SetForceSolid(
true);
157 red-> SetVisibility(
true);
158 red-> SetForceSolid(
true);
161 yellow-> SetVisibility(
true);
162 yellow-> SetForceSolid(
true);
165 green -> SetVisibility(
true);
166 green -> SetForceSolid(
true);
177 skyBlue -> SetVisibility(
true);
178 skyBlue -> SetForceSolid(
true);
192 G4double defaultVacuumZoneXPosition = -3010.0 *
mm;
197 G4double defaultFirstScatteringFoilXSize = 0.0075 *
mm;
200 G4double defaultFirstScatteringFoilYSize = 52.5 *
mm;
203 G4double defaultFirstScatteringFoilZSize = 52.5 *
mm;
206 G4double defaultFirstScatteringFoilXPosition = 0.0 *
mm;
219 G4double defaultKaptonWindowXPosition = 100.0*
mm - defaultKaptonWindowXSize;
237 G4double defaultStopperXPosition = -2705.0 *
mm;
252 G4double defaultSecondScatteringFoilXSize = 0.0125 *
mm;
255 G4double defaultSecondScatteringFoilYSize = 52.5 *
mm;
258 G4double defaultSecondScatteringFoilZSize = 52.5 *
mm;
261 G4double defaultSecondScatteringFoilXPosition = defaultStopperXPosition + defaultHeightStopper + defaultSecondScatteringFoilXSize;
264 G4double defaultSecondScatteringFoilYPosition = 0 *
mm;
267 G4double defaultSecondScatteringFoilZPosition = 0 *
mm;
284 G4double defaultRangeShifterXPosition = -2393.0 *
mm;
287 G4double defaultRangeShifterYPosition = 0. *
mm;
290 G4double defaultRangeShifterZPosition = 0. *
mm;
301 G4double defaultMOPIMotherVolumeXSize = 12127.0 *um;
304 G4double defaultMOPIMotherVolumeYSize = 40.0 *
cm;
307 G4double defaultMOPIMotherVolumeZSize = 40.0 *
cm;
310 G4double defaultMOPIMotherVolumeXPosition = -1000.0 *
mm;
313 G4double defaultMOPIMotherVolumeYPosition = 0.0 *
mm;
316 G4double defaultMOPIMotherVolumeZPosition = 0.0 *
mm;
320 G4double defaultMOPIFirstKaptonLayerXSize = 35 *um;
323 G4double defaultMOPIFirstKaptonLayerYSize = 30 *
cm;
326 G4double defaultMOPIFirstKaptonLayerZSize = 30 *
cm;
332 G4double defaultMOPIFirstKaptonLayerYPosition = 0.0 *
mm;
335 G4double defaultMOPIFirstKaptonLayerZPosition = 0.0 *
mm;
339 G4double defaultMOPIFirstAluminumLayerXSize = 15 *um;
342 G4double defaultMOPIFirstAluminumLayerYSize = 30 *
cm;
345 G4double defaultMOPIFirstAluminumLayerZSize = 30 *
cm;
348 G4double defaultMOPIFirstAluminumLayerXPosition =
352 G4double defaultMOPIFirstAluminumLayerYPosition = 0.0 *
mm;
355 G4double defaultMOPIFirstAluminumLayerZPosition = 0.0 *
mm;
359 G4double defaultMOPIFirstAirGapXSize = 6000 *um;
362 G4double defaultMOPIFirstAirGapYSize = 30 *
cm;
365 G4double defaultMOPIFirstAirGapZSize = 30 *
cm;
368 G4double defaultMOPIFirstAirGapXPosition =
372 G4double defaultMOPIFirstAirGapYPosition = 0.0 *
mm;
375 G4double defaultMOPIFirstAirGapZPosition = 0.0 *
mm;
379 G4double defaultMOPICathodeXSize = 25.0 *um;
388 G4double defaultMOPICathodeXPosition =
392 G4double defaultMOPICathodeYPosition = 0.0 *
mm;
395 G4double defaultMOPICathodeZPosition = 0.0 *
mm;
399 G4double defaultMOPISecondAirGapXSize = 6000 *um;
402 G4double defaultMOPISecondAirGapYSize = 30 *
cm;
405 G4double defaultMOPISecondAirGapZSize = 30 *
cm;
408 G4double defaultMOPISecondAirGapXPosition =
412 G4double defaultMOPISecondAirGapYPosition = 0.0 *
mm;
415 G4double defaultMOPISecondAirGapZPosition = 0.0 *
mm;
419 G4double defaultMOPISecondAluminumLayerXSize = 15 *um;
422 G4double defaultMOPISecondAluminumLayerYSize = 30 *
cm;
425 G4double defaultMOPISecondAluminumLayerZSize = 30 *
cm;
428 G4double defaultMOPISecondAluminumLayerXPosition =
432 G4double defaultMOPISecondAluminumLayerYPosition = 0.0 *
mm;
435 G4double defaultMOPISecondAluminumLayerZPosition = 0.0 *
mm;
439 G4double defaultMOPISecondKaptonLayerXSize = 35 *um;
442 G4double defaultMOPISecondKaptonLayerYSize = 30 *
cm;
445 G4double defaultMOPISecondKaptonLayerZSize = 30 *
cm;
448 G4double defaultMOPISecondKaptonLayerXPosition =
452 G4double defaultMOPISecondKaptonLayerYPosition = 0.0 *
mm;
455 G4double defaultMOPISecondKaptonLayerZPosition = 0.0 *
mm;
461 G4double defaultinnerRadiusFinalCollimator = 7.5 *
mm;
570 G4Box* treatmentRoom =
new G4Box(
"TreatmentRoom",worldX,worldY,worldZ);
573 "logicTreatmentRoom",
577 "physicalTreatmentRoom",
608 const G4double beamLineSupportXSize = 1.5*
m;
610 const G4double beamLineSupportZSize = 600.*
mm;
612 const G4double beamLineSupportXPosition = -1745.09 *
mm;
613 const G4double beamLineSupportYPosition = -230. *
mm;
614 const G4double beamLineSupportZPosition = 0.*
mm;
616 G4Box* beamLineSupport =
new G4Box(
"BeamLineSupport",
617 beamLineSupportXSize,
618 beamLineSupportYSize,
619 beamLineSupportZSize);
625 beamLineSupportYPosition,
626 beamLineSupportZPosition),
628 logicBeamLineSupport,
633 logicBeamLineSupport -> SetVisAttributes(
gray);
638 const G4double beamLineCoverXSize = 1.5*
m;
642 const G4double beamLineCoverXPosition = -1745.09 *
mm;
643 const G4double beamLineCoverYPosition = -1000.*
mm;
644 const G4double beamLineCoverZPosition = 600.*
mm;
646 G4Box* beamLineCover =
new G4Box(
"BeamLineCover",
656 beamLineCoverYPosition,
657 beamLineCoverZPosition),
669 beamLineCoverYPosition,
670 - beamLineCoverZPosition),
677 logicBeamLineCover -> SetVisAttributes(
blue);
705 "FirstScatteringFoil");
708 "FirstScatteringFoil", logicFirstScatteringFoil, physiVacuumZone,
711 logicFirstScatteringFoil -> SetVisAttributes(
skyBlue);
716 G4Box* solidKaptonWindow =
new G4Box(
"KaptonWindow",
726 "KaptonWindow", logicKaptonWindow,
727 physiVacuumZone,
false, 0);
729 logicKaptonWindow -> SetVisAttributes(
darkOrange3);
779 "SecondScatteringFoil");
784 "SeconScatteringFoil",
785 logicSecondScatteringFoil,
790 logicSecondScatteringFoil -> SetVisAttributes(
skyBlue);
827 const G4double firstCollimatorYSize = 100.*
mm;
828 const G4double firstCollimatorZSize = 100.*
mm;
830 const G4double firstCollimatorXPosition = -2673.00*
mm;
831 const G4double firstCollimatorYPosition = 0.*
mm;
832 const G4double firstCollimatorZPosition = 0.*
mm;
834 G4Box* solidFirstCollimator =
new G4Box(
"FirstCollimator",
835 firstCollimatorXSize,
836 firstCollimatorYSize,
837 firstCollimatorZSize);
844 firstCollimatorYPosition,
845 firstCollimatorZPosition),
847 logicFirstCollimator,
854 G4double innerRadiusHoleFirstCollimator = 0.*
mm;
855 G4double outerRadiusHoleFirstCollimator = 15.*
mm;
858 G4double spanningAngleHoleFirstCollimator = 360.*
deg;
860 G4Tubs* solidHoleFirstCollimator =
new G4Tubs(
"HoleFirstCollimator",
861 innerRadiusHoleFirstCollimator,
862 outerRadiusHoleFirstCollimator,
863 hightHoleFirstCollimator,
864 startAngleHoleFirstCollimator,
865 spanningAngleHoleFirstCollimator);
869 "HoleFirstCollimator",
877 "HoleFirstCollimator",
878 logicHoleFirstCollimator,
886 const G4double secondCollimatorXPosition = -1900.00*
mm;
887 const G4double secondCollimatorYPosition = 0*
mm;
888 const G4double secondCollimatorZPosition = 0*
mm;
891 secondCollimatorYPosition,
892 secondCollimatorZPosition),
894 logicFirstCollimator,
903 "HoleSecondCollimator",
904 logicHoleFirstCollimator,
918 const G4double firstCollimatorModulatorXSize = 10.*
mm;
919 const G4double firstCollimatorModulatorYSize = 200.*
mm;
920 const G4double firstCollimatorModulatorZSize = 200.*
mm;
922 const G4double firstCollimatorModulatorXPosition = -2523.00*
mm;
923 const G4double firstCollimatorModulatorYPosition = 0.*
mm;
924 const G4double firstCollimatorModulatorZPosition = 0.*
mm;
926 G4Box* solidFirstCollimatorModulatorBox =
new G4Box(
"FirstCollimatorModulatorBox",
927 firstCollimatorModulatorXSize,
928 firstCollimatorModulatorYSize,
929 firstCollimatorModulatorZSize);
933 "FirstCollimatorModulatorBox");
936 firstCollimatorModulatorYPosition,
937 firstCollimatorModulatorZPosition),
938 "FirstCollimatorModulatorBox",
939 logicFirstCollimatorModulatorBox,
945 const G4double innerRadiusHoleFirstCollimatorModulatorBox = 0.*
mm;
946 const G4double outerRadiusHoleFirstCollimatorModulatorBox = 31.*
mm;
947 const G4double hightHoleFirstCollimatorModulatorBox = 10.*
mm;
948 const G4double startAngleHoleFirstCollimatorModulatorBox = 0.*
deg;
949 const G4double spanningAngleHoleFirstCollimatorModulatorBox = 360.*
deg;
951 G4Tubs* solidHoleFirstCollimatorModulatorBox =
new G4Tubs(
"HoleFirstCollimatorModulatorBox",
952 innerRadiusHoleFirstCollimatorModulatorBox,
953 outerRadiusHoleFirstCollimatorModulatorBox,
954 hightHoleFirstCollimatorModulatorBox ,
955 startAngleHoleFirstCollimatorModulatorBox,
956 spanningAngleHoleFirstCollimatorModulatorBox);
960 "HoleFirstCollimatorModulatorBox",
964 "HoleFirstCollimatorModulatorBox",
965 logicHoleFirstCollimatorModulatorBox,
971 const G4double secondCollimatorModulatorXSize = 10.*
mm;
972 const G4double secondCollimatorModulatorYSize = 200.*
mm;
973 const G4double secondCollimatorModulatorZSize = 200.*
mm;
975 const G4double secondCollimatorModulatorXPosition = -1953.00 *
mm;
977 const G4double secondCollimatorModulatorYPosition = 0.*
mm;
978 const G4double secondCollimatorModulatorZPosition = 0.*
mm;
980 G4Box* solidSecondCollimatorModulatorBox =
new G4Box(
"SecondCollimatorModulatorBox",
981 secondCollimatorModulatorXSize,
982 secondCollimatorModulatorYSize,
983 secondCollimatorModulatorZSize);
987 "SecondCollimatorModulatorBox");
990 secondCollimatorModulatorYPosition,
991 secondCollimatorModulatorZPosition),
992 "SecondCollimatorModulatorBox",
993 logicSecondCollimatorModulatorBox,
999 const G4double innerRadiusHoleSecondCollimatorModulatorBox = 0.*
mm;
1000 const G4double outerRadiusHoleSecondCollimatorModulatorBox = 31.*
mm;
1001 const G4double hightHoleSecondCollimatorModulatorBox = 10.*
mm;
1002 const G4double startAngleHoleSecondCollimatorModulatorBox = 0.*
deg;
1003 const G4double spanningAngleHoleSecondCollimatorModulatorBox = 360.*
deg;
1005 G4Tubs* solidHoleSecondCollimatorModulatorBox =
new G4Tubs(
"HoleSecondCollimatorModulatorBox",
1006 innerRadiusHoleSecondCollimatorModulatorBox,
1007 outerRadiusHoleSecondCollimatorModulatorBox,
1008 hightHoleSecondCollimatorModulatorBox ,
1009 startAngleHoleSecondCollimatorModulatorBox,
1010 spanningAngleHoleSecondCollimatorModulatorBox);
1014 "HoleSecondCollimatorModulatorBox",
1018 "HoleSecondCollimatorModulatorBox",
1019 logicHoleSecondCollimatorModulatorBox,
1022 logicFirstCollimator -> SetVisAttributes(
yellow);
1023 logicFirstCollimatorModulatorBox -> SetVisAttributes(
blue);
1024 logicSecondCollimatorModulatorBox -> SetVisAttributes(
blue);
1045 const G4double monitor1XPosition = -1262.47498 *
mm;
1046 const G4double monitor2XPosition = -4.500011*
mm;
1047 const G4double monitor4XPosition = 4.500011*
mm;
1049 G4Box* solidFirstMonitorLayer1 =
new G4Box(
"FirstMonitorLayer1",
1056 "FirstMonitorLayer1");
1060 "FirstMonitorLayer1",
1061 logicFirstMonitorLayer1,
1066 G4Box* solidFirstMonitorLayer2 =
new G4Box(
"FirstMonitorLayer2",
1073 "FirstMonitorLayer2");
1076 "FirstMonitorLayer2",
1077 logicFirstMonitorLayer2,
1082 G4Box* solidFirstMonitorLayer3 =
new G4Box(
"FirstMonitorLayer3",
1089 "FirstMonitorLayer3");
1094 logicFirstMonitorLayer3,
1099 G4Box* solidFirstMonitorLayer4 =
new G4Box(
"FirstMonitorLayer4",
1106 "FirstMonitorLayer4");
1109 "FirstMonitorLayer4",
1110 logicFirstMonitorLayer4,
1127 logicFirstMonitorLayer3 -> SetVisAttributes(
white);
1160 "MOPIMotherVolume");
1179 "MOPIFirstKaptonLayer");
1185 "MOPIFirstKaptonLayer",
1199 "MOPIFirstAluminumLayer");
1205 "MOPIFirstAluminumLayer",
1252 "MOPISecondAirgap");
1269 "MOPISecondAluminumLayer");
1275 "MOPISecondAluminumLayer",
1289 "MOPISecondKaptonLayer");
1295 "MOPISecondKaptonLayer",
1319 const G4double nozzleSupportXSize = 29.5 *
mm;
1320 const G4double nozzleSupportYSize = 180. *
mm;
1321 const G4double nozzleSupportZSize = 180. *
mm;
1323 const G4double nozzleSupportXPosition = -397.50 *
mm;
1330 G4Box* solidNozzleSupport =
new G4Box(
"NozzleSupport",
1333 nozzleSupportZSize);
1346 logicNozzleSupport -> SetVisAttributes(
yellow);
1353 const G4double innerRadiusHoleNozzleSupport = 0.*
mm;
1354 const G4double outerRadiusHoleNozzleSupport = 21.5*
mm;
1355 const G4double hightHoleNozzleSupport = 29.5 *
mm;
1356 const G4double startAngleHoleNozzleSupport = 0.*
deg;
1357 const G4double spanningAngleHoleNozzleSupport = 360.*
deg;
1359 G4Tubs* solidHoleNozzleSupport =
new G4Tubs(
"HoleNozzleSupport",
1360 innerRadiusHoleNozzleSupport,
1361 outerRadiusHoleNozzleSupport,
1362 hightHoleNozzleSupport,
1363 startAngleHoleNozzleSupport,
1364 spanningAngleHoleNozzleSupport);
1368 "HoleNozzleSupport",
1375 "HoleNozzleSupport",
1376 logicHoleNozzleSupport,
1380 logicHoleNozzleSupport -> SetVisAttributes(
darkOrange3);
1386 const G4double outerRadiusBrassTube = 21.5 *
mm;
1391 const G4double brassTubeXPosition = -227.5 *
mm;
1394 innerRadiusBrassTube,
1395 outerRadiusBrassTube,
1397 startAngleBrassTube,
1398 spanningAngleBrassTube);
1420 const G4double innerRadiusBrassTube2= 18.*
mm;
1421 const G4double outerRadiusBrassTube2 = 21.5 *
mm;
1424 const G4double spanningAngleBrassTube2 = 360.*
deg;
1429 innerRadiusBrassTube2,
1430 outerRadiusBrassTube2,
1432 startAngleBrassTube2,
1433 spanningAngleBrassTube2);
1456 const G4double innerRadiusBrassTube3= 18.*
mm;
1457 const G4double outerRadiusBrassTube3 = 21.5 *
mm;
1460 const G4double spanningAngleBrassTube3 = 360.*
deg;
1462 const G4double brassTube3XPosition = -437 *
mm;
1465 innerRadiusBrassTube3,
1466 outerRadiusBrassTube3,
1468 startAngleBrassTube3,
1469 spanningAngleBrassTube3);
1495 const G4double outerRadiusFinalCollimator = 21.5*
mm;
1496 const G4double hightFinalCollimator = 3.5*
mm;
1497 const G4double startAngleFinalCollimator = 0.*
deg;
1498 const G4double spanningAngleFinalCollimator = 360.*
deg;
1499 const G4double finalCollimatorXPosition = -83.5 *
mm;
1509 outerRadiusFinalCollimator,
1510 hightFinalCollimator,
1511 startAngleFinalCollimator,
1512 spanningAngleFinalCollimator);
1524 logicFinalCollimator -> SetVisAttributes(
yellow);
1532 G4cout <<
"The Range Shifter is translated to"<< value/
mm <<
"mm along the X axis" <<
G4endl;
1549 G4cout <<
"The X size of the first scattering foil is (mm):"<<
1559 G4cout <<
"The X size of the second scattering foil is (mm):"<<
1569 G4cout <<
"OuterRadius od the Stopper is (mm):"
1579 G4cout<<
"Inner Radius of the final collimator is (mm):"
1593 G4cout <<
"The material of the Range Shifter has been changed to " << materialChoice <<
G4endl;
1598 G4cout <<
"WARNING: material \"" << materialChoice <<
"\" doesn't exist in NIST elements/materials"
1599 " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" <<
G4endl;
1600 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