51 physicalTreatmentRoom(0),hadrontherapyDetectorConstruction(0),
52 physiBeamLineSupport(0), physiBeamLineCover(0), physiBeamLineCover2(0),
53 physiKaptonWindow(0),PhysiRippleFilter(0),PhysiRippleFilterBase(0),PhysiRippleFilterTrd(0),
54 physiFirstMonitorLayer1(0), physiFirstMonitorLayer2(0),
55 physiFirstMonitorLayer3(0), physiFirstMonitorLayer4(0),
56 physiNozzleSupport(0), physiHoleNozzleSupport(0)
64 static G4String ROGeometryName =
"DetectorROGeometry";
68 G4cout <<
"Going to register Parallel world...";
120 white -> SetVisibility(
true);
121 white -> SetForceSolid(
true);
124 black -> SetVisibility(
true);
125 black -> SetForceSolid(
true);
129 blue -> SetVisibility(
true);
130 blue -> SetForceSolid(
true);
133 gray-> SetVisibility(
true);
134 gray-> SetForceSolid(
true);
137 red-> SetVisibility(
true);
138 red-> SetForceSolid(
true);
141 yellow-> SetVisibility(
true);
142 yellow-> SetForceSolid(
true);
145 green -> SetVisibility(
true);
146 green -> SetForceSolid(
true);
157 skyBlue -> SetVisibility(
true);
158 skyBlue -> SetForceSolid(
true);
164 G4double defaultinnerRadiusFinalCollimator = 12.5 *
mm;
191 brass -> AddElement(zincNist, fractionmass = 30 *
perCent);
192 brass -> AddElement(copperNist, fractionmass = 70 *
perCent);
254 "logicTreatmentRoom",
258 "physicalTreatmentRoom",
402 "FirstScatteringFoil");
440 G4double defaultRippleFilterXPosition = -1638.0*
mm;
441 G4double ripple_position=(defaultRippleFilterXPosition);
495 "LogicRippleFilterBase",
518 "LogicRippleFilterTrd",
523 G4int numberOfTrd =
static_cast<int>(std::floor( RF_y / (RFtrd_bottom+distanceBetweenTrd) ));
525 G4int N =
static_cast<int>( std::floor(numberOfTrd-1)/2 );
527 G4int copyNumber = 0;
529 for(
int i = -N; i <=
N; i++ )
533 i*(RFtrd_bottom+distanceBetweenTrd),
534 -RF_z/2+RFbase_z+RFtrd_z/2),
535 "PhysiRippleFilterTrd",
572 "PMMACollimatorSupport");
575 "PMMACollimatorSupport",
583 yellow-> SetVisibility(
true);
584 yellow-> SetForceWireframe(
true);
656 "FirstMonitorLayer1");
660 "FirstMonitorLayer1",
673 "FirstMonitorLayer2");
676 "FirstMonitorLayer2",
689 "FirstMonitorLayer3");
706 "FirstMonitorLayer4");
709 "FirstMonitorLayer4",
760 yellow-> SetVisibility(
true);
761 yellow-> SetForceWireframe(
true);
945 G4cout <<
"The Ripple Filter is translated to"<< value/
mm <<
"mm along the X axis" <<
G4endl;
954 G4cout<<
"Inner Radius of the final collimator is (mm):"
970 G4cout <<
"The material of the Ripple Filter has been changed to " << materialChoice <<
G4endl;
975 G4cout <<
"WARNING: material \"" << materialChoice <<
"\" doesn't exist in NIST elements/materials"
976 " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]" <<
G4endl;
977 G4cout <<
"Use command \"/parameter/nist\" to see full materials list!" <<
G4endl;
G4Box * solidKaptonWindow
G4LogicalVolume * logicBeamLineCover
static G4RunManager * GetRunManager()
G4Material * kaptonWindowMaterial
G4double beamLineCoverXSize
G4double kaptonWindowXSize
G4double nozzleSupportZSize
G4double beamLineCoverXPosition
CLHEP::Hep3Vector G4ThreeVector
G4double firstScatteringFoilYSize
G4VPhysicalVolume * physiVacuumZone
G4double nozzleSupportXPosition
G4double beamLineSupportXSize
G4double beamLineCoverYPosition
void SetInnerRadiusFinalCollimator(G4double)
void HadrontherapyBeamLineSupport()
G4Box * SolidRippleFilter
static constexpr double mm
G4ThreeVector GetDetectorToWorldPosition()
G4VPhysicalVolume * physiBrassTube2
G4double finalCollimatorXPosition
G4LogicalVolume * logicTreatmentRoom
G4double startAngleBrassTube
static constexpr double perCent
G4Tubs * solidFinalCollimator
G4Tubs * solidHoleNozzleSupport
G4double startAngleHoleNozzleSupport
void HadrontherapyBeamNozzle()
G4double brassTube3XPosition
G4double spanningAngleBrassTube3
G4double nozzleSupportYSize
G4VPhysicalVolume * physiHoleNozzleSupport
G4double innerRadiusBrassTube3
G4LogicalVolume * logicVacuumZone
G4Box * solidFirstMonitorLayer3
G4Box * solidFirstMonitorLayer2
void InitializeDetectorROGeometry(HadrontherapyDetectorROGeometry *, G4ThreeVector detectorToWorldPosition)
G4Material * firstScatteringFoilMaterial
G4Material * layer1MonitorChamberMaterial
G4VPhysicalVolume * physiBrassTube3
void SetRippleFilterXPosition(G4double)
G4VPhysicalVolume * physicalTreatmentRoom
G4VPhysicalVolume * physiBeamLineSupport
G4VisAttributes * darkGreen
G4double outerRadiusBrassTube2
G4double beamLineSupportYSize
G4Material * beamLineSupportMaterial
G4Trd * SolidRippleFilterTrd
static const G4VisAttributes & GetInvisible()
G4Material * copperNistMaterial
G4VPhysicalVolume * physiFirstMonitorLayer1
G4double PMMACollimatorSupportXSize
G4Box * SolidRippleFilterBase
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
G4double beamLineSupportZPosition
static constexpr double g
G4LogicalVolume * logicFinalCollimator
G4LogicalVolume * logicFirstMonitorLayer1
G4Material * seconHoleNozzleSupportMaterial
static constexpr double m
G4Material * layer4MonitorChamberMaterial
G4Material * PMMACollimatorMaterial
G4double startAnglePMMACollimator
G4double beamLineCoverZPosition
G4VPhysicalVolume * physiPMMACollimatorSupport
void VacuumToAirInterface()
G4double innerRadiusHoleNozzleSupport
G4double spanningAngleFinalCollimator
G4Material * brassTubeMaterial
G4double startAngleFinalCollimator
G4double monitor2XPosition
G4double brassTubeXPosition
G4LogicalVolume * logicBrassTube2
G4Material * nozzleSupportMaterial
const XML_Char int const XML_Char * value
G4LogicalVolume * logicFirstScatteringFoil
G4double innerRadiusPMMACollimator
G4LogicalVolume * logicBeamLineSupport
static constexpr double deg
G4double firstScatteringFoilXSize
G4VPhysicalVolume * physiFirstMonitorLayer2
G4Box * solidPMMACollimatorSupport
G4double outerRadiusBrassTube3
G4double firstScatteringFoilZSize
G4double monitor4XPosition
G4LogicalVolume * logicFirstMonitorLayer2
void HadrontherapyRippleFilter()
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
void HadrontherapyPMMACollimator()
G4VPhysicalVolume * physiFinalCollimator
G4double outerRadiusFinalCollimator
G4double spanningAngleBrassTube
G4double outerRadiusBrassTube
void HadrontherapyBeamFinalCollimator()
HadrontherapyDetectorROGeometry * RO
G4Material * rippleFilterMaterial
G4double monitor1XPosition
G4LogicalVolume * logicHoleNozzleSupport
G4VPhysicalVolume * physiFirstMonitorLayer4
G4LogicalVolume * logicFirstMonitorLayer4
G4double spanningAnglePMMACollimator
G4VPhysicalVolume * physiFirstScatteringFoil
G4Tubs * solidPMMACollimator
G4VPhysicalVolume * PhysiRippleFilter
G4Material * aluminumNist
G4VisAttributes * skyBlue
G4double kaptonWindowXPosition
G4VPhysicalVolume * physiFirstMonitorLayer3
G4double startAngleBrassTube2
G4Material * tantalumNist
G4double spanningAngleHoleNozzleSupport
G4VPhysicalVolume * physiBrassTube
G4VPhysicalVolume * PhysiRippleFilterBase
G4double hightPMMACollimator
HadrontherapyDetectorConstruction * hadrontherapyDetectorConstruction
G4Material * holeNozzleSupportMaterial
G4Box * solidNozzleSupport
G4LogicalVolume * LogicRippleFilterTrd
HepRotation & rotateY(double delta)
G4LogicalVolume * logicPMMACollimatorSupport
G4double kaptonWindowYSize
G4double beamLineSupportYPosition
G4double hightHoleNozzleSupport
G4LogicalVolume * LogicRippleFilterBase
G4VPhysicalVolume * Construct()
G4VPhysicalVolume * PhysiRippleFilterTrd
void SetRippleFilterMaterial(G4String)
G4double innerRadiusFinalCollimator
G4double hightFinalCollimator
G4double outerRadiusHoleNozzleSupport
G4double innerRadiusBrassTube
void HadrontherapyBeamMonitoring()
G4LogicalVolume * logicBrassTube3
G4LogicalVolume * logicBrassTube
G4LogicalVolume * LogicRippleFilter
G4Box * solidFirstMonitorLayer4
static constexpr double cm
G4GLOB_DLL std::ostream G4cout
G4double beamLineSupportZSize
G4double kaptonWindowZSize
G4double beamLineCoverZSize
G4double beamLineSupportXPosition
G4Material * layer2MonitorChamberMaterial
G4double PMMACollimatorSupportYSize
G4Box * solidFirstMonitorLayer1
PassiveCarbonBeamLineMessenger * PassiveCarbonMessenger
G4Box * firstScatteringFoil
G4double beamLineCoverYSize
G4LogicalVolume * logicKaptonWindow
G4LogicalVolume * logicNozzleSupport
G4double PMMACollimatorSupportZSize
G4LogicalVolume * logicFirstMonitorLayer3
G4Material * rippleFilterBoxMaterial
void RegisterParallelWorld(G4VUserParallelWorld *)
G4double nozzleSupportXSize
G4double vacuumPipeXPosition
G4VisAttributes * darkOrange3
G4Material * galacticNist
static constexpr double mole
G4double innerRadiusBrassTube2
G4VPhysicalVolume * physiBeamLineCover2
void SetDefaultDimensions()
void ConstructPassiveCarbonBeamLine()
G4double spanningAngleBrassTube2
G4LogicalVolume * logicPMMACollimator
static constexpr double cm3
G4VPhysicalVolume * physiPMMACollimator
G4Material * layer3MonitorChamberMaterial
G4double startAngleBrassTube3
G4VPhysicalVolume * physiKaptonWindow
G4Material * brassTube2Material
G4double outerRadiusPMMACollimator
G4VPhysicalVolume * physiBeamLineCover
G4double firstScatteringFoilXPosition
G4Material * vacuumZoneMaterial
G4Material * finalCollimatorMaterial
static G4NistManager * Instance()
G4double PMMACollimatorXPosition
G4Material * brassTube3Material
G4VPhysicalVolume * physiNozzleSupport