Geant4  10.02.p03
PassiveProtonBeamLine Class Reference

#include <PassiveProtonBeamLine.hh>

Inheritance diagram for PassiveProtonBeamLine:
Collaboration diagram for PassiveProtonBeamLine:

Public Member Functions

 PassiveProtonBeamLine ()
 
 ~PassiveProtonBeamLine ()
 
G4VPhysicalVolumeConstruct ()
 
void HadrontherapyBeamLineSupport ()
 
void HadrontherapyBeamScatteringFoils ()
 
void HadrontherapyRangeShifter ()
 
void HadrontherapyBeamCollimators ()
 
void HadrontherapyBeamMonitoring ()
 
void HadrontherapyMOPIDetector ()
 
void HadrontherapyBeamNozzle ()
 
void HadrontherapyBeamFinalCollimator ()
 
void SetRangeShifterXPosition (G4double value)
 
void SetRangeShifterXSize (G4double halfSize)
 
void SetFirstScatteringFoilXSize (G4double)
 
void SetSecondScatteringFoilXSize (G4double)
 
void SetOuterRadiusStopper (G4double)
 
void SetInnerRadiusFinalCollimator (G4double)
 
void SetRSMaterial (G4String)
 
void SetModulatorAngle (G4double angle)
 
- Public Member Functions inherited from G4VUserDetectorConstruction
 G4VUserDetectorConstruction ()
 
virtual ~G4VUserDetectorConstruction ()
 
virtual void ConstructSDandField ()
 
virtual void CloneSD ()
 
virtual void CloneF ()
 
void RegisterParallelWorld (G4VUserParallelWorld *)
 
G4int ConstructParallelGeometries ()
 
void ConstructParallelSD ()
 
G4int GetNumberOfParallelWorld () const
 
G4VUserParallelWorldGetParallelWorld (G4int i) const
 

Static Public Member Functions

static PassiveProtonBeamLineGetInstance ()
 

Private Member Functions

void SetDefaultDimensions ()
 
void ConstructPassiveProtonBeamLine ()
 

Private Attributes

HadrontherapyModulatormodulator
 
PassiveProtonBeamLineMessengerpassiveMessenger
 
G4VPhysicalVolumephysicalTreatmentRoom
 
HadrontherapyDetectorConstructionhadrontherapyDetectorConstruction
 
G4Materialkapton
 
G4double vacuumZoneXSize
 
G4double vacuumZoneYSize
 
G4double vacuumZoneZSize
 
G4double vacuumZoneXPosition
 
G4double firstScatteringFoilXSize
 
G4double firstScatteringFoilYSize
 
G4double firstScatteringFoilZSize
 
G4double firstScatteringFoilXPosition
 
G4double kaptonWindowXSize
 
G4double kaptonWindowYSize
 
G4double kaptonWindowZSize
 
G4double kaptonWindowXPosition
 
G4double innerRadiusStopper
 
G4double heightStopper
 
G4double startAngleStopper
 
G4double spanningAngleStopper
 
G4double stopperXPosition
 
G4double stopperYPosition
 
G4double stopperZPosition
 
G4double outerRadiusStopper
 
G4double secondScatteringFoilXSize
 
G4double secondScatteringFoilYSize
 
G4double secondScatteringFoilZSize
 
G4double secondScatteringFoilXPosition
 
G4double secondScatteringFoilYPosition
 
G4double secondScatteringFoilZPosition
 
G4double rangeShifterXSize
 
G4double rangeShifterYSize
 
G4double rangeShifterZSize
 
G4double rangeShifterXPosition
 
G4double rangeShifterYPosition
 
G4double rangeShifterZPosition
 
G4VPhysicalVolumephysiBeamLineSupport
 
G4VPhysicalVolumephysiBeamLineCover
 
G4VPhysicalVolumephysiBeamLineCover2
 
G4BoxfirstScatteringFoil
 
G4VPhysicalVolumephysiFirstScatteringFoil
 
G4VPhysicalVolumephysiKaptonWindow
 
G4TubssolidStopper
 
G4VPhysicalVolumephysiStopper
 
G4LogicalVolumelogicStopper
 
G4BoxsecondScatteringFoil
 
G4VPhysicalVolumephysiSecondScatteringFoil
 
G4VPhysicalVolumephysiFirstCollimator
 
G4VPhysicalVolumephysiHoleFirstCollimator
 
G4BoxsolidRangeShifterBox
 
G4LogicalVolumelogicRangeShifterBox
 
G4VPhysicalVolumephysiRangeShifterBox
 
G4VPhysicalVolumephysiSecondCollimator
 
G4VPhysicalVolumephysiHoleSecondCollimator
 
G4VPhysicalVolumephysiFirstCollimatorModulatorBox
 
G4VPhysicalVolumephysiHoleFirstCollimatorModulatorBox
 
G4VPhysicalVolumephysiSecondCollimatorModulatorBox
 
G4VPhysicalVolumephysiHoleSecondCollimatorModulatorBox
 
G4VPhysicalVolumephysiMOPIMotherVolume
 
G4LogicalVolumelogicMOPIMotherVolume
 
G4BoxsolidMOPIMotherVolume
 
G4double MOPIMotherVolumeXSize
 
G4double MOPIMotherVolumeYSize
 
G4double MOPIMotherVolumeZSize
 
G4double MOPIMotherVolumeXPosition
 
G4double MOPIMotherVolumeYPosition
 
G4double MOPIMotherVolumeZPosition
 
G4double MOPIFirstKaptonLayerXSize
 
G4double MOPIFirstKaptonLayerYSize
 
G4double MOPIFirstKaptonLayerZSize
 
G4double MOPIFirstKaptonLayerXPosition
 
G4double MOPIFirstKaptonLayerYPosition
 
G4double MOPIFirstKaptonLayerZPosition
 
G4BoxsolidMOPIFirstKaptonLayer
 
G4LogicalVolumelogicMOPIFirstKaptonLayer
 
G4VPhysicalVolumephysiMOPIFirstKaptonLayer
 
G4double MOPIFirstAluminumLayerXSize
 
G4double MOPIFirstAluminumLayerYSize
 
G4double MOPIFirstAluminumLayerZSize
 
G4double MOPIFirstAluminumLayerXPosition
 
G4double MOPIFirstAluminumLayerYPosition
 
G4double MOPIFirstAluminumLayerZPosition
 
G4BoxsolidMOPIFirstAluminumLayer
 
G4LogicalVolumelogicMOPIFirstAluminumLayer
 
G4VPhysicalVolumephysiMOPIFirstAluminumLayer
 
G4double MOPIFirstAirGapXSize
 
G4double MOPIFirstAirGapYSize
 
G4double MOPIFirstAirGapZSize
 
G4double MOPIFirstAirGapXPosition
 
G4double MOPIFirstAirGapYPosition
 
G4double MOPIFirstAirGapZPosition
 
G4BoxsolidMOPIFirstAirGap
 
G4LogicalVolumelogicMOPIFirstAirGap
 
G4VPhysicalVolumephysiMOPIFirstAirGap
 
G4double MOPICathodeXSize
 
G4double MOPICathodeYSize
 
G4double MOPICathodeZSize
 
G4double MOPICathodeXPosition
 
G4double MOPICathodeYPosition
 
G4double MOPICathodeZPosition
 
G4BoxsolidMOPICathode
 
G4LogicalVolumelogicMOPICathode
 
G4VPhysicalVolumephysiMOPICathode
 
G4VisAttributesredWire
 
G4double MOPISecondAirGapXSize
 
G4double MOPISecondAirGapYSize
 
G4double MOPISecondAirGapZSize
 
G4double MOPISecondAirGapXPosition
 
G4double MOPISecondAirGapYPosition
 
G4double MOPISecondAirGapZPosition
 
G4BoxsolidMOPISecondAirGap
 
G4LogicalVolumelogicMOPISecondAirGap
 
G4VPhysicalVolumephysiMOPISecondAirGap
 
G4double MOPISecondAluminumLayerXSize
 
G4double MOPISecondAluminumLayerYSize
 
G4double MOPISecondAluminumLayerZSize
 
G4double MOPISecondAluminumLayerXPosition
 
G4double MOPISecondAluminumLayerYPosition
 
G4double MOPISecondAluminumLayerZPosition
 
G4BoxsolidMOPISecondAluminumLayer
 
G4LogicalVolumelogicMOPISecondAluminumLayer
 
G4VPhysicalVolumephysiMOPISecondAluminumLayer
 
G4double MOPISecondKaptonLayerXSize
 
G4double MOPISecondKaptonLayerYSize
 
G4double MOPISecondKaptonLayerZSize
 
G4double MOPISecondKaptonLayerXPosition
 
G4double MOPISecondKaptonLayerYPosition
 
G4double MOPISecondKaptonLayerZPosition
 
G4BoxsolidMOPISecondKaptonLayer
 
G4LogicalVolumelogicMOPISecondKaptonLayer
 
G4VPhysicalVolumephysiMOPISecondKaptonLayer
 
G4double innerRadiusFinalCollimator
 
G4VPhysicalVolumemother
 
G4VPhysicalVolumephysiFirstMonitorLayer1
 
G4VPhysicalVolumephysiFirstMonitorLayer2
 
G4VPhysicalVolumephysiFirstMonitorLayer3
 
G4VPhysicalVolumephysiFirstMonitorLayer4
 
G4VPhysicalVolumephysiSecondMonitorLayer1
 
G4VPhysicalVolumephysiSecondMonitorLayer2
 
G4VPhysicalVolumephysiSecondMonitorLayer3
 
G4VPhysicalVolumephysiSecondMonitorLayer4
 
G4VPhysicalVolumephysiNozzleSupport
 
G4VPhysicalVolumephysiHoleNozzleSupport
 
G4VPhysicalVolumephysiBrassTube
 
G4VPhysicalVolumephysiBrassTube2
 
G4VPhysicalVolumephysiBrassTube3
 
G4TubssolidFinalCollimator
 
G4VPhysicalVolumephysiFinalCollimator
 
G4VisAttributesblue
 
G4VisAttributesgray
 
G4VisAttributeswhite
 
G4VisAttributesred
 
G4VisAttributesyellow
 
G4VisAttributesgreen
 
G4VisAttributesdarkGreen
 
G4VisAttributesdarkOrange3
 
G4VisAttributesskyBlue
 
G4MaterialrangeShifterMaterial
 
G4MaterialbeamLineSupportMaterial
 
G4MaterialvacuumZoneMaterial
 
G4MaterialfirstScatteringFoilMaterial
 
G4MaterialkaptonWindowMaterial
 
G4MaterialstopperMaterial
 
G4MaterialsecondScatteringFoilMaterial
 
G4MaterialfirstCollimatorMaterial
 
G4MaterialholeFirstCollimatorMaterial
 
G4MaterialmodulatorBoxMaterial
 
G4MaterialholeModulatorBoxMaterial
 
G4Materiallayer1MonitorChamberMaterial
 
G4Materiallayer2MonitorChamberMaterial
 
G4Materiallayer3MonitorChamberMaterial
 
G4Materiallayer4MonitorChamberMaterial
 
G4MaterialMOPIMotherVolumeMaterial
 
G4MaterialMOPIFirstKaptonLayerMaterial
 
G4MaterialMOPIFirstAluminumLayerMaterial
 
G4MaterialMOPIFirstAirGapMaterial
 
G4MaterialMOPICathodeMaterial
 
G4MaterialMOPISecondAirGapMaterial
 
G4MaterialMOPISecondAluminumLayerMaterial
 
G4MaterialMOPISecondKaptonLayerMaterial
 
G4MaterialnozzleSupportMaterial
 
G4MaterialholeNozzleSupportMaterial
 
G4MaterialbrassTubeMaterial
 
G4MaterialbrassTube2Material
 
G4MaterialbrassTube3Material
 
G4MaterialfinalCollimatorMaterial
 
HadrontherapyDetectorROGeometryRO
 

Static Private Attributes

static PassiveProtonBeamLineinstance
 

Additional Inherited Members

- Protected Member Functions inherited from G4VUserDetectorConstruction
void SetSensitiveDetector (const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
 
void SetSensitiveDetector (G4LogicalVolume *logVol, G4VSensitiveDetector *aSD)
 

Detailed Description

Definition at line 46 of file PassiveProtonBeamLine.hh.

Constructor & Destructor Documentation

◆ PassiveProtonBeamLine()

PassiveProtonBeamLine::PassiveProtonBeamLine ( )

Definition at line 49 of file PassiveProtonBeamLine.cc.

49  :
60 physiSecondMonitorLayer3(0), physiSecondMonitorLayer4(0), physiNozzleSupport(0), //physiHoleNozzleSupport(0),
62 {
63  // Messenger to change parameters of the passiveProtonBeamLine geometry
65 
66  //***************************** PW ***************************************
67  static G4String ROGeometryName = "DetectorROGeometry";
68  RO = new HadrontherapyDetectorROGeometry(ROGeometryName);
69 
70  G4cout << "Going to register Parallel world...";
72  G4cout << "... done" << G4endl;
73  //***************************** PW ***************************************
74  /* // For the Faraday Cup activation
75  if (name)
76  {
77  doCalculation = true;
78  }*/
79 }
G4VPhysicalVolume * physiKaptonWindow
G4VPhysicalVolume * physiFirstMonitorLayer2
G4VPhysicalVolume * physicalTreatmentRoom
G4VPhysicalVolume * physiFinalCollimator
PassiveProtonBeamLineMessenger * passiveMessenger
G4VPhysicalVolume * physiFirstMonitorLayer1
HadrontherapyDetectorROGeometry * RO
G4VPhysicalVolume * physiFirstScatteringFoil
G4VPhysicalVolume * physiFirstCollimator
HadrontherapyDetectorConstruction * hadrontherapyDetectorConstruction
G4VPhysicalVolume * physiBeamLineCover2
G4VPhysicalVolume * physiSecondCollimator
void RegisterParallelWorld(G4VUserParallelWorld *)
G4VPhysicalVolume * physiSecondMonitorLayer2
G4VPhysicalVolume * physiSecondMonitorLayer4
G4VPhysicalVolume * physiFirstCollimatorModulatorBox
G4VPhysicalVolume * physiFirstMonitorLayer3
G4GLOB_DLL std::ostream G4cout
G4VPhysicalVolume * physiMOPIMotherVolume
G4VPhysicalVolume * physiHoleFirstCollimatorModulatorBox
G4VPhysicalVolume * physiFirstMonitorLayer4
G4VPhysicalVolume * physiNozzleSupport
G4VPhysicalVolume * physiSecondMonitorLayer1
G4VPhysicalVolume * physiSecondCollimatorModulatorBox
G4VPhysicalVolume * physiSecondScatteringFoil
G4VPhysicalVolume * physiHoleSecondCollimatorModulatorBox
G4LogicalVolume * logicRangeShifterBox
G4VPhysicalVolume * physiStopper
#define G4endl
Definition: G4ios.hh:61
HadrontherapyModulator * modulator
G4VPhysicalVolume * physiBeamLineSupport
G4VPhysicalVolume * physiSecondMonitorLayer3
G4VPhysicalVolume * physiBrassTube
G4VPhysicalVolume * physiRangeShifterBox
G4VPhysicalVolume * physiBeamLineCover
Here is the call graph for this function:

◆ ~PassiveProtonBeamLine()

PassiveProtonBeamLine::~PassiveProtonBeamLine ( )

Definition at line 81 of file PassiveProtonBeamLine.cc.

82 {
83  delete passiveMessenger;
85  /* if (!pFaradayCup)
86  {
87  delete pFaradayCup;
88  }*/
89 }
PassiveProtonBeamLineMessenger * passiveMessenger
HadrontherapyDetectorConstruction * hadrontherapyDetectorConstruction

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * PassiveProtonBeamLine::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 92 of file PassiveProtonBeamLine.cc.

93 {
94  // Sets default geometry and materials
96 
97  // Construct the whole Passive Beam Line
99 
100  //***************************** PW ***************************************
102 
103  //***************************** PW ***************************************
104 
105  // HadrontherapyDetectorConstruction builds ONLY the phantom and the detector with its associated ROGeometry
107 
108 
109  //***************************** PW ***************************************
110 
112 
113  //***************************** PW ***************************************
114  /* if (doCalculation)
115  {
116  pFaradayCup = new FaradayCup(physicalTreatmentRoom);
117  G4cout << "Faraday Cup detector has been activated" << G4endl;
118  }*/
119  return physicalTreatmentRoom;
120 }
G4VPhysicalVolume * physicalTreatmentRoom
HadrontherapyDetectorROGeometry * RO
HadrontherapyDetectorConstruction * hadrontherapyDetectorConstruction
void InitializeDetectorROGeometry(HadrontherapyDetectorROGeometry *, G4ThreeVector detectorToWorldPosition)
Here is the call graph for this function:

◆ ConstructPassiveProtonBeamLine()

void PassiveProtonBeamLine::ConstructPassiveProtonBeamLine ( )
private

Definition at line 549 of file PassiveProtonBeamLine.cc.

550 {
551  // -----------------------------
552  // Treatment room - World volume
553  //------------------------------
554  // Treatment room sizes
555  const G4double worldX = 400.0 *cm;
556  const G4double worldY = 400.0 *cm;
557  const G4double worldZ = 400.0 *cm;
558  G4bool isotopes = false;
559 
560  G4Material* airNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_AIR", isotopes);
561  G4Box* treatmentRoom = new G4Box("TreatmentRoom",worldX,worldY,worldZ);
562  G4LogicalVolume* logicTreatmentRoom = new G4LogicalVolume(treatmentRoom,
563  airNist,
564  "logicTreatmentRoom",
565  0,0,0);
567  G4ThreeVector(),
568  "physicalTreatmentRoom",
569  logicTreatmentRoom,
570  0,false,0);
571 
572 
573  // The treatment room is invisible in the Visualisation
574  logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::Invisible);
575 
576  // Components of the Passive Proton Beam Line
585 
586  // The following lines construc a typical modulator wheel inside the Passive Beam line.
587  // Please remember to set the nodulator material (default is air, i.e. no modulator!)
588  // in the HadrontherapyModulator.cc file
590  modulator -> BuildModulator(physicalTreatmentRoom);
591 }
static const double cm
Definition: G4SIunits.hh:118
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
static G4NistManager * Instance()
bool G4bool
Definition: G4Types.hh:79
static const G4VisAttributes Invisible
HadrontherapyModulator * modulator
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetInstance()

static PassiveProtonBeamLine* PassiveProtonBeamLine::GetInstance ( )
static

◆ HadrontherapyBeamCollimators()

void PassiveProtonBeamLine::HadrontherapyBeamCollimators ( )

Definition at line 811 of file PassiveProtonBeamLine.cc.

812 {
813  // -----------------//
814  // FIRST COLLIMATOR //
815  // -----------------//
816  // It is a slab of PMMA with an hole in its center
817  const G4double firstCollimatorXSize = 20.*mm;
818  const G4double firstCollimatorYSize = 100.*mm;
819  const G4double firstCollimatorZSize = 100.*mm;
820 
821  const G4double firstCollimatorXPosition = -2673.00*mm;
822  const G4double firstCollimatorYPosition = 0.*mm;
823  const G4double firstCollimatorZPosition = 0.*mm;
824 
825  G4Box* solidFirstCollimator = new G4Box("FirstCollimator",
826  firstCollimatorXSize,
827  firstCollimatorYSize,
828  firstCollimatorZSize);
829 
830  G4LogicalVolume* logicFirstCollimator = new G4LogicalVolume(solidFirstCollimator,
832  "FirstCollimator");
833 
834  physiFirstCollimator = new G4PVPlacement(0, G4ThreeVector(firstCollimatorXPosition,
835  firstCollimatorYPosition,
836  firstCollimatorZPosition),
837  "FirstCollimator",
838  logicFirstCollimator,
840  false,
841  0);
842  // ----------------------------//
843  // Hole of the first collimator//
844  //-----------------------------//
845  G4double innerRadiusHoleFirstCollimator = 0.*mm;
846  G4double outerRadiusHoleFirstCollimator = 15.*mm;
847  G4double hightHoleFirstCollimator = 20.*mm;
848  G4double startAngleHoleFirstCollimator = 0.*deg;
849  G4double spanningAngleHoleFirstCollimator = 360.*deg;
850 
851  G4Tubs* solidHoleFirstCollimator = new G4Tubs("HoleFirstCollimator",
852  innerRadiusHoleFirstCollimator,
853  outerRadiusHoleFirstCollimator,
854  hightHoleFirstCollimator,
855  startAngleHoleFirstCollimator,
856  spanningAngleHoleFirstCollimator);
857 
858  G4LogicalVolume* logicHoleFirstCollimator = new G4LogicalVolume(solidHoleFirstCollimator,
860  "HoleFirstCollimator",
861  0, 0, 0);
862  G4double phi = 90. *deg;
863  // Matrix definition for a 90 deg rotation. Also used for other volumes
864  G4RotationMatrix rm;
865  rm.rotateY(phi);
866 
868  "HoleFirstCollimator",
869  logicHoleFirstCollimator,
871  false,
872  0);
873  // ------------------//
874  // SECOND COLLIMATOR //
875  //-------------------//
876  // It is a slab of PMMA with an hole in its center
877  const G4double secondCollimatorXPosition = -1900.00*mm;
878  const G4double secondCollimatorYPosition = 0*mm;
879  const G4double secondCollimatorZPosition = 0*mm;
880 
881  physiSecondCollimator = new G4PVPlacement(0, G4ThreeVector(secondCollimatorXPosition,
882  secondCollimatorYPosition,
883  secondCollimatorZPosition),
884  "SecondCollimator",
885  logicFirstCollimator,
887  false,
888  0);
889 
890  // ------------------------------//
891  // Hole of the second collimator //
892  // ------------------------------//
894  "HoleSecondCollimator",
895  logicHoleFirstCollimator,
897  false,
898  0);
899 
900  // --------------------------------------//
901  // FIRST SIDE OF THE MODULATOR BOX //
902  // --------------------------------------//
903  // The modulator box is an aluminum box in which
904  // the range shifter and the energy modulator are located
905  // In this example only the entrance and exit
906  // faces of the box are simulated.
907  // Each face is an aluminum slab with an hole in its center
908 
909  const G4double firstCollimatorModulatorXSize = 10.*mm;
910  const G4double firstCollimatorModulatorYSize = 200.*mm;
911  const G4double firstCollimatorModulatorZSize = 200.*mm;
912 
913  const G4double firstCollimatorModulatorXPosition = -2523.00*mm;
914  const G4double firstCollimatorModulatorYPosition = 0.*mm;
915  const G4double firstCollimatorModulatorZPosition = 0.*mm;
916 
917  G4Box* solidFirstCollimatorModulatorBox = new G4Box("FirstCollimatorModulatorBox",
918  firstCollimatorModulatorXSize,
919  firstCollimatorModulatorYSize,
920  firstCollimatorModulatorZSize);
921 
922  G4LogicalVolume* logicFirstCollimatorModulatorBox = new G4LogicalVolume(solidFirstCollimatorModulatorBox,
924  "FirstCollimatorModulatorBox");
925 
926  physiFirstCollimatorModulatorBox = new G4PVPlacement(0, G4ThreeVector(firstCollimatorModulatorXPosition,
927  firstCollimatorModulatorYPosition,
928  firstCollimatorModulatorZPosition),
929  "FirstCollimatorModulatorBox",
930  logicFirstCollimatorModulatorBox,
931  physicalTreatmentRoom, false, 0);
932 
933  // ----------------------------------------------------//
934  // Hole of the first collimator of the modulator box //
935  // ----------------------------------------------------//
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;
941 
942  G4Tubs* solidHoleFirstCollimatorModulatorBox = new G4Tubs("HoleFirstCollimatorModulatorBox",
943  innerRadiusHoleFirstCollimatorModulatorBox,
944  outerRadiusHoleFirstCollimatorModulatorBox,
945  hightHoleFirstCollimatorModulatorBox ,
946  startAngleHoleFirstCollimatorModulatorBox,
947  spanningAngleHoleFirstCollimatorModulatorBox);
948 
949  G4LogicalVolume* logicHoleFirstCollimatorModulatorBox = new G4LogicalVolume(solidHoleFirstCollimatorModulatorBox,
951  "HoleFirstCollimatorModulatorBox",
952  0, 0, 0);
953 
955  "HoleFirstCollimatorModulatorBox",
956  logicHoleFirstCollimatorModulatorBox,
958 
959  // --------------------------------------------------//
960  // SECOND SIDE OF THE MODULATOR BOX //
961  // --------------------------------------------------//
962  const G4double secondCollimatorModulatorXSize = 10.*mm;
963  const G4double secondCollimatorModulatorYSize = 200.*mm;
964  const G4double secondCollimatorModulatorZSize = 200.*mm;
965 
966  const G4double secondCollimatorModulatorXPosition = -1953.00 *mm;
967 
968  const G4double secondCollimatorModulatorYPosition = 0.*mm;
969  const G4double secondCollimatorModulatorZPosition = 0.*mm;
970 
971  G4Box* solidSecondCollimatorModulatorBox = new G4Box("SecondCollimatorModulatorBox",
972  secondCollimatorModulatorXSize,
973  secondCollimatorModulatorYSize,
974  secondCollimatorModulatorZSize);
975 
976  G4LogicalVolume* logicSecondCollimatorModulatorBox = new G4LogicalVolume(solidSecondCollimatorModulatorBox,
978  "SecondCollimatorModulatorBox");
979 
980  physiSecondCollimatorModulatorBox = new G4PVPlacement(0, G4ThreeVector(secondCollimatorModulatorXPosition,
981  secondCollimatorModulatorYPosition,
982  secondCollimatorModulatorZPosition),
983  "SecondCollimatorModulatorBox",
984  logicSecondCollimatorModulatorBox,
985  physicalTreatmentRoom, false, 0);
986 
987  // ----------------------------------------------//
988  // Hole of the second collimator modulator box //
989  // ----------------------------------------------//
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;
995 
996  G4Tubs* solidHoleSecondCollimatorModulatorBox = new G4Tubs("HoleSecondCollimatorModulatorBox",
997  innerRadiusHoleSecondCollimatorModulatorBox,
998  outerRadiusHoleSecondCollimatorModulatorBox,
999  hightHoleSecondCollimatorModulatorBox ,
1000  startAngleHoleSecondCollimatorModulatorBox,
1001  spanningAngleHoleSecondCollimatorModulatorBox);
1002 
1003  G4LogicalVolume* logicHoleSecondCollimatorModulatorBox = new G4LogicalVolume(solidHoleSecondCollimatorModulatorBox,
1005  "HoleSecondCollimatorModulatorBox",
1006  0, 0, 0);
1007 
1009  "HoleSecondCollimatorModulatorBox",
1010  logicHoleSecondCollimatorModulatorBox,
1012 
1013  logicFirstCollimator -> SetVisAttributes(yellow);
1014  logicFirstCollimatorModulatorBox -> SetVisAttributes(blue);
1015  logicSecondCollimatorModulatorBox -> SetVisAttributes(blue);
1016 }
G4VPhysicalVolume * physiHoleFirstCollimator
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
Definition: G4Tubs.hh:85
G4VPhysicalVolume * physiHoleSecondCollimator
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4VPhysicalVolume * physiFirstCollimator
G4VPhysicalVolume * physiSecondCollimator
G4Material * holeFirstCollimatorMaterial
G4VPhysicalVolume * physiFirstCollimatorModulatorBox
static const double deg
Definition: G4SIunits.hh:151
G4VPhysicalVolume * physiHoleFirstCollimatorModulatorBox
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiSecondCollimatorModulatorBox
G4VPhysicalVolume * physiHoleSecondCollimatorModulatorBox
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HadrontherapyBeamFinalCollimator()

void PassiveProtonBeamLine::HadrontherapyBeamFinalCollimator ( )

Definition at line 1481 of file PassiveProtonBeamLine.cc.

1482 {
1483  // -----------------------//
1484  // FINAL COLLIMATOR //
1485  //------------------------//
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;
1491 
1492  G4double phi = 90. *deg;
1493 
1494  // Matrix definition for a 90 deg rotation. Also used for other volumes
1495  G4RotationMatrix rm;
1496  rm.rotateY(phi);
1497 
1498  solidFinalCollimator = new G4Tubs("FinalCollimator",
1500  outerRadiusFinalCollimator,
1501  hightFinalCollimator,
1502  startAngleFinalCollimator,
1503  spanningAngleFinalCollimator);
1504 
1505  G4LogicalVolume* logicFinalCollimator = new G4LogicalVolume(solidFinalCollimator,
1507  "FinalCollimator",
1508  0,
1509  0,
1510  0);
1511 
1512  physiFinalCollimator = new G4PVPlacement(G4Transform3D(rm, G4ThreeVector(finalCollimatorXPosition,0.,0.)),
1513  "FinalCollimator", logicFinalCollimator, physicalTreatmentRoom, false, 0);
1514 
1515  logicFinalCollimator -> SetVisAttributes(yellow);
1516 }
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
G4VPhysicalVolume * physiFinalCollimator
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HadrontherapyBeamLineSupport()

void PassiveProtonBeamLine::HadrontherapyBeamLineSupport ( )

Definition at line 594 of file PassiveProtonBeamLine.cc.

595 {
596  // ------------------//
597  // BEAM LINE SUPPORT //
598  //-------------------//
599  const G4double beamLineSupportXSize = 1.5*m;
600  const G4double beamLineSupportYSize = 20.*mm;
601  const G4double beamLineSupportZSize = 600.*mm;
602 
603  const G4double beamLineSupportXPosition = -1745.09 *mm;
604  const G4double beamLineSupportYPosition = -230. *mm;
605  const G4double beamLineSupportZPosition = 0.*mm;
606 
607  G4Box* beamLineSupport = new G4Box("BeamLineSupport",
608  beamLineSupportXSize,
609  beamLineSupportYSize,
610  beamLineSupportZSize);
611 
612  G4LogicalVolume* logicBeamLineSupport = new G4LogicalVolume(beamLineSupport,
614  "BeamLineSupport");
615  physiBeamLineSupport = new G4PVPlacement(0, G4ThreeVector(beamLineSupportXPosition,
616  beamLineSupportYPosition,
617  beamLineSupportZPosition),
618  "BeamLineSupport",
619  logicBeamLineSupport,
620  physicalTreatmentRoom, false, 0);
621 
622  // Visualisation attributes of the beam line support
623 
624  logicBeamLineSupport -> SetVisAttributes(gray);
625 
626  //---------------------------------//
627  // Beam line cover 1 (left panel) //
628  //---------------------------------//
629  const G4double beamLineCoverXSize = 1.5*m;
630  const G4double beamLineCoverYSize = 750.*mm;
631  const G4double beamLineCoverZSize = 10.*mm;
632 
633  const G4double beamLineCoverXPosition = -1745.09 *mm;
634  const G4double beamLineCoverYPosition = -1000.*mm;
635  const G4double beamLineCoverZPosition = 600.*mm;
636 
637  G4Box* beamLineCover = new G4Box("BeamLineCover",
638  beamLineCoverXSize,
639  beamLineCoverYSize,
640  beamLineCoverZSize);
641 
642  G4LogicalVolume* logicBeamLineCover = new G4LogicalVolume(beamLineCover,
644  "BeamLineCover");
645 
646  physiBeamLineCover = new G4PVPlacement(0, G4ThreeVector(beamLineCoverXPosition,
647  beamLineCoverYPosition,
648  beamLineCoverZPosition),
649  "BeamLineCover",
650  logicBeamLineCover,
652  false,
653  0);
654 
655  // ---------------------------------//
656  // Beam line cover 2 (rigth panel) //
657  // ---------------------------------//
658  // It has the same characteristic of beam line cover 1 but set in a different position
659  physiBeamLineCover2 = new G4PVPlacement(0, G4ThreeVector(beamLineCoverXPosition,
660  beamLineCoverYPosition,
661  - beamLineCoverZPosition),
662  "BeamLineCover2",
663  logicBeamLineCover,
665  false,
666  0);
667 
668  logicBeamLineCover -> SetVisAttributes(blue);
669 }
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
G4VPhysicalVolume * physiBeamLineCover2
G4VPhysicalVolume * physiBeamLineSupport
static const double m
Definition: G4SIunits.hh:128
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
G4VPhysicalVolume * physiBeamLineCover
Here is the caller graph for this function:

◆ HadrontherapyBeamMonitoring()

void PassiveProtonBeamLine::HadrontherapyBeamMonitoring ( )

Definition at line 1019 of file PassiveProtonBeamLine.cc.

1020 {
1021  // ----------------------------
1022  // THE FIRST MONITOR CHAMBER
1023  // ----------------------------
1024  // A monitor chamber is a free-air ionisation chamber
1025  // able to measure do proton fluence during the treatment.
1026  // Here its responce is not simulated in terms of produced
1027  // charge but only the energy losses are taked into account.
1028  // Each chamber consist of 9 mm of air in a box
1029  // that has two layers one of kapton and one
1030  // of copper
1031  const G4double monitor1XSize = 4.525022*mm;
1032  const G4double monitor2XSize = 0.000011*mm;
1033  const G4double monitor3XSize = 4.5*mm;
1034  const G4double monitorYSize = 10.*cm;
1035  const G4double monitorZSize = 10.*cm;
1036  const G4double monitor1XPosition = -1262.47498 *mm;
1037  const G4double monitor2XPosition = -4.500011*mm;
1038  const G4double monitor4XPosition = 4.500011*mm;
1039 
1040  G4Box* solidFirstMonitorLayer1 = new G4Box("FirstMonitorLayer1",
1041  monitor1XSize,
1042  monitorYSize,
1043  monitorZSize);
1044 
1045  G4LogicalVolume* logicFirstMonitorLayer1 = new G4LogicalVolume(solidFirstMonitorLayer1,
1047  "FirstMonitorLayer1");
1048 
1050  G4ThreeVector(monitor1XPosition,0.*cm,0.*cm),
1051  "FirstMonitorLayer1",
1052  logicFirstMonitorLayer1,
1054  false,
1055  0);
1056 
1057  G4Box* solidFirstMonitorLayer2 = new G4Box("FirstMonitorLayer2",
1058  monitor2XSize,
1059  monitorYSize,
1060  monitorZSize);
1061 
1062  G4LogicalVolume* logicFirstMonitorLayer2 = new G4LogicalVolume(solidFirstMonitorLayer2,
1064  "FirstMonitorLayer2");
1065 
1066  physiFirstMonitorLayer2 = new G4PVPlacement(0, G4ThreeVector(monitor2XPosition,0.*cm,0.*cm),
1067  "FirstMonitorLayer2",
1068  logicFirstMonitorLayer2,
1070  false,
1071  0);
1072 
1073  G4Box* solidFirstMonitorLayer3 = new G4Box("FirstMonitorLayer3",
1074  monitor3XSize,
1075  monitorYSize,
1076  monitorZSize);
1077 
1078  G4LogicalVolume* logicFirstMonitorLayer3 = new G4LogicalVolume(solidFirstMonitorLayer3,
1080  "FirstMonitorLayer3");
1081 
1083  G4ThreeVector(0.*mm,0.*cm,0.*cm),
1084  "MonitorLayer3",
1085  logicFirstMonitorLayer3,
1087  false,
1088  0);
1089 
1090  G4Box* solidFirstMonitorLayer4 = new G4Box("FirstMonitorLayer4",
1091  monitor2XSize,
1092  monitorYSize,
1093  monitorZSize);
1094 
1095  G4LogicalVolume* logicFirstMonitorLayer4 = new G4LogicalVolume(solidFirstMonitorLayer4,
1097  "FirstMonitorLayer4");
1098 
1099  physiFirstMonitorLayer4 = new G4PVPlacement(0, G4ThreeVector(monitor4XPosition,0.*cm,0.*cm),
1100  "FirstMonitorLayer4",
1101  logicFirstMonitorLayer4,
1102  physiFirstMonitorLayer1, false, 0);
1103  // ----------------------------//
1104  // THE SECOND MONITOR CHAMBER //
1105  // ----------------------------//
1106  physiSecondMonitorLayer1 = new G4PVPlacement(0, G4ThreeVector(-1131.42493 *mm,0.*cm,0.*cm),
1107  "SecondMonitorLayer1", logicFirstMonitorLayer1,physicalTreatmentRoom, false, 0);
1108 
1109  physiSecondMonitorLayer2 = new G4PVPlacement(0, G4ThreeVector( monitor2XPosition,0.*cm,0.*cm), "SecondMonitorLayer2",
1110  logicFirstMonitorLayer2, physiSecondMonitorLayer1, false, 0);
1111 
1112  physiSecondMonitorLayer3 = new G4PVPlacement(0, G4ThreeVector(0.*mm,0.*cm,0.*cm), "MonitorLayer3",
1113  logicFirstMonitorLayer3, physiSecondMonitorLayer1, false, 0);
1114 
1115  physiSecondMonitorLayer4 = new G4PVPlacement(0, G4ThreeVector(monitor4XPosition,0.*cm,0.*cm), "SecondMonitorLayer4",
1116  logicFirstMonitorLayer4, physiSecondMonitorLayer1, false, 0);
1117 
1118  logicFirstMonitorLayer3 -> SetVisAttributes(white);
1119 
1120 }
static const double cm
Definition: G4SIunits.hh:118
G4VPhysicalVolume * physiFirstMonitorLayer2
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
G4VPhysicalVolume * physiFirstMonitorLayer1
G4Material * layer1MonitorChamberMaterial
G4VPhysicalVolume * physiSecondMonitorLayer2
G4VPhysicalVolume * physiSecondMonitorLayer4
G4VPhysicalVolume * physiFirstMonitorLayer3
G4Material * layer4MonitorChamberMaterial
G4VPhysicalVolume * physiFirstMonitorLayer4
G4VPhysicalVolume * physiSecondMonitorLayer1
G4Material * layer2MonitorChamberMaterial
double G4double
Definition: G4Types.hh:76
G4VPhysicalVolume * physiSecondMonitorLayer3
static const double mm
Definition: G4SIunits.hh:114
G4Material * layer3MonitorChamberMaterial
Here is the caller graph for this function:

◆ HadrontherapyBeamNozzle()

void PassiveProtonBeamLine::HadrontherapyBeamNozzle ( )

Definition at line 1297 of file PassiveProtonBeamLine.cc.

1298 {
1299  // ------------------------------//
1300  // THE FINAL TUBE AND COLLIMATOR //
1301  //-------------------------------//
1302  // The last part of the transport beam line consists of
1303  // a 59 mm thick PMMA slab (to stop all the diffused radiation), a 370 mm brass tube
1304  // (to well collimate the proton beam) and a final collimator with 25 mm diameter
1305  // aperture (that provide the final trasversal shape of the beam)
1306 
1307  // -------------------//
1308  // PMMA SUPPORT //
1309  // -------------------//
1310  const G4double nozzleSupportXSize = 29.5 *mm;
1311  const G4double nozzleSupportYSize = 180. *mm;
1312  const G4double nozzleSupportZSize = 180. *mm;
1313 
1314  const G4double nozzleSupportXPosition = -397.50 *mm;
1315 
1316  G4double phi = 90. *deg;
1317  // Matrix definition for a 90 deg rotation. Also used for other volumes
1318  G4RotationMatrix rm;
1319  rm.rotateY(phi);
1320 
1321  G4Box* solidNozzleSupport = new G4Box("NozzleSupport",
1322  nozzleSupportXSize,
1323  nozzleSupportYSize,
1324  nozzleSupportZSize);
1325 
1326  G4LogicalVolume* logicNozzleSupport = new G4LogicalVolume(solidNozzleSupport,
1328  "NozzleSupport");
1329 
1330  physiNozzleSupport = new G4PVPlacement(0, G4ThreeVector(nozzleSupportXPosition,0., 0.),
1331  "NozzleSupport",
1332  logicNozzleSupport,
1334  false,
1335  0);
1336 
1337  logicNozzleSupport -> SetVisAttributes(yellow);
1338 
1339 
1340 
1341  //------------------------------------//
1342  // HOLE IN THE SUPPORT //
1343  //------------------------------------//
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;
1349 
1350  G4Tubs* solidHoleNozzleSupport = new G4Tubs("HoleNozzleSupport",
1351  innerRadiusHoleNozzleSupport,
1352  outerRadiusHoleNozzleSupport,
1353  hightHoleNozzleSupport,
1354  startAngleHoleNozzleSupport,
1355  spanningAngleHoleNozzleSupport);
1356 
1357  G4LogicalVolume* logicHoleNozzleSupport = new G4LogicalVolume(solidHoleNozzleSupport,
1359  "HoleNozzleSupport",
1360  0,
1361  0,
1362  0);
1363 
1364 
1366  "HoleNozzleSupport",
1367  logicHoleNozzleSupport,
1369  false, 0);
1370 
1371  logicHoleNozzleSupport -> SetVisAttributes(darkOrange3);
1372 
1373  // ---------------------------------//
1374  // BRASS TUBE 1 (phantom side) //
1375  // ---------------------------------//
1376  const G4double innerRadiusBrassTube= 18.*mm;
1377  const G4double outerRadiusBrassTube = 21.5 *mm;
1378  const G4double hightBrassTube = 140.5*mm;
1379  const G4double startAngleBrassTube = 0.*deg;
1380  const G4double spanningAngleBrassTube = 360.*deg;
1381 
1382  const G4double brassTubeXPosition = -227.5 *mm;
1383 
1384  G4Tubs* solidBrassTube = new G4Tubs("BrassTube",
1385  innerRadiusBrassTube,
1386  outerRadiusBrassTube,
1387  hightBrassTube,
1388  startAngleBrassTube,
1389  spanningAngleBrassTube);
1390 
1391  G4LogicalVolume* logicBrassTube = new G4LogicalVolume(solidBrassTube,
1393  "BrassTube",
1394  0, 0, 0);
1395 
1397  G4ThreeVector(brassTubeXPosition,
1398  0.,
1399  0.)),
1400  "BrassTube",
1401  logicBrassTube,
1403  false,
1404  0);
1405 
1406  logicBrassTube -> SetVisAttributes(darkOrange3);
1407 
1408  // ----------------------------------------------//
1409  // BRASS TUBE 2 (inside the PMMA support) //
1410  // ----------------------------------------------//
1411  const G4double innerRadiusBrassTube2= 18.*mm;
1412  const G4double outerRadiusBrassTube2 = 21.5 *mm;
1413  const G4double hightBrassTube2 = 29.5*mm;
1414  const G4double startAngleBrassTube2 = 0.*deg;
1415  const G4double spanningAngleBrassTube2 = 360.*deg;
1416 
1417  // const G4double brassTube2XPosition = -227.5 *mm;
1418 
1419  G4Tubs* solidBrassTube2 = new G4Tubs("BrassTube2",
1420  innerRadiusBrassTube2,
1421  outerRadiusBrassTube2,
1422  hightBrassTube2,
1423  startAngleBrassTube2,
1424  spanningAngleBrassTube2);
1425 
1426  G4LogicalVolume* logicBrassTube2 = new G4LogicalVolume(solidBrassTube2,
1428  "BrassTube2",
1429  0, 0, 0);
1430 
1432  G4ThreeVector(0,
1433  0.,
1434  0.)),
1435  "BrassTube2",
1436  logicBrassTube2,
1438  false,
1439  0);
1440 
1441  logicBrassTube2 -> SetVisAttributes(darkOrange3);
1442 
1443 
1444  // --------------------------------------//
1445  // BRASS TUBE 3 (beam line side) //
1446  // -------------------------------------//
1447  const G4double innerRadiusBrassTube3= 18.*mm;
1448  const G4double outerRadiusBrassTube3 = 21.5 *mm;
1449  const G4double hightBrassTube3 = 10.0 *mm;
1450  const G4double startAngleBrassTube3 = 0.*deg;
1451  const G4double spanningAngleBrassTube3 = 360.*deg;
1452 
1453  const G4double brassTube3XPosition = -437 *mm;
1454 
1455  G4Tubs* solidBrassTube3 = new G4Tubs("BrassTube3",
1456  innerRadiusBrassTube3,
1457  outerRadiusBrassTube3,
1458  hightBrassTube3,
1459  startAngleBrassTube3,
1460  spanningAngleBrassTube3);
1461 
1462  G4LogicalVolume* logicBrassTube3 = new G4LogicalVolume(solidBrassTube3,
1464  "BrassTube3",
1465  0, 0, 0);
1466 
1468  G4ThreeVector(brassTube3XPosition,
1469  0.,
1470  0.)),
1471  "BrassTube3",
1472  logicBrassTube3,
1474  false,
1475  0);
1476 
1477  logicBrassTube3 -> SetVisAttributes(darkOrange3);
1478 }
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
static const double deg
Definition: G4SIunits.hh:151
G4VPhysicalVolume * physiBrassTube2
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiNozzleSupport
G4VPhysicalVolume * physiBrassTube3
G4VPhysicalVolume * physiHoleNozzleSupport
double G4double
Definition: G4Types.hh:76
G4VPhysicalVolume * physiBrassTube
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HadrontherapyBeamScatteringFoils()

void PassiveProtonBeamLine::HadrontherapyBeamScatteringFoils ( )

Definition at line 672 of file PassiveProtonBeamLine.cc.

673 {
674  // ------------//
675  // VACUUM PIPE //
676  //-------------//
677  //
678  // First track of the beam line is inside vacuum;
679  // The PIPE contains the FIRST SCATTERING FOIL and the KAPTON WINDOW
680  G4Box* vacuumZone = new G4Box("VacuumZone", vacuumZoneXSize, vacuumZoneYSize, vacuumZoneZSize);
681  G4LogicalVolume* logicVacuumZone = new G4LogicalVolume(vacuumZone, vacuumZoneMaterial, "VacuumZone");
682  G4VPhysicalVolume* physiVacuumZone = new G4PVPlacement(0, G4ThreeVector(vacuumZoneXPosition, 0., 0.),
683  "VacuumZone", logicVacuumZone, physicalTreatmentRoom, false, 0);
684  // --------------------------//
685  // THE FIRST SCATTERING FOIL //
686  // --------------------------//
687  // A thin foil performing a first scattering
688  // of the original beam
689  firstScatteringFoil = new G4Box("FirstScatteringFoil",
693 
694  G4LogicalVolume* logicFirstScatteringFoil = new G4LogicalVolume(firstScatteringFoil,
696  "FirstScatteringFoil");
697 
699  "FirstScatteringFoil", logicFirstScatteringFoil, physiVacuumZone,
700  false, 0);
701 
702  logicFirstScatteringFoil -> SetVisAttributes(skyBlue);
703  // -------------------//
704  // THE KAPTON WINDOWS //
705  //--------------------//
706  //It prmits the passage of the beam from vacuum to air
707  G4Box* solidKaptonWindow = new G4Box("KaptonWindow",
711 
712  G4LogicalVolume* logicKaptonWindow = new G4LogicalVolume(solidKaptonWindow,
714  "KaptonWindow");
715 
717  "KaptonWindow", logicKaptonWindow,
718  physiVacuumZone, false, 0);
719 
720  logicKaptonWindow -> SetVisAttributes(darkOrange3);
721 
722  // ------------//
723  // THE STOPPER //
724  //-------------//
725  // Is a small cylinder able to stop the central component
726  // of the beam (having a gaussian shape). It is connected to the SECON SCATTERING FOIL
727  // and represent the second element of the scattering system
728  G4double phi = 90. *deg;
729  // Matrix definition for a 90 deg rotation with respect to Y axis
730  G4RotationMatrix rm;
731  rm.rotateY(phi);
732 
733  solidStopper = new G4Tubs("Stopper",
739 
742  "Stopper",
743  0, 0, 0);
744 
748  "Stopper",
749  logicStopper,
751  false,
752  0);
753 
754  logicStopper -> SetVisAttributes(red);
755 
756  // ---------------------------//
757  // THE SECOND SCATTERING FOIL //
758  // ---------------------------//
759  // It is another thin foil and provides the
760  // final diffusion of the beam. It represents the third element of the scattering
761  // system;
762 
763  secondScatteringFoil = new G4Box("SecondScatteringFoil",
767 
768  G4LogicalVolume* logicSecondScatteringFoil = new G4LogicalVolume(secondScatteringFoil,
770  "SecondScatteringFoil");
771 
775  "SeconScatteringFoil",
776  logicSecondScatteringFoil,
778  false,
779  0);
780 
781  logicSecondScatteringFoil -> SetVisAttributes(skyBlue);
782 }
G4VPhysicalVolume * physiKaptonWindow
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4VPhysicalVolume * physiFirstScatteringFoil
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
G4Material * secondScatteringFoilMaterial
G4VPhysicalVolume * physiSecondScatteringFoil
G4LogicalVolume * logicStopper
G4VPhysicalVolume * physiStopper
double G4double
Definition: G4Types.hh:76
G4Material * firstScatteringFoilMaterial
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HadrontherapyMOPIDetector()

void PassiveProtonBeamLine::HadrontherapyMOPIDetector ( )

Definition at line 1122 of file PassiveProtonBeamLine.cc.

1123 {
1124  // --------------------------------//
1125  // THE MOPI DETECTOR //
1126  // --------------------------------//
1127  // MOPI DETECTOR: two orthogonal microstrip gas detectors developed
1128  // by the INFN Section of Turin in collaboration with some
1129  // of the author of this example. It permits the
1130  // on-line check of the beam simmetry via the signal
1131  // integration of the collected charge for each strip.
1132  //
1133  // In this example it is simulated as:
1134  // 1. First anode: 35 mu of kapton + 15 mu of aluminum,
1135  // 2. First air gap: 6 mm of air,
1136  // 3. The cathode: 1 mu Al + 25 mu mylar + 1 mu Al
1137  // (in common with the two air gap),
1138  // 4. Second air gap: 6 mm of air,
1139  // 5 Second anode: 15 mu Al + 35 mu kapton
1140  // Color used in the graphical output
1141 
1142 
1143  // Mother volume
1144  solidMOPIMotherVolume = new G4Box("MOPIMotherVolume",
1148 
1151  "MOPIMotherVolume");
1156  "MOPIMotherVolume",
1159  false,
1160  0);
1161 
1162  // First Kapton layer
1163  solidMOPIFirstKaptonLayer = new G4Box("MOPIFirstKaptonLayer",
1167 
1170  "MOPIFirstKaptonLayer");
1171 
1176  "MOPIFirstKaptonLayer",
1179  false,
1180  0);
1181 
1182  // First Aluminum layer
1183  solidMOPIFirstAluminumLayer = new G4Box("MOPIFirstAluminumLayer",
1187 
1190  "MOPIFirstAluminumLayer");
1191 
1196  "MOPIFirstAluminumLayer",
1198 
1199  // First Air GAP
1200  solidMOPIFirstAirGap = new G4Box("MOPIFirstAirGap",
1204 
1207  "MOPIFirstAirgap");
1208 
1213  "MOPIFirstAirGap",
1215 
1216 
1217  // The Cathode
1218  solidMOPICathode = new G4Box("MOPICathode",
1219  MOPICathodeXSize/2,
1220  MOPICathodeYSize/2,
1221  MOPICathodeZSize/2);
1222 
1225  "MOPICathode");
1226 
1231  "MOPICathode",
1233  physiMOPIMotherVolume, false, 0);
1234 
1235  // Second Air GAP
1236  solidMOPISecondAirGap = new G4Box("MOPISecondAirGap",
1240 
1243  "MOPISecondAirgap");
1244 
1249  "MOPISecondAirGap",
1251 
1252  // Second Aluminum layer
1253  solidMOPISecondAluminumLayer = new G4Box("MOPISecondAluminumLayer",
1257 
1260  "MOPISecondAluminumLayer");
1261 
1266  "MOPISecondAluminumLayer",
1269  false,
1270  0);
1271 
1272  // Second Kapton layer
1273  solidMOPISecondKaptonLayer = new G4Box("MOPISecondKaptonLayer",
1277 
1280  "MOPISecondKaptonLayer");
1281 
1286  "MOPISecondKaptonLayer",
1289  false,
1290  0);
1291 
1292  logicMOPIFirstAirGap -> SetVisAttributes(darkGreen);
1293  logicMOPISecondAirGap -> SetVisAttributes(darkGreen);
1294 
1295 }
G4Material * MOPIFirstKaptonLayerMaterial
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
G4LogicalVolume * logicMOPICathode
G4Material * MOPIFirstAluminumLayerMaterial
G4LogicalVolume * logicMOPIFirstAirGap
G4VPhysicalVolume * physiMOPIMotherVolume
G4LogicalVolume * logicMOPIFirstKaptonLayer
G4LogicalVolume * logicMOPISecondAluminumLayer
G4VPhysicalVolume * physiMOPISecondAirGap
G4LogicalVolume * logicMOPISecondAirGap
G4LogicalVolume * logicMOPISecondKaptonLayer
G4LogicalVolume * logicMOPIMotherVolume
G4LogicalVolume * logicMOPIFirstAluminumLayer
G4VPhysicalVolume * physiMOPISecondKaptonLayer
G4VPhysicalVolume * physiMOPIFirstAluminumLayer
G4VPhysicalVolume * physiMOPICathode
G4VPhysicalVolume * physiMOPIFirstAirGap
G4VPhysicalVolume * physiMOPIFirstKaptonLayer
G4Material * MOPISecondAluminumLayerMaterial
G4VPhysicalVolume * physiMOPISecondAluminumLayer
Here is the caller graph for this function:

◆ HadrontherapyRangeShifter()

void PassiveProtonBeamLine::HadrontherapyRangeShifter ( )

Definition at line 784 of file PassiveProtonBeamLine.cc.

785 {
786  // ---------------------------- //
787  // THE RANGE SHIFTER //
788  // -----------------------------//
789  // It is a slab of PMMA acting as energy degreader of
790  // primary beam
791  solidRangeShifterBox = new G4Box("RangeShifterBox",
795 
798  "RangeShifterBox");
801  "RangeShifterBox",
804  false,
805  0);
806 
807 
808  logicRangeShifterBox -> SetVisAttributes(yellow);
809 }
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physicalTreatmentRoom
Definition: G4Box.hh:64
G4LogicalVolume * logicRangeShifterBox
G4VPhysicalVolume * physiRangeShifterBox
Here is the caller graph for this function:

◆ SetDefaultDimensions()

void PassiveProtonBeamLine::SetDefaultDimensions ( )
private

Definition at line 132 of file PassiveProtonBeamLine.cc.

133 {
134  // Set of coulors that can be used
135  white = new G4VisAttributes( G4Colour());
136  white -> SetVisibility(true);
137  white -> SetForceSolid(true);
138 
139  blue = new G4VisAttributes(G4Colour(0. ,0. ,1.));
140  blue -> SetVisibility(true);
141  blue -> SetForceSolid(true);
142 
143  gray = new G4VisAttributes( G4Colour(0.5, 0.5, 0.5 ));
144  gray-> SetVisibility(true);
145  gray-> SetForceSolid(true);
146 
147  red = new G4VisAttributes(G4Colour(1. ,0. ,0.));
148  red-> SetVisibility(true);
149  red-> SetForceSolid(true);
150 
151  yellow = new G4VisAttributes(G4Colour(1., 1., 0. ));
152  yellow-> SetVisibility(true);
153  yellow-> SetForceSolid(true);
154 
155  green = new G4VisAttributes( G4Colour(25/255. , 255/255. , 25/255. ));
156  green -> SetVisibility(true);
157  green -> SetForceSolid(true);
158 
159  darkGreen = new G4VisAttributes( G4Colour(0/255. , 100/255. , 0/255. ));
160  darkGreen -> SetVisibility(true);
161  darkGreen -> SetForceSolid(true);
162 
163  darkOrange3 = new G4VisAttributes( G4Colour(205/255. , 102/255. , 000/255. ));
164  darkOrange3 -> SetVisibility(true);
165  darkOrange3 -> SetForceSolid(true);
166 
167  skyBlue = new G4VisAttributes( G4Colour(135/255. , 206/255. , 235/255. ));
168  skyBlue -> SetVisibility(true);
169  skyBlue -> SetForceSolid(true);
170 
171 
172  // VACUUM PIPE: first track of the beam line is inside vacuum;
173  // The PIPE contains the FIRST SCATTERING FOIL and the KAPTON WINDOW
174  G4double defaultVacuumZoneXSize = 100.0 *mm;
175  vacuumZoneXSize = defaultVacuumZoneXSize;
176 
177  G4double defaultVacuumZoneYSize = 52.5 *mm;
178  vacuumZoneYSize = defaultVacuumZoneYSize;
179 
180  G4double defaultVacuumZoneZSize = 52.5 *mm;
181  vacuumZoneZSize = defaultVacuumZoneZSize;
182 
183  G4double defaultVacuumZoneXPosition = -3010.0 *mm;
184  vacuumZoneXPosition = defaultVacuumZoneXPosition;
185 
186  // FIRST SCATTERING FOIL: a thin foil performing a first scattering
187  // of the original beam
188  G4double defaultFirstScatteringFoilXSize = 0.0075 *mm;
189  firstScatteringFoilXSize = defaultFirstScatteringFoilXSize;
190 
191  G4double defaultFirstScatteringFoilYSize = 52.5 *mm;
192  firstScatteringFoilYSize = defaultFirstScatteringFoilYSize;
193 
194  G4double defaultFirstScatteringFoilZSize = 52.5 *mm;
195  firstScatteringFoilZSize = defaultFirstScatteringFoilZSize;
196 
197  G4double defaultFirstScatteringFoilXPosition = 0.0 *mm;
198  firstScatteringFoilXPosition = defaultFirstScatteringFoilXPosition;
199 
200  // KAPTON WINDOW: it prmits the passage of the beam from vacuum to air
201  G4double defaultKaptonWindowXSize = 0.010*mm;
202  kaptonWindowXSize = defaultKaptonWindowXSize;
203 
204  G4double defaultKaptonWindowYSize = 5.25*cm;
205  kaptonWindowYSize = defaultKaptonWindowYSize;
206 
207  G4double defaultKaptonWindowZSize = 5.25*cm;
208  kaptonWindowZSize = defaultKaptonWindowZSize;
209 
210  G4double defaultKaptonWindowXPosition = 100.0*mm - defaultKaptonWindowXSize;
211  kaptonWindowXPosition = defaultKaptonWindowXPosition;
212 
213  // STOPPER: is a small cylinder able to stop the central component
214  // of the beam (having a gaussian shape). It is connected to the SECON SCATTERING FOIL
215  // and represent the second element of the scattering system
216  G4double defaultInnerRadiusStopper = 0.*cm;
217  innerRadiusStopper = defaultInnerRadiusStopper;
218 
219  G4double defaultHeightStopper = 3.5*mm;
220  heightStopper = defaultHeightStopper;
221 
222  G4double defaultStartAngleStopper = 0.*deg;
223  startAngleStopper = defaultStartAngleStopper;
224 
225  G4double defaultSpanningAngleStopper = 360.*deg;
226  spanningAngleStopper = defaultSpanningAngleStopper;
227 
228  G4double defaultStopperXPosition = -2705.0 *mm;
229  stopperXPosition = defaultStopperXPosition;
230 
231  G4double defaultStopperYPosition = 0.*m;
232  stopperYPosition = defaultStopperYPosition;
233 
234  G4double defaultStopperZPosition = 0.*m;
235  stopperZPosition = defaultStopperZPosition;
236 
237  G4double defaultOuterRadiusStopper = 2 *mm;
238  outerRadiusStopper = defaultOuterRadiusStopper;
239 
240  // SECOND SCATTERING FOIL: it is another thin foil and provides the
241  // final diffusion of the beam. It represents the third element of the scattering
242  // system;
243  G4double defaultSecondScatteringFoilXSize = 0.0125 *mm;
244  secondScatteringFoilXSize = defaultSecondScatteringFoilXSize;
245 
246  G4double defaultSecondScatteringFoilYSize = 52.5 *mm;
247  secondScatteringFoilYSize = defaultSecondScatteringFoilYSize;
248 
249  G4double defaultSecondScatteringFoilZSize = 52.5 *mm;
250  secondScatteringFoilZSize = defaultSecondScatteringFoilZSize;
251 
252  G4double defaultSecondScatteringFoilXPosition = defaultStopperXPosition + defaultHeightStopper + defaultSecondScatteringFoilXSize;
253  secondScatteringFoilXPosition = defaultSecondScatteringFoilXPosition;
254 
255  G4double defaultSecondScatteringFoilYPosition = 0 *mm;
256  secondScatteringFoilYPosition = defaultSecondScatteringFoilYPosition;
257 
258  G4double defaultSecondScatteringFoilZPosition = 0 *mm;
259  secondScatteringFoilZPosition = defaultSecondScatteringFoilZPosition;
260 
261  // RANGE SHIFTER: is a slab of PMMA acting as energy degreader of
262  // primary beam
263 
264  //Default material of the range shifter
265 
266  G4double defaultRangeShifterXSize = 5. *mm;
267  rangeShifterXSize = defaultRangeShifterXSize;
268 
269  G4double defaultRangeShifterYSize = 176. *mm;
270  rangeShifterYSize = defaultRangeShifterYSize;
271 
272  G4double defaultRangeShifterZSize = 176. *mm;
273  rangeShifterZSize = defaultRangeShifterZSize;
274 
275  G4double defaultRangeShifterXPosition = -2393.0 *mm;
276  rangeShifterXPosition = defaultRangeShifterXPosition;
277 
278  G4double defaultRangeShifterYPosition = 0. *mm;
279  rangeShifterYPosition = defaultRangeShifterYPosition;
280 
281  G4double defaultRangeShifterZPosition = 0. *mm;
282  rangeShifterZPosition = defaultRangeShifterZPosition;
283 
284  // MOPI DETECTOR: two orthogonal microstrip gas detectors developed
285  // by the INFN Section of Turin in collaboration with some
286  // of the author of this example. It permits the
287  // on-line check of the beam simmetry via the signal
288  // integration of the collected charge for each strip.
289 
290  // Mother volume of MOPI
291 
292  G4double defaultMOPIMotherVolumeXSize = 12127.0 *um;
293  MOPIMotherVolumeXSize = defaultMOPIMotherVolumeXSize;
294 
295  G4double defaultMOPIMotherVolumeYSize = 40.0 *cm;
296  MOPIMotherVolumeYSize = defaultMOPIMotherVolumeYSize;
297 
298  G4double defaultMOPIMotherVolumeZSize = 40.0 *cm;
299  MOPIMotherVolumeZSize = defaultMOPIMotherVolumeZSize;
300 
301  G4double defaultMOPIMotherVolumeXPosition = -1000.0 *mm;
302  MOPIMotherVolumeXPosition = defaultMOPIMotherVolumeXPosition;
303 
304  G4double defaultMOPIMotherVolumeYPosition = 0.0 *mm;
305  MOPIMotherVolumeYPosition = defaultMOPIMotherVolumeYPosition;
306 
307  G4double defaultMOPIMotherVolumeZPosition = 0.0 *mm;
308  MOPIMotherVolumeZPosition = defaultMOPIMotherVolumeZPosition;
309 
310  // First Kapton Layer of MOPI
311  G4double defaultMOPIFirstKaptonLayerXSize = 35 *um;
312  MOPIFirstKaptonLayerXSize = defaultMOPIFirstKaptonLayerXSize;
313 
314  G4double defaultMOPIFirstKaptonLayerYSize = 30 *cm;
315  MOPIFirstKaptonLayerYSize = defaultMOPIFirstKaptonLayerYSize;
316 
317  G4double defaultMOPIFirstKaptonLayerZSize = 30 *cm;
318  MOPIFirstKaptonLayerZSize = defaultMOPIFirstKaptonLayerZSize;
319 
320  G4double defaultMOPIFirstKaptonLayerXPosition = -(MOPIMotherVolumeXSize/2 - (MOPIFirstKaptonLayerXSize/2));
321  MOPIFirstKaptonLayerXPosition = defaultMOPIFirstKaptonLayerXPosition;
322 
323  G4double defaultMOPIFirstKaptonLayerYPosition = 0.0 *mm;
324  MOPIFirstKaptonLayerYPosition = defaultMOPIFirstKaptonLayerYPosition;
325 
326  G4double defaultMOPIFirstKaptonLayerZPosition = 0.0 *mm;
327  MOPIFirstKaptonLayerZPosition = defaultMOPIFirstKaptonLayerZPosition;
328 
329  //First Aluminum Layer of MOPI
330  G4double defaultMOPIFirstAluminumLayerXSize = 15 *um;
331  MOPIFirstAluminumLayerXSize = defaultMOPIFirstAluminumLayerXSize;
332 
333  G4double defaultMOPIFirstAluminumLayerYSize = 30 *cm;
334  MOPIFirstAluminumLayerYSize = defaultMOPIFirstAluminumLayerYSize;
335 
336  G4double defaultMOPIFirstAluminumLayerZSize = 30 *cm;
337  MOPIFirstAluminumLayerZSize = defaultMOPIFirstAluminumLayerZSize;
338 
339  G4double defaultMOPIFirstAluminumLayerXPosition =
341  MOPIFirstAluminumLayerXPosition = defaultMOPIFirstAluminumLayerXPosition;
342 
343  G4double defaultMOPIFirstAluminumLayerYPosition = 0.0 *mm;
344  MOPIFirstAluminumLayerYPosition = defaultMOPIFirstAluminumLayerYPosition;
345 
346  G4double defaultMOPIFirstAluminumLayerZPosition = 0.0 *mm;
347  MOPIFirstAluminumLayerZPosition = defaultMOPIFirstAluminumLayerZPosition;
348 
349  // First Air gap of MOPI
350  G4double defaultMOPIFirstAirGapXSize = 6000 *um;
351  MOPIFirstAirGapXSize = defaultMOPIFirstAirGapXSize;
352 
353  G4double defaultMOPIFirstAirGapYSize = 30 *cm;
354  MOPIFirstAirGapYSize = defaultMOPIFirstAirGapYSize;
355 
356  G4double defaultMOPIFirstAirGapZSize = 30 *cm;
357  MOPIFirstAirGapZSize = defaultMOPIFirstAirGapZSize;
358 
359  G4double defaultMOPIFirstAirGapXPosition =
361  MOPIFirstAirGapXPosition = defaultMOPIFirstAirGapXPosition;
362 
363  G4double defaultMOPIFirstAirGapYPosition = 0.0 *mm;
364  MOPIFirstAirGapYPosition = defaultMOPIFirstAirGapYPosition;
365 
366  G4double defaultMOPIFirstAirGapZPosition = 0.0 *mm;
367  MOPIFirstAirGapZPosition = defaultMOPIFirstAirGapZPosition;
368 
369  // Cathode of MOPI
370  G4double defaultMOPICathodeXSize = 25.0 *um;
371  MOPICathodeXSize = defaultMOPICathodeXSize;
372 
373  G4double defaultMOPICathodeYSize = 30.0 *cm;
374  MOPICathodeYSize = defaultMOPICathodeYSize;
375 
376  G4double defaultMOPICathodeZSize = 30.0 *cm;
377  MOPICathodeZSize = defaultMOPICathodeZSize;
378 
379  G4double defaultMOPICathodeXPosition =
381  MOPICathodeXPosition = defaultMOPICathodeXPosition;
382 
383  G4double defaultMOPICathodeYPosition = 0.0 *mm;
384  MOPICathodeYPosition = defaultMOPICathodeYPosition;
385 
386  G4double defaultMOPICathodeZPosition = 0.0 *mm;
387  MOPICathodeZPosition = defaultMOPICathodeZPosition;
388 
389  // Second Air gap of MOPI
390  G4double defaultMOPISecondAirGapXSize = 6000 *um;
391  MOPISecondAirGapXSize = defaultMOPISecondAirGapXSize;
392 
393  G4double defaultMOPISecondAirGapYSize = 30 *cm;
394  MOPISecondAirGapYSize = defaultMOPISecondAirGapYSize;
395 
396  G4double defaultMOPISecondAirGapZSize = 30 *cm;
397  MOPISecondAirGapZSize = defaultMOPISecondAirGapZSize;
398 
399  G4double defaultMOPISecondAirGapXPosition =
401  MOPISecondAirGapXPosition = defaultMOPISecondAirGapXPosition;
402 
403  G4double defaultMOPISecondAirGapYPosition = 0.0 *mm;
404  MOPISecondAirGapYPosition = defaultMOPISecondAirGapYPosition;
405 
406  G4double defaultMOPISecondAirGapZPosition = 0.0 *mm;
407  MOPISecondAirGapZPosition = defaultMOPISecondAirGapZPosition;
408 
409  //Second Aluminum Layer of MOPI
410  G4double defaultMOPISecondAluminumLayerXSize = 15 *um;
411  MOPISecondAluminumLayerXSize = defaultMOPISecondAluminumLayerXSize;
412 
413  G4double defaultMOPISecondAluminumLayerYSize = 30 *cm;
414  MOPISecondAluminumLayerYSize = defaultMOPISecondAluminumLayerYSize;
415 
416  G4double defaultMOPISecondAluminumLayerZSize = 30 *cm;
417  MOPISecondAluminumLayerZSize = defaultMOPISecondAluminumLayerZSize;
418 
419  G4double defaultMOPISecondAluminumLayerXPosition =
421  MOPISecondAluminumLayerXPosition = defaultMOPISecondAluminumLayerXPosition;
422 
423  G4double defaultMOPISecondAluminumLayerYPosition = 0.0 *mm;
424  MOPISecondAluminumLayerYPosition = defaultMOPISecondAluminumLayerYPosition;
425 
426  G4double defaultMOPISecondAluminumLayerZPosition = 0.0 *mm;
427  MOPISecondAluminumLayerZPosition = defaultMOPISecondAluminumLayerZPosition;
428 
429  // Second Kapton Layer of MOPI
430  G4double defaultMOPISecondKaptonLayerXSize = 35 *um;
431  MOPISecondKaptonLayerXSize = defaultMOPISecondKaptonLayerXSize;
432 
433  G4double defaultMOPISecondKaptonLayerYSize = 30 *cm;
434  MOPISecondKaptonLayerYSize = defaultMOPISecondKaptonLayerYSize;
435 
436  G4double defaultMOPISecondKaptonLayerZSize = 30 *cm;
437  MOPISecondKaptonLayerZSize = defaultMOPISecondKaptonLayerZSize;
438 
439  G4double defaultMOPISecondKaptonLayerXPosition =
441  MOPISecondKaptonLayerXPosition = defaultMOPISecondKaptonLayerXPosition;
442 
443  G4double defaultMOPISecondKaptonLayerYPosition = 0.0 *mm;
444  MOPISecondKaptonLayerYPosition = defaultMOPISecondKaptonLayerYPosition;
445 
446  G4double defaultMOPISecondKaptonLayerZPosition = 0.0 *mm;
447  MOPISecondKaptonLayerZPosition = defaultMOPISecondKaptonLayerZPosition;
448 
449 
450  // FINAL COLLIMATOR: is the collimator giving the final transversal shape
451  // of the beam
452  G4double defaultinnerRadiusFinalCollimator = 7.5 *mm;
453  innerRadiusFinalCollimator = defaultinnerRadiusFinalCollimator;
454 
455  // DEFAULT DEFINITION OF THE MATERIALS
456  // All elements and compound definition follows the NIST database
457 
458  // ELEMENTS
459  G4bool isotopes = false;
460  G4Material* aluminumNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_Al", isotopes);
461  G4Material* tantalumNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_Ta", isotopes);
462  G4Material* copperNistAsMaterial = G4NistManager::Instance()->FindOrBuildMaterial("G4_Cu", isotopes);
465 
466  // COMPOUND
467  G4Material* airNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_AIR", isotopes);
468  G4Material* kaptonNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_KAPTON", isotopes);
469  G4Material* galacticNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic", isotopes);
470  G4Material* PMMANist = G4NistManager::Instance()->FindOrBuildMaterial("G4_PLEXIGLASS", isotopes);
471  G4Material* mylarNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_MYLAR", isotopes);
472 
473  G4double d; // Density
474  G4int nComponents;// Number of components
475  G4double fractionmass; // Fraction in mass of an element in a material
476 
477  d = 8.40*g/cm3;
478  nComponents = 2;
479  G4Material* brass = new G4Material("Brass", d, nComponents);
480  brass -> AddElement(zincNist, fractionmass = 30 *perCent);
481  brass -> AddElement(copperNist, fractionmass = 70 *perCent);
482 
483 
484  //***************************** PW ***************************************
485 
486  // DetectorROGeometry Material
487  new G4Material("dummyMat", 1., 1.*g/mole, 1.*g/cm3);
488 
489  //***************************** PW ***************************************
490 
491 
492 
493  // MATERIAL ASSIGNMENT
494  // Range shifter
495  rangeShifterMaterial = airNist;
496 
497  // Support of the beam line
498  beamLineSupportMaterial = aluminumNist;
499 
500  // Vacuum pipe
501  vacuumZoneMaterial = galacticNist;
502 
503  // Material of the fisrt scattering foil
504  firstScatteringFoilMaterial = tantalumNist;
505 
506  // Material of kapton window
507  kaptonWindowMaterial = kaptonNist;
508 
509  // Material of the stopper
510  stopperMaterial = brass;
511 
512  // Material of the second scattering foil
513  secondScatteringFoilMaterial = tantalumNist;
514 
515  // Materials of the collimators
516  firstCollimatorMaterial = PMMANist;
517  holeFirstCollimatorMaterial = airNist;
518 
519  // Box containing the modulator wheel
520  modulatorBoxMaterial = aluminumNist;
521  holeModulatorBoxMaterial = airNist;
522 
523  // Materials of the monitor chamber
524  layer1MonitorChamberMaterial = kaptonNist;
525  layer2MonitorChamberMaterial = copperNistAsMaterial;
527  layer4MonitorChamberMaterial = copperNistAsMaterial;
528 
529  // Mother volume of the MOPI detector
530  MOPIMotherVolumeMaterial = airNist;
531  MOPIFirstKaptonLayerMaterial = kaptonNist;
532  MOPIFirstAluminumLayerMaterial = aluminumNist;
533  MOPIFirstAirGapMaterial = airNist;
534  MOPICathodeMaterial = mylarNist;
535  MOPISecondAirGapMaterial = airNist;
536  MOPISecondAluminumLayerMaterial = aluminumNist;
537  MOPISecondKaptonLayerMaterial = kaptonNist;
538 
539  // material of the final nozzle
540  nozzleSupportMaterial = PMMANist;
542  holeNozzleSupportMaterial = airNist;
543 
544  // Material of the final collimator
545  finalCollimatorMaterial = brass;
546 }
static const double cm
Definition: G4SIunits.hh:118
G4Material * MOPIFirstKaptonLayerMaterial
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
Float_t d
G4int nComponents
Definition: TRTMaterials.hh:41
G4Material * MOPISecondKaptonLayerMaterial
int G4int
Definition: G4Types.hh:78
static G4NistManager * Instance()
G4Material * holeFirstCollimatorMaterial
G4Material * layer1MonitorChamberMaterial
G4Material * MOPIFirstAluminumLayerMaterial
G4Material * layer4MonitorChamberMaterial
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
static const double deg
Definition: G4SIunits.hh:151
bool G4bool
Definition: G4Types.hh:79
static const double cm3
Definition: G4SIunits.hh:120
static const double perCent
Definition: G4SIunits.hh:329
G4Material * secondScatteringFoilMaterial
G4Material * layer2MonitorChamberMaterial
static const double um
Definition: G4SIunits.hh:112
static const double mole
Definition: G4SIunits.hh:283
static const double m
Definition: G4SIunits.hh:128
double G4double
Definition: G4Types.hh:76
G4Material * firstScatteringFoilMaterial
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
Air AddElement(elN,.7)
G4Material * MOPISecondAluminumLayerMaterial
static const double mm
Definition: G4SIunits.hh:114
G4Material * layer3MonitorChamberMaterial
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetFirstScatteringFoilXSize()

void PassiveProtonBeamLine::SetFirstScatteringFoilXSize ( G4double  value)

Definition at line 1536 of file PassiveProtonBeamLine.cc.

1537 {
1538  firstScatteringFoil -> SetXHalfLength(value);
1540  G4cout <<"The X size of the first scattering foil is (mm):"<<
1541  ((firstScatteringFoil -> GetXHalfLength())*2.)/mm
1542  << G4endl;
1543 }
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:

◆ SetInnerRadiusFinalCollimator()

void PassiveProtonBeamLine::SetInnerRadiusFinalCollimator ( G4double  value)

Definition at line 1566 of file PassiveProtonBeamLine.cc.

1567 {
1568  solidFinalCollimator -> SetInnerRadius(value);
1570  G4cout<<"Inner Radius of the final collimator is (mm):"
1571  << solidFinalCollimator -> GetInnerRadius()/mm
1572  << G4endl;
1573 }
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:

◆ SetModulatorAngle()

void PassiveProtonBeamLine::SetModulatorAngle ( G4double  angle)

Definition at line 1596 of file PassiveProtonBeamLine.cc.

1597 {
1598  modulator -> SetModulatorAngle(value);
1599  //G4RunManager::GetRunManager() -> GeometryHasBeenModified();
1600 }
void SetModulatorAngle(G4double angle)
HadrontherapyModulator * modulator

◆ SetOuterRadiusStopper()

void PassiveProtonBeamLine::SetOuterRadiusStopper ( G4double  value)

Definition at line 1556 of file PassiveProtonBeamLine.cc.

1557 {
1558  solidStopper -> SetOuterRadius(value);
1560  G4cout << "OuterRadius od the Stopper is (mm):"
1561  << solidStopper -> GetOuterRadius()/mm
1562  << G4endl;
1563 }
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:

◆ SetRangeShifterXPosition()

void PassiveProtonBeamLine::SetRangeShifterXPosition ( G4double  value)

Definition at line 1519 of file PassiveProtonBeamLine.cc.

1520 {
1521  physiRangeShifterBox -> SetTranslation(G4ThreeVector(value, 0., 0.));
1523  G4cout << "The Range Shifter is translated to"<< value/mm <<"mm along the X axis" <<G4endl;
1524 }
CLHEP::Hep3Vector G4ThreeVector
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
G4VPhysicalVolume * physiRangeShifterBox
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:

◆ SetRangeShifterXSize()

void PassiveProtonBeamLine::SetRangeShifterXSize ( G4double  halfSize)

Definition at line 1527 of file PassiveProtonBeamLine.cc.

1528 {
1529  solidRangeShifterBox -> SetXHalfLength(value) ;
1530  G4cout << "RangeShifter size X (mm): "<< ((solidRangeShifterBox -> GetXHalfLength())*2.)/mm
1531  << G4endl;
1533 }
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:

◆ SetRSMaterial()

void PassiveProtonBeamLine::SetRSMaterial ( G4String  materialChoice)

Definition at line 1576 of file PassiveProtonBeamLine.cc.

1577 {
1578  if (G4Material* pttoMaterial = G4NistManager::Instance()->FindOrBuildMaterial(materialChoice, false) )
1579  {
1580  if (pttoMaterial)
1581  {
1582  rangeShifterMaterial = pttoMaterial;
1583  logicRangeShifterBox -> SetMaterial(pttoMaterial);
1584  G4cout << "The material of the Range Shifter has been changed to " << materialChoice << G4endl;
1585  }
1586  }
1587  else
1588  {
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;
1592  }
1593 }
static G4NistManager * Instance()
G4GLOB_DLL std::ostream G4cout
G4LogicalVolume * logicRangeShifterBox
#define G4endl
Definition: G4ios.hh:61
def SetMaterial(material_name)
Definition: EmPlot.py:25
Here is the call graph for this function:

◆ SetSecondScatteringFoilXSize()

void PassiveProtonBeamLine::SetSecondScatteringFoilXSize ( G4double  value)

Definition at line 1546 of file PassiveProtonBeamLine.cc.

1547 {
1548  secondScatteringFoil -> SetXHalfLength(value);
1550  G4cout <<"The X size of the second scattering foil is (mm):"<<
1551  ((secondScatteringFoil -> GetXHalfLength())*2.)/mm
1552  << G4endl;
1553 }
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:

Member Data Documentation

◆ beamLineSupportMaterial

G4Material* PassiveProtonBeamLine::beamLineSupportMaterial
private

Definition at line 330 of file PassiveProtonBeamLine.hh.

◆ blue

G4VisAttributes* PassiveProtonBeamLine::blue
private

Definition at line 319 of file PassiveProtonBeamLine.hh.

◆ brassTube2Material

G4Material* PassiveProtonBeamLine::brassTube2Material
private

Definition at line 356 of file PassiveProtonBeamLine.hh.

◆ brassTube3Material

G4Material* PassiveProtonBeamLine::brassTube3Material
private

Definition at line 357 of file PassiveProtonBeamLine.hh.

◆ brassTubeMaterial

G4Material* PassiveProtonBeamLine::brassTubeMaterial
private

Definition at line 355 of file PassiveProtonBeamLine.hh.

◆ darkGreen

G4VisAttributes* PassiveProtonBeamLine::darkGreen
private

Definition at line 325 of file PassiveProtonBeamLine.hh.

◆ darkOrange3

G4VisAttributes* PassiveProtonBeamLine::darkOrange3
private

Definition at line 326 of file PassiveProtonBeamLine.hh.

◆ finalCollimatorMaterial

G4Material* PassiveProtonBeamLine::finalCollimatorMaterial
private

Definition at line 358 of file PassiveProtonBeamLine.hh.

◆ firstCollimatorMaterial

G4Material* PassiveProtonBeamLine::firstCollimatorMaterial
private

Definition at line 336 of file PassiveProtonBeamLine.hh.

◆ firstScatteringFoil

G4Box* PassiveProtonBeamLine::firstScatteringFoil
private

Definition at line 184 of file PassiveProtonBeamLine.hh.

◆ firstScatteringFoilMaterial

G4Material* PassiveProtonBeamLine::firstScatteringFoilMaterial
private

Definition at line 332 of file PassiveProtonBeamLine.hh.

◆ firstScatteringFoilXPosition

G4double PassiveProtonBeamLine::firstScatteringFoilXPosition
private

Definition at line 150 of file PassiveProtonBeamLine.hh.

◆ firstScatteringFoilXSize

G4double PassiveProtonBeamLine::firstScatteringFoilXSize
private

Definition at line 147 of file PassiveProtonBeamLine.hh.

◆ firstScatteringFoilYSize

G4double PassiveProtonBeamLine::firstScatteringFoilYSize
private

Definition at line 148 of file PassiveProtonBeamLine.hh.

◆ firstScatteringFoilZSize

G4double PassiveProtonBeamLine::firstScatteringFoilZSize
private

Definition at line 149 of file PassiveProtonBeamLine.hh.

◆ gray

G4VisAttributes* PassiveProtonBeamLine::gray
private

Definition at line 320 of file PassiveProtonBeamLine.hh.

◆ green

G4VisAttributes* PassiveProtonBeamLine::green
private

Definition at line 324 of file PassiveProtonBeamLine.hh.

◆ hadrontherapyDetectorConstruction

HadrontherapyDetectorConstruction* PassiveProtonBeamLine::hadrontherapyDetectorConstruction
private

Definition at line 135 of file PassiveProtonBeamLine.hh.

◆ heightStopper

G4double PassiveProtonBeamLine::heightStopper
private

Definition at line 158 of file PassiveProtonBeamLine.hh.

◆ holeFirstCollimatorMaterial

G4Material* PassiveProtonBeamLine::holeFirstCollimatorMaterial
private

Definition at line 337 of file PassiveProtonBeamLine.hh.

◆ holeModulatorBoxMaterial

G4Material* PassiveProtonBeamLine::holeModulatorBoxMaterial
private

Definition at line 339 of file PassiveProtonBeamLine.hh.

◆ holeNozzleSupportMaterial

G4Material* PassiveProtonBeamLine::holeNozzleSupportMaterial
private

Definition at line 353 of file PassiveProtonBeamLine.hh.

◆ innerRadiusFinalCollimator

G4double PassiveProtonBeamLine::innerRadiusFinalCollimator
private

Definition at line 300 of file PassiveProtonBeamLine.hh.

◆ innerRadiusStopper

G4double PassiveProtonBeamLine::innerRadiusStopper
private

Definition at line 157 of file PassiveProtonBeamLine.hh.

◆ instance

PassiveProtonBeamLine* PassiveProtonBeamLine::instance
staticprivate

Definition at line 126 of file PassiveProtonBeamLine.hh.

◆ kapton

G4Material* PassiveProtonBeamLine::kapton
private

Definition at line 140 of file PassiveProtonBeamLine.hh.

◆ kaptonWindowMaterial

G4Material* PassiveProtonBeamLine::kaptonWindowMaterial
private

Definition at line 333 of file PassiveProtonBeamLine.hh.

◆ kaptonWindowXPosition

G4double PassiveProtonBeamLine::kaptonWindowXPosition
private

Definition at line 155 of file PassiveProtonBeamLine.hh.

◆ kaptonWindowXSize

G4double PassiveProtonBeamLine::kaptonWindowXSize
private

Definition at line 152 of file PassiveProtonBeamLine.hh.

◆ kaptonWindowYSize

G4double PassiveProtonBeamLine::kaptonWindowYSize
private

Definition at line 153 of file PassiveProtonBeamLine.hh.

◆ kaptonWindowZSize

G4double PassiveProtonBeamLine::kaptonWindowZSize
private

Definition at line 154 of file PassiveProtonBeamLine.hh.

◆ layer1MonitorChamberMaterial

G4Material* PassiveProtonBeamLine::layer1MonitorChamberMaterial
private

Definition at line 340 of file PassiveProtonBeamLine.hh.

◆ layer2MonitorChamberMaterial

G4Material* PassiveProtonBeamLine::layer2MonitorChamberMaterial
private

Definition at line 341 of file PassiveProtonBeamLine.hh.

◆ layer3MonitorChamberMaterial

G4Material* PassiveProtonBeamLine::layer3MonitorChamberMaterial
private

Definition at line 342 of file PassiveProtonBeamLine.hh.

◆ layer4MonitorChamberMaterial

G4Material* PassiveProtonBeamLine::layer4MonitorChamberMaterial
private

Definition at line 343 of file PassiveProtonBeamLine.hh.

◆ logicMOPICathode

G4LogicalVolume* PassiveProtonBeamLine::logicMOPICathode
private

Definition at line 262 of file PassiveProtonBeamLine.hh.

◆ logicMOPIFirstAirGap

G4LogicalVolume* PassiveProtonBeamLine::logicMOPIFirstAirGap
private

Definition at line 251 of file PassiveProtonBeamLine.hh.

◆ logicMOPIFirstAluminumLayer

G4LogicalVolume* PassiveProtonBeamLine::logicMOPIFirstAluminumLayer
private

Definition at line 240 of file PassiveProtonBeamLine.hh.

◆ logicMOPIFirstKaptonLayer

G4LogicalVolume* PassiveProtonBeamLine::logicMOPIFirstKaptonLayer
private

Definition at line 229 of file PassiveProtonBeamLine.hh.

◆ logicMOPIMotherVolume

G4LogicalVolume* PassiveProtonBeamLine::logicMOPIMotherVolume
private

Definition at line 211 of file PassiveProtonBeamLine.hh.

◆ logicMOPISecondAirGap

G4LogicalVolume* PassiveProtonBeamLine::logicMOPISecondAirGap
private

Definition at line 275 of file PassiveProtonBeamLine.hh.

◆ logicMOPISecondAluminumLayer

G4LogicalVolume* PassiveProtonBeamLine::logicMOPISecondAluminumLayer
private

Definition at line 286 of file PassiveProtonBeamLine.hh.

◆ logicMOPISecondKaptonLayer

G4LogicalVolume* PassiveProtonBeamLine::logicMOPISecondKaptonLayer
private

Definition at line 297 of file PassiveProtonBeamLine.hh.

◆ logicRangeShifterBox

G4LogicalVolume* PassiveProtonBeamLine::logicRangeShifterBox
private

Definition at line 197 of file PassiveProtonBeamLine.hh.

◆ logicStopper

G4LogicalVolume* PassiveProtonBeamLine::logicStopper
private

Definition at line 190 of file PassiveProtonBeamLine.hh.

◆ modulator

HadrontherapyModulator* PassiveProtonBeamLine::modulator
private

Definition at line 131 of file PassiveProtonBeamLine.hh.

◆ modulatorBoxMaterial

G4Material* PassiveProtonBeamLine::modulatorBoxMaterial
private

Definition at line 338 of file PassiveProtonBeamLine.hh.

◆ MOPICathodeMaterial

G4Material* PassiveProtonBeamLine::MOPICathodeMaterial
private

Definition at line 348 of file PassiveProtonBeamLine.hh.

◆ MOPICathodeXPosition

G4double PassiveProtonBeamLine::MOPICathodeXPosition
private

Definition at line 258 of file PassiveProtonBeamLine.hh.

◆ MOPICathodeXSize

G4double PassiveProtonBeamLine::MOPICathodeXSize
private

Definition at line 255 of file PassiveProtonBeamLine.hh.

◆ MOPICathodeYPosition

G4double PassiveProtonBeamLine::MOPICathodeYPosition
private

Definition at line 259 of file PassiveProtonBeamLine.hh.

◆ MOPICathodeYSize

G4double PassiveProtonBeamLine::MOPICathodeYSize
private

Definition at line 256 of file PassiveProtonBeamLine.hh.

◆ MOPICathodeZPosition

G4double PassiveProtonBeamLine::MOPICathodeZPosition
private

Definition at line 260 of file PassiveProtonBeamLine.hh.

◆ MOPICathodeZSize

G4double PassiveProtonBeamLine::MOPICathodeZSize
private

Definition at line 257 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAirGapMaterial

G4Material* PassiveProtonBeamLine::MOPIFirstAirGapMaterial
private

Definition at line 347 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAirGapXPosition

G4double PassiveProtonBeamLine::MOPIFirstAirGapXPosition
private

Definition at line 247 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAirGapXSize

G4double PassiveProtonBeamLine::MOPIFirstAirGapXSize
private

Definition at line 244 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAirGapYPosition

G4double PassiveProtonBeamLine::MOPIFirstAirGapYPosition
private

Definition at line 248 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAirGapYSize

G4double PassiveProtonBeamLine::MOPIFirstAirGapYSize
private

Definition at line 245 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAirGapZPosition

G4double PassiveProtonBeamLine::MOPIFirstAirGapZPosition
private

Definition at line 249 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAirGapZSize

G4double PassiveProtonBeamLine::MOPIFirstAirGapZSize
private

Definition at line 246 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAluminumLayerMaterial

G4Material* PassiveProtonBeamLine::MOPIFirstAluminumLayerMaterial
private

Definition at line 346 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAluminumLayerXPosition

G4double PassiveProtonBeamLine::MOPIFirstAluminumLayerXPosition
private

Definition at line 236 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAluminumLayerXSize

G4double PassiveProtonBeamLine::MOPIFirstAluminumLayerXSize
private

Definition at line 233 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAluminumLayerYPosition

G4double PassiveProtonBeamLine::MOPIFirstAluminumLayerYPosition
private

Definition at line 237 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAluminumLayerYSize

G4double PassiveProtonBeamLine::MOPIFirstAluminumLayerYSize
private

Definition at line 234 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAluminumLayerZPosition

G4double PassiveProtonBeamLine::MOPIFirstAluminumLayerZPosition
private

Definition at line 238 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstAluminumLayerZSize

G4double PassiveProtonBeamLine::MOPIFirstAluminumLayerZSize
private

Definition at line 235 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstKaptonLayerMaterial

G4Material* PassiveProtonBeamLine::MOPIFirstKaptonLayerMaterial
private

Definition at line 345 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstKaptonLayerXPosition

G4double PassiveProtonBeamLine::MOPIFirstKaptonLayerXPosition
private

Definition at line 225 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstKaptonLayerXSize

G4double PassiveProtonBeamLine::MOPIFirstKaptonLayerXSize
private

Definition at line 222 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstKaptonLayerYPosition

G4double PassiveProtonBeamLine::MOPIFirstKaptonLayerYPosition
private

Definition at line 226 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstKaptonLayerYSize

G4double PassiveProtonBeamLine::MOPIFirstKaptonLayerYSize
private

Definition at line 223 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstKaptonLayerZPosition

G4double PassiveProtonBeamLine::MOPIFirstKaptonLayerZPosition
private

Definition at line 227 of file PassiveProtonBeamLine.hh.

◆ MOPIFirstKaptonLayerZSize

G4double PassiveProtonBeamLine::MOPIFirstKaptonLayerZSize
private

Definition at line 224 of file PassiveProtonBeamLine.hh.

◆ MOPIMotherVolumeMaterial

G4Material* PassiveProtonBeamLine::MOPIMotherVolumeMaterial
private

Definition at line 344 of file PassiveProtonBeamLine.hh.

◆ MOPIMotherVolumeXPosition

G4double PassiveProtonBeamLine::MOPIMotherVolumeXPosition
private

Definition at line 217 of file PassiveProtonBeamLine.hh.

◆ MOPIMotherVolumeXSize

G4double PassiveProtonBeamLine::MOPIMotherVolumeXSize
private

Definition at line 214 of file PassiveProtonBeamLine.hh.

◆ MOPIMotherVolumeYPosition

G4double PassiveProtonBeamLine::MOPIMotherVolumeYPosition
private

Definition at line 218 of file PassiveProtonBeamLine.hh.

◆ MOPIMotherVolumeYSize

G4double PassiveProtonBeamLine::MOPIMotherVolumeYSize
private

Definition at line 215 of file PassiveProtonBeamLine.hh.

◆ MOPIMotherVolumeZPosition

G4double PassiveProtonBeamLine::MOPIMotherVolumeZPosition
private

Definition at line 219 of file PassiveProtonBeamLine.hh.

◆ MOPIMotherVolumeZSize

G4double PassiveProtonBeamLine::MOPIMotherVolumeZSize
private

Definition at line 216 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAirGapMaterial

G4Material* PassiveProtonBeamLine::MOPISecondAirGapMaterial
private

Definition at line 349 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAirGapXPosition

G4double PassiveProtonBeamLine::MOPISecondAirGapXPosition
private

Definition at line 271 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAirGapXSize

G4double PassiveProtonBeamLine::MOPISecondAirGapXSize
private

Definition at line 268 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAirGapYPosition

G4double PassiveProtonBeamLine::MOPISecondAirGapYPosition
private

Definition at line 272 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAirGapYSize

G4double PassiveProtonBeamLine::MOPISecondAirGapYSize
private

Definition at line 269 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAirGapZPosition

G4double PassiveProtonBeamLine::MOPISecondAirGapZPosition
private

Definition at line 273 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAirGapZSize

G4double PassiveProtonBeamLine::MOPISecondAirGapZSize
private

Definition at line 270 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAluminumLayerMaterial

G4Material* PassiveProtonBeamLine::MOPISecondAluminumLayerMaterial
private

Definition at line 350 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAluminumLayerXPosition

G4double PassiveProtonBeamLine::MOPISecondAluminumLayerXPosition
private

Definition at line 282 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAluminumLayerXSize

G4double PassiveProtonBeamLine::MOPISecondAluminumLayerXSize
private

Definition at line 279 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAluminumLayerYPosition

G4double PassiveProtonBeamLine::MOPISecondAluminumLayerYPosition
private

Definition at line 283 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAluminumLayerYSize

G4double PassiveProtonBeamLine::MOPISecondAluminumLayerYSize
private

Definition at line 280 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAluminumLayerZPosition

G4double PassiveProtonBeamLine::MOPISecondAluminumLayerZPosition
private

Definition at line 284 of file PassiveProtonBeamLine.hh.

◆ MOPISecondAluminumLayerZSize

G4double PassiveProtonBeamLine::MOPISecondAluminumLayerZSize
private

Definition at line 281 of file PassiveProtonBeamLine.hh.

◆ MOPISecondKaptonLayerMaterial

G4Material* PassiveProtonBeamLine::MOPISecondKaptonLayerMaterial
private

Definition at line 351 of file PassiveProtonBeamLine.hh.

◆ MOPISecondKaptonLayerXPosition

G4double PassiveProtonBeamLine::MOPISecondKaptonLayerXPosition
private

Definition at line 293 of file PassiveProtonBeamLine.hh.

◆ MOPISecondKaptonLayerXSize

G4double PassiveProtonBeamLine::MOPISecondKaptonLayerXSize
private

Definition at line 290 of file PassiveProtonBeamLine.hh.

◆ MOPISecondKaptonLayerYPosition

G4double PassiveProtonBeamLine::MOPISecondKaptonLayerYPosition
private

Definition at line 294 of file PassiveProtonBeamLine.hh.

◆ MOPISecondKaptonLayerYSize

G4double PassiveProtonBeamLine::MOPISecondKaptonLayerYSize
private

Definition at line 291 of file PassiveProtonBeamLine.hh.

◆ MOPISecondKaptonLayerZPosition

G4double PassiveProtonBeamLine::MOPISecondKaptonLayerZPosition
private

Definition at line 295 of file PassiveProtonBeamLine.hh.

◆ MOPISecondKaptonLayerZSize

G4double PassiveProtonBeamLine::MOPISecondKaptonLayerZSize
private

Definition at line 292 of file PassiveProtonBeamLine.hh.

◆ mother

G4VPhysicalVolume* PassiveProtonBeamLine::mother
private

Definition at line 301 of file PassiveProtonBeamLine.hh.

◆ nozzleSupportMaterial

G4Material* PassiveProtonBeamLine::nozzleSupportMaterial
private

Definition at line 352 of file PassiveProtonBeamLine.hh.

◆ outerRadiusStopper

G4double PassiveProtonBeamLine::outerRadiusStopper
private

Definition at line 164 of file PassiveProtonBeamLine.hh.

◆ passiveMessenger

PassiveProtonBeamLineMessenger* PassiveProtonBeamLine::passiveMessenger
private

Definition at line 133 of file PassiveProtonBeamLine.hh.

◆ physiBeamLineCover

G4VPhysicalVolume* PassiveProtonBeamLine::physiBeamLineCover
private

Definition at line 182 of file PassiveProtonBeamLine.hh.

◆ physiBeamLineCover2

G4VPhysicalVolume* PassiveProtonBeamLine::physiBeamLineCover2
private

Definition at line 183 of file PassiveProtonBeamLine.hh.

◆ physiBeamLineSupport

G4VPhysicalVolume* PassiveProtonBeamLine::physiBeamLineSupport
private

Definition at line 181 of file PassiveProtonBeamLine.hh.

◆ physiBrassTube

G4VPhysicalVolume* PassiveProtonBeamLine::physiBrassTube
private

Definition at line 313 of file PassiveProtonBeamLine.hh.

◆ physiBrassTube2

G4VPhysicalVolume* PassiveProtonBeamLine::physiBrassTube2
private

Definition at line 314 of file PassiveProtonBeamLine.hh.

◆ physiBrassTube3

G4VPhysicalVolume* PassiveProtonBeamLine::physiBrassTube3
private

Definition at line 315 of file PassiveProtonBeamLine.hh.

◆ physicalTreatmentRoom

G4VPhysicalVolume* PassiveProtonBeamLine::physicalTreatmentRoom
private

Definition at line 134 of file PassiveProtonBeamLine.hh.

◆ physiFinalCollimator

G4VPhysicalVolume* PassiveProtonBeamLine::physiFinalCollimator
private

Definition at line 317 of file PassiveProtonBeamLine.hh.

◆ physiFirstCollimator

G4VPhysicalVolume* PassiveProtonBeamLine::physiFirstCollimator
private

Definition at line 194 of file PassiveProtonBeamLine.hh.

◆ physiFirstCollimatorModulatorBox

G4VPhysicalVolume* PassiveProtonBeamLine::physiFirstCollimatorModulatorBox
private

Definition at line 202 of file PassiveProtonBeamLine.hh.

◆ physiFirstMonitorLayer1

G4VPhysicalVolume* PassiveProtonBeamLine::physiFirstMonitorLayer1
private

Definition at line 303 of file PassiveProtonBeamLine.hh.

◆ physiFirstMonitorLayer2

G4VPhysicalVolume* PassiveProtonBeamLine::physiFirstMonitorLayer2
private

Definition at line 304 of file PassiveProtonBeamLine.hh.

◆ physiFirstMonitorLayer3

G4VPhysicalVolume* PassiveProtonBeamLine::physiFirstMonitorLayer3
private

Definition at line 305 of file PassiveProtonBeamLine.hh.

◆ physiFirstMonitorLayer4

G4VPhysicalVolume* PassiveProtonBeamLine::physiFirstMonitorLayer4
private

Definition at line 306 of file PassiveProtonBeamLine.hh.

◆ physiFirstScatteringFoil

G4VPhysicalVolume* PassiveProtonBeamLine::physiFirstScatteringFoil
private

Definition at line 185 of file PassiveProtonBeamLine.hh.

◆ physiHoleFirstCollimator

G4VPhysicalVolume* PassiveProtonBeamLine::physiHoleFirstCollimator
private

Definition at line 195 of file PassiveProtonBeamLine.hh.

◆ physiHoleFirstCollimatorModulatorBox

G4VPhysicalVolume* PassiveProtonBeamLine::physiHoleFirstCollimatorModulatorBox
private

Definition at line 203 of file PassiveProtonBeamLine.hh.

◆ physiHoleNozzleSupport

G4VPhysicalVolume* PassiveProtonBeamLine::physiHoleNozzleSupport
private

Definition at line 312 of file PassiveProtonBeamLine.hh.

◆ physiHoleSecondCollimator

G4VPhysicalVolume* PassiveProtonBeamLine::physiHoleSecondCollimator
private

Definition at line 200 of file PassiveProtonBeamLine.hh.

◆ physiHoleSecondCollimatorModulatorBox

G4VPhysicalVolume* PassiveProtonBeamLine::physiHoleSecondCollimatorModulatorBox
private

Definition at line 206 of file PassiveProtonBeamLine.hh.

◆ physiKaptonWindow

G4VPhysicalVolume* PassiveProtonBeamLine::physiKaptonWindow
private

Definition at line 186 of file PassiveProtonBeamLine.hh.

◆ physiMOPICathode

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPICathode
private

Definition at line 263 of file PassiveProtonBeamLine.hh.

◆ physiMOPIFirstAirGap

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPIFirstAirGap
private

Definition at line 252 of file PassiveProtonBeamLine.hh.

◆ physiMOPIFirstAluminumLayer

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPIFirstAluminumLayer
private

Definition at line 241 of file PassiveProtonBeamLine.hh.

◆ physiMOPIFirstKaptonLayer

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPIFirstKaptonLayer
private

Definition at line 230 of file PassiveProtonBeamLine.hh.

◆ physiMOPIMotherVolume

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPIMotherVolume
private

Definition at line 210 of file PassiveProtonBeamLine.hh.

◆ physiMOPISecondAirGap

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPISecondAirGap
private

Definition at line 276 of file PassiveProtonBeamLine.hh.

◆ physiMOPISecondAluminumLayer

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPISecondAluminumLayer
private

Definition at line 287 of file PassiveProtonBeamLine.hh.

◆ physiMOPISecondKaptonLayer

G4VPhysicalVolume* PassiveProtonBeamLine::physiMOPISecondKaptonLayer
private

Definition at line 298 of file PassiveProtonBeamLine.hh.

◆ physiNozzleSupport

G4VPhysicalVolume* PassiveProtonBeamLine::physiNozzleSupport
private

Definition at line 311 of file PassiveProtonBeamLine.hh.

◆ physiRangeShifterBox

G4VPhysicalVolume* PassiveProtonBeamLine::physiRangeShifterBox
private

Definition at line 198 of file PassiveProtonBeamLine.hh.

◆ physiSecondCollimator

G4VPhysicalVolume* PassiveProtonBeamLine::physiSecondCollimator
private

Definition at line 199 of file PassiveProtonBeamLine.hh.

◆ physiSecondCollimatorModulatorBox

G4VPhysicalVolume* PassiveProtonBeamLine::physiSecondCollimatorModulatorBox
private

Definition at line 205 of file PassiveProtonBeamLine.hh.

◆ physiSecondMonitorLayer1

G4VPhysicalVolume* PassiveProtonBeamLine::physiSecondMonitorLayer1
private

Definition at line 307 of file PassiveProtonBeamLine.hh.

◆ physiSecondMonitorLayer2

G4VPhysicalVolume* PassiveProtonBeamLine::physiSecondMonitorLayer2
private

Definition at line 308 of file PassiveProtonBeamLine.hh.

◆ physiSecondMonitorLayer3

G4VPhysicalVolume* PassiveProtonBeamLine::physiSecondMonitorLayer3
private

Definition at line 309 of file PassiveProtonBeamLine.hh.

◆ physiSecondMonitorLayer4

G4VPhysicalVolume* PassiveProtonBeamLine::physiSecondMonitorLayer4
private

Definition at line 310 of file PassiveProtonBeamLine.hh.

◆ physiSecondScatteringFoil

G4VPhysicalVolume* PassiveProtonBeamLine::physiSecondScatteringFoil
private

Definition at line 193 of file PassiveProtonBeamLine.hh.

◆ physiStopper

G4VPhysicalVolume* PassiveProtonBeamLine::physiStopper
private

Definition at line 189 of file PassiveProtonBeamLine.hh.

◆ rangeShifterMaterial

G4Material* PassiveProtonBeamLine::rangeShifterMaterial
private

Definition at line 329 of file PassiveProtonBeamLine.hh.

◆ rangeShifterXPosition

G4double PassiveProtonBeamLine::rangeShifterXPosition
private

Definition at line 176 of file PassiveProtonBeamLine.hh.

◆ rangeShifterXSize

G4double PassiveProtonBeamLine::rangeShifterXSize
private

Definition at line 173 of file PassiveProtonBeamLine.hh.

◆ rangeShifterYPosition

G4double PassiveProtonBeamLine::rangeShifterYPosition
private

Definition at line 177 of file PassiveProtonBeamLine.hh.

◆ rangeShifterYSize

G4double PassiveProtonBeamLine::rangeShifterYSize
private

Definition at line 174 of file PassiveProtonBeamLine.hh.

◆ rangeShifterZPosition

G4double PassiveProtonBeamLine::rangeShifterZPosition
private

Definition at line 178 of file PassiveProtonBeamLine.hh.

◆ rangeShifterZSize

G4double PassiveProtonBeamLine::rangeShifterZSize
private

Definition at line 175 of file PassiveProtonBeamLine.hh.

◆ red

G4VisAttributes* PassiveProtonBeamLine::red
private

Definition at line 322 of file PassiveProtonBeamLine.hh.

◆ redWire

G4VisAttributes* PassiveProtonBeamLine::redWire
private

Definition at line 265 of file PassiveProtonBeamLine.hh.

◆ RO

HadrontherapyDetectorROGeometry* PassiveProtonBeamLine::RO
private

Definition at line 361 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoil

G4Box* PassiveProtonBeamLine::secondScatteringFoil
private

Definition at line 192 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoilMaterial

G4Material* PassiveProtonBeamLine::secondScatteringFoilMaterial
private

Definition at line 335 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoilXPosition

G4double PassiveProtonBeamLine::secondScatteringFoilXPosition
private

Definition at line 169 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoilXSize

G4double PassiveProtonBeamLine::secondScatteringFoilXSize
private

Definition at line 166 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoilYPosition

G4double PassiveProtonBeamLine::secondScatteringFoilYPosition
private

Definition at line 170 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoilYSize

G4double PassiveProtonBeamLine::secondScatteringFoilYSize
private

Definition at line 167 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoilZPosition

G4double PassiveProtonBeamLine::secondScatteringFoilZPosition
private

Definition at line 171 of file PassiveProtonBeamLine.hh.

◆ secondScatteringFoilZSize

G4double PassiveProtonBeamLine::secondScatteringFoilZSize
private

Definition at line 168 of file PassiveProtonBeamLine.hh.

◆ skyBlue

G4VisAttributes* PassiveProtonBeamLine::skyBlue
private

Definition at line 327 of file PassiveProtonBeamLine.hh.

◆ solidFinalCollimator

G4Tubs* PassiveProtonBeamLine::solidFinalCollimator
private

Definition at line 316 of file PassiveProtonBeamLine.hh.

◆ solidMOPICathode

G4Box* PassiveProtonBeamLine::solidMOPICathode
private

Definition at line 261 of file PassiveProtonBeamLine.hh.

◆ solidMOPIFirstAirGap

G4Box* PassiveProtonBeamLine::solidMOPIFirstAirGap
private

Definition at line 250 of file PassiveProtonBeamLine.hh.

◆ solidMOPIFirstAluminumLayer

G4Box* PassiveProtonBeamLine::solidMOPIFirstAluminumLayer
private

Definition at line 239 of file PassiveProtonBeamLine.hh.

◆ solidMOPIFirstKaptonLayer

G4Box* PassiveProtonBeamLine::solidMOPIFirstKaptonLayer
private

Definition at line 228 of file PassiveProtonBeamLine.hh.

◆ solidMOPIMotherVolume

G4Box* PassiveProtonBeamLine::solidMOPIMotherVolume
private

Definition at line 212 of file PassiveProtonBeamLine.hh.

◆ solidMOPISecondAirGap

G4Box* PassiveProtonBeamLine::solidMOPISecondAirGap
private

Definition at line 274 of file PassiveProtonBeamLine.hh.

◆ solidMOPISecondAluminumLayer

G4Box* PassiveProtonBeamLine::solidMOPISecondAluminumLayer
private

Definition at line 285 of file PassiveProtonBeamLine.hh.

◆ solidMOPISecondKaptonLayer

G4Box* PassiveProtonBeamLine::solidMOPISecondKaptonLayer
private

Definition at line 296 of file PassiveProtonBeamLine.hh.

◆ solidRangeShifterBox

G4Box* PassiveProtonBeamLine::solidRangeShifterBox
private

Definition at line 196 of file PassiveProtonBeamLine.hh.

◆ solidStopper

G4Tubs* PassiveProtonBeamLine::solidStopper
private

Definition at line 188 of file PassiveProtonBeamLine.hh.

◆ spanningAngleStopper

G4double PassiveProtonBeamLine::spanningAngleStopper
private

Definition at line 160 of file PassiveProtonBeamLine.hh.

◆ startAngleStopper

G4double PassiveProtonBeamLine::startAngleStopper
private

Definition at line 159 of file PassiveProtonBeamLine.hh.

◆ stopperMaterial

G4Material* PassiveProtonBeamLine::stopperMaterial
private

Definition at line 334 of file PassiveProtonBeamLine.hh.

◆ stopperXPosition

G4double PassiveProtonBeamLine::stopperXPosition
private

Definition at line 161 of file PassiveProtonBeamLine.hh.

◆ stopperYPosition

G4double PassiveProtonBeamLine::stopperYPosition
private

Definition at line 162 of file PassiveProtonBeamLine.hh.

◆ stopperZPosition

G4double PassiveProtonBeamLine::stopperZPosition
private

Definition at line 163 of file PassiveProtonBeamLine.hh.

◆ vacuumZoneMaterial

G4Material* PassiveProtonBeamLine::vacuumZoneMaterial
private

Definition at line 331 of file PassiveProtonBeamLine.hh.

◆ vacuumZoneXPosition

G4double PassiveProtonBeamLine::vacuumZoneXPosition
private

Definition at line 145 of file PassiveProtonBeamLine.hh.

◆ vacuumZoneXSize

G4double PassiveProtonBeamLine::vacuumZoneXSize
private

Definition at line 142 of file PassiveProtonBeamLine.hh.

◆ vacuumZoneYSize

G4double PassiveProtonBeamLine::vacuumZoneYSize
private

Definition at line 143 of file PassiveProtonBeamLine.hh.

◆ vacuumZoneZSize

G4double PassiveProtonBeamLine::vacuumZoneZSize
private

Definition at line 144 of file PassiveProtonBeamLine.hh.

◆ white

G4VisAttributes* PassiveProtonBeamLine::white
private

Definition at line 321 of file PassiveProtonBeamLine.hh.

◆ yellow

G4VisAttributes* PassiveProtonBeamLine::yellow
private

Definition at line 323 of file PassiveProtonBeamLine.hh.


The documentation for this class was generated from the following files: