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