Geant4  10.02.p03
Collimator60BeamLine Class Reference

#include <Collimator60BeamLine.hh>

Inheritance diagram for Collimator60BeamLine:
Collaboration diagram for Collimator60BeamLine:

Public Member Functions

 Collimator60BeamLine ()
 
 ~Collimator60BeamLine ()
 
G4VPhysicalVolumeConstruct ()
 
void IortBeamLineVacuumSource ()
 
void IortBeamLineTitaniumWindows ()
 
void IortBeamLineMonitorChambers ()
 
void IortBeamLineBlocks ()
 
void IortBeamLineJunctions ()
 
void IortBeamLineFinalCollimator ()
 
void SetInnerRadiusFinalCollimatorIORT (G4double)
 
void SetOuterRadiusFinalCollimatorIORT (G4double)
 
- 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
 

Private Member Functions

void SetDefaultDimensions ()
 
void ConstructCollimator60BeamLine ()
 

Private Attributes

Collimator60BeamLineMessengercollimatorMessenger
 
G4VPhysicalVolumephysicalTreatmentRoom
 
IORTDetectorConstructioniortDetectorConstruction
 
G4VisAttributesblue
 
G4VisAttributesgray
 
G4VisAttributeswhite
 
G4VisAttributesred
 
G4VisAttributesyellow
 
G4VisAttributesgreen
 
G4VisAttributesdarkGreen
 
G4VisAttributesdarkOrange3
 
G4VisAttributesskyBlue
 
G4double innerRadiusFinalCollimatorIORT
 
G4double OuterRadiusFinalCollimatorIORT
 
G4TubssolidFinalCollimatorIORT
 
G4VPhysicalVolumephysiFinalCollimatorIORT
 
G4MaterialfinalCollimatorMaterialIORT
 
G4TubssolidGiunz1FinalCollIORT
 
G4VPhysicalVolumephysiGiunz1FinalCollIORT
 
G4MaterialGiunz1FinalCollMaterialIORT
 
G4TubssolidGiunz2FinalCollIORT
 
G4VPhysicalVolumephysiGiunz2FinalCollIORT
 
G4MaterialGiunz2FinalCollMaterialIORT
 
G4TubssolidGiunz3FinalCollIORT
 
G4VPhysicalVolumephysiGiunz3FinalCollIORT
 
G4MaterialGiunz3FinalCollMaterialIORT
 
G4ConssolidGiunz3FinalCollIntIORT
 
G4MaterialGiunz3FinalCollMaterialIntIORT
 
G4VPhysicalVolumephysiGiunz3FinalCollIntIORT
 
G4TubssolidGiunz4FinalCollIORT
 
G4VPhysicalVolumephysiGiunz4FinalCollIORT
 
G4MaterialGiunz4FinalCollMaterialIORT
 
G4TubssolidGiunz5FinalCollIORT
 
G4VPhysicalVolumephysiGiunz5FinalCollIORT
 
G4MaterialGiunz5FinalCollMaterialIORT
 
G4TubssolidBlocco1IORT
 
G4VPhysicalVolumephysiBlocco1IORT
 
G4MaterialBlocco1IORTMaterialIORT
 
G4TubssolidBlocco2IORT
 
G4VPhysicalVolumephysiBlocco2IORT
 
G4MaterialBlocco2IORTMaterialIORT
 
G4TubssolidBlocco3IORT
 
G4VPhysicalVolumephysiBlocco3IORT
 
G4MaterialBlocco3IORTMaterialIORT
 
G4TubssolidBlocco20mmIORT
 
G4VPhysicalVolumephysiBlocco20mmIORT
 
G4MaterialBlocco20mmIORTMaterialIORT
 
G4TubssolidCM1_1_2IORT
 
G4VPhysicalVolumephysiCM1_1_2IORT
 
G4MaterialCM1_1_2IORTMaterialIORT
 
G4TubssolidCM1_2_2IORT
 
G4VPhysicalVolumephysiCM1_2_2IORT
 
G4MaterialCM1_2_2IORTMaterialIORT
 
G4TubssolidCM2_1_2IORT
 
G4VPhysicalVolumephysiCM2_1_2IORT
 
G4MaterialCM2_1_2IORTMaterialIORT
 
G4TubssolidCM2_2_2IORT
 
G4VPhysicalVolumephysiCM2_2_2IORT
 
G4MaterialCM2_2_2IORTMaterialIORT
 
G4TubssolidCCMIORT
 
G4VPhysicalVolumephysiCCMIORT
 
G4MaterialCCMIORTMaterialIORT
 
G4TubssolidPFS1IORT
 
G4VPhysicalVolumephysiPFS1IORT
 
G4MaterialPFS1IORTMaterialIORT
 
G4TubssolidPFS2IORT
 
G4VPhysicalVolumephysiPFS2IORT
 
G4MaterialPFS2IORTMaterialIORT
 
G4TubssolidPFS3IORT
 
G4VPhysicalVolumephysiPFS3IORT
 
G4MaterialPFS3IORTMaterialIORT
 
G4TubssolidFTIORT
 
G4VPhysicalVolumephysiFTIORT
 
G4MaterialFTIORTMaterialIORT
 
G4TubssolidVSIORT
 
G4VPhysicalVolumephysiVSIORT
 
G4MaterialVSIORTMaterialIORT
 

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 58 of file Collimator60BeamLine.hh.

Constructor & Destructor Documentation

◆ Collimator60BeamLine()

Collimator60BeamLine::Collimator60BeamLine ( )

Definition at line 59 of file Collimator60BeamLine.cc.

59  :
61 
62 
63 
66 
69 
72 
75 
78 
81 
84 
87 
90 
93 
96 
99 
100  solidCM1_2_2IORT(0),
101  physiCM1_2_2IORT(0),
102 
103  solidCM2_1_2IORT(0),
104  physiCM2_1_2IORT(0),
105 
106  solidCM2_2_2IORT(0),
107  physiCM2_2_2IORT(0),
108 
109  solidCCMIORT(0),
110  physiCCMIORT(0),
111 
112  solidPFS1IORT(0),
113  physiPFS1IORT(0),
114 
115  solidPFS2IORT(0),
116  physiPFS2IORT(0),
117 
118  solidPFS3IORT(0),
119  physiPFS3IORT(0),
120 
121  solidFTIORT(0),
122  physiFTIORT(0)
123 
124 
125 {
126  // Messenger to change parameters of the collimator60BeamLine geometry
128 
129 }
G4VPhysicalVolume * physiPFS2IORT
G4VPhysicalVolume * physiCM2_1_2IORT
G4VPhysicalVolume * physiBlocco3IORT
G4VPhysicalVolume * physiBlocco1IORT
G4VPhysicalVolume * physiCM1_1_2IORT
G4VPhysicalVolume * physiCM2_2_2IORT
G4VPhysicalVolume * physiGiunz1FinalCollIORT
G4VPhysicalVolume * physiGiunz5FinalCollIORT
G4VPhysicalVolume * physiPFS1IORT
G4VPhysicalVolume * physiCM1_2_2IORT
G4VPhysicalVolume * physiFinalCollimatorIORT
G4VPhysicalVolume * physiGiunz4FinalCollIORT
G4VPhysicalVolume * physiBlocco2IORT
G4VPhysicalVolume * physiBlocco20mmIORT
G4VPhysicalVolume * physiGiunz2FinalCollIORT
G4VPhysicalVolume * physiFTIORT
G4VPhysicalVolume * physiCCMIORT
G4VPhysicalVolume * physiPFS3IORT
IORTDetectorConstruction * iortDetectorConstruction
G4VPhysicalVolume * physiGiunz3FinalCollIntIORT
Collimator60BeamLineMessenger * collimatorMessenger
G4VPhysicalVolume * physiGiunz3FinalCollIORT
G4VPhysicalVolume * physicalTreatmentRoom

◆ ~Collimator60BeamLine()

Collimator60BeamLine::~Collimator60BeamLine ( )

Definition at line 131 of file Collimator60BeamLine.cc.

132 {
133  delete collimatorMessenger;
135 }
IORTDetectorConstruction * iortDetectorConstruction
Collimator60BeamLineMessenger * collimatorMessenger

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * Collimator60BeamLine::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 140 of file Collimator60BeamLine.cc.

141 {
142  // Sets default geometry and materials
144 
145  // Construct the whole Collimator Beam Line
147 
148 
149  // IORTDetectorConstruction builds ONLY the phantom and the detector with its associated ROGeometry
151 
152  return physicalTreatmentRoom;
153 }
IORTDetectorConstruction * iortDetectorConstruction
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:

◆ ConstructCollimator60BeamLine()

void Collimator60BeamLine::ConstructCollimator60BeamLine ( )
private

Definition at line 315 of file Collimator60BeamLine.cc.

316 {
317  // -----------------------------
318  // Treatment room - World volume
319  //------------------------------
320  // Treatment room sizes
321  const G4double worldX = 400.0 *cm;
322  const G4double worldY = 400.0 *cm;
323  const G4double worldZ = 400.0 *cm;
324  G4bool isotopes = false;
325 
326  G4Material* airNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_AIR", isotopes);
327  G4Box* treatmentRoom = new G4Box("TreatmentRoom",worldX,worldY,worldZ);
328  G4LogicalVolume* logicTreatmentRoom = new G4LogicalVolume(treatmentRoom,
329  airNist,
330  "logicTreatmentRoom",
331  0,0,0);
333  G4ThreeVector(),
334  "physicalTreatmentRoom",
335  logicTreatmentRoom,
336  0,false,0);
337 
338 
339  // The treatment room is invisible in the Visualisation
340  logicTreatmentRoom -> SetVisAttributes (G4VisAttributes::Invisible);
341 
342  // Components of the Collimator Beam Line
343 
350 
351 }
static const double cm
Definition: G4SIunits.hh:118
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Box.hh:64
static G4NistManager * Instance()
bool G4bool
Definition: G4Types.hh:79
static const G4VisAttributes Invisible
double G4double
Definition: G4Types.hh:76
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineBlocks()

void Collimator60BeamLine::IortBeamLineBlocks ( )

Definition at line 643 of file Collimator60BeamLine.cc.

644 {
645 
646  G4double phi4 = 90. *deg;
647 
648 
649  G4RotationMatrix rm4;
650  rm4.rotateY(phi4);
651 
653 
654  // IORT BEAM LINE BLOCKS
655 
657 
658  // ------------------------------------------------//
659  // Block 4 //
660  // ------------------------------------------------//
661 
662  const G4double outRadiusBlocco20mmIORT = 36.5 *mm;
663  const G4double innRadiusBlocco20mmIORT = 10. *mm;
664  const G4double hightBlocco20mmIORT = 3. *mm;
665  const G4double startAngleBlocco20mmIORT = 0.*deg;
666  const G4double spanningAngleBlocco20mmIORT = 360.*deg;
667  const G4double XPositionBlocco20mmIORT = -830. *mm;
668 
669  solidBlocco20mmIORT = new G4Tubs("Blocco20mmIORT", innRadiusBlocco20mmIORT,
670  outRadiusBlocco20mmIORT,
671  hightBlocco20mmIORT,
672  startAngleBlocco20mmIORT,
673  spanningAngleBlocco20mmIORT);
674 
675  G4LogicalVolume* logBlocco20mmIORT = new G4LogicalVolume(solidBlocco20mmIORT,
676  Blocco20mmIORTMaterialIORT, "Blocco20mmIORT", 0, 0, 0);
677 
678  physiBlocco20mmIORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco20mmIORT),0.,0.)),
679  "Blocco20mmORT", logBlocco20mmIORT, physicalTreatmentRoom, false, 0);
680 
681  logBlocco20mmIORT -> SetVisAttributes(green);
682 
683 
684  // -----------------------//
685  // Block 3 //
686  // -----------------------//
687 
688  const G4double outRadiusBlocco3IORT = 36.5 *mm;
689  const G4double innRadiusBlocco3IORT = 15. *mm;
690  const G4double hightBlocco3IORT = 3.5 *mm;
691  const G4double startAngleBlocco3IORT = 0.*deg;
692  const G4double spanningAngleBlocco3IORT = 360.*deg;
693  const G4double XPositionBlocco3IORT = -823.5 *mm;
694 
695 
696  solidBlocco3IORT = new G4Tubs("Blocco3IORT", innRadiusBlocco3IORT,
697  outRadiusBlocco3IORT,
698  hightBlocco3IORT,
699  startAngleBlocco3IORT,
700  spanningAngleBlocco3IORT);
701 
702  G4LogicalVolume* logBlocco3IORT = new G4LogicalVolume(solidBlocco3IORT,
703  Blocco3IORTMaterialIORT, "Blocco3IORT", 0, 0, 0);
704 
705  physiBlocco3IORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco3IORT),0.,0.)),
706  "Blocco3ORT", logBlocco3IORT, physicalTreatmentRoom, false, 0);
707 
708  logBlocco3IORT -> SetVisAttributes(yellow);
709 
710  // -----------------------//
711  // Block 2 //
712  // -----------------------//
713 
714  const G4double outRadiusBlocco2IORT = 41.5 *mm;
715  const G4double innRadiusBlocco2IORT = 15. *mm;
716  const G4double hightBlocco2IORT = 8. *mm;
717  const G4double startAngleBlocco2IORT = 0.*deg;
718  const G4double spanningAngleBlocco2IORT = 360.*deg;
719  const G4double XPositionBlocco2IORT = -812. *mm;
720 
721 
722  solidBlocco2IORT = new G4Tubs("Blocco2IORT", innRadiusBlocco2IORT,
723  outRadiusBlocco2IORT,
724  hightBlocco2IORT,
725  startAngleBlocco2IORT,
726  spanningAngleBlocco2IORT);
727 
728  G4LogicalVolume* logBlocco2IORT = new G4LogicalVolume(solidBlocco2IORT,
729  Blocco2IORTMaterialIORT, "Blocco2IORT", 0, 0, 0);
730 
731  physiBlocco2IORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco2IORT),0.,0.)),
732  "Blocco2IORT", logBlocco2IORT, physicalTreatmentRoom, false, 0);
733 
734  logBlocco2IORT -> SetVisAttributes(red);
735 
736  // ----------------------- //
737  // Block 1 //
738  // ----------------------- //
739 
740  const G4double outRadiusBlocco1IORT = 52.0 *mm;
741  const G4double innRadiusBlocco1IORT = 15. *mm;
742  const G4double hightBlocco1IORT = 8.5 *mm;
743  const G4double startAngleBlocco1IORT = 0.*deg;
744  const G4double spanningAngleBlocco1IORT = 360.*deg;
745  const G4double XPositionBlocco1IORT = -795.5*mm;
746 
747  solidBlocco1IORT = new G4Tubs("Blocco1IORT", innRadiusBlocco1IORT,
748  outRadiusBlocco1IORT,
749  hightBlocco1IORT,
750  startAngleBlocco1IORT,
751  spanningAngleBlocco1IORT);
752 
753  G4LogicalVolume* logBlocco1IORT = new G4LogicalVolume(solidBlocco1IORT,
754  Blocco1IORTMaterialIORT, "Blocco1IORT", 0, 0, 0);
755 
756  physiBlocco1IORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco1IORT),0.,0.)),
757  "Blocco1IORT", logBlocco1IORT, physicalTreatmentRoom, false, 0);
758 
759  logBlocco1IORT -> SetVisAttributes(white);
760 }
G4Material * Blocco20mmIORTMaterialIORT
G4VPhysicalVolume * physiBlocco3IORT
G4VPhysicalVolume * physiBlocco1IORT
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4Material * Blocco1IORTMaterialIORT
G4Material * Blocco3IORTMaterialIORT
static const double deg
Definition: G4SIunits.hh:151
G4Material * Blocco2IORTMaterialIORT
G4VPhysicalVolume * physiBlocco2IORT
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiBlocco20mmIORT
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineFinalCollimator()

void Collimator60BeamLine::IortBeamLineFinalCollimator ( )

Definition at line 920 of file Collimator60BeamLine.cc.

921 {
922 // -----------------------//
923  // FINAL COLLIMATOR IORT //
924  //------------------------//
925 
926  // const G4double OuterRadiusFinalCollimatorIORT = 35. *mm;
927  // const G4double innerRadiusFinalCollimatorIORT = 30. *mm;
928  const G4double hightFinalCollimatorIORT = 334. *mm;
929  const G4double startAngleFinalCollimatorIORT = 0.*deg;
930  const G4double spanningAngleFinalCollimatorIORT = 360.*deg;
931  const G4double finalCollimatorXPositionIORT = -389.*mm;
932 
933 
934 
935 
936  G4double phi6 = 90. *deg;
937 
938 
940  rm6.rotateY(phi6);
941 
942 
943  solidFinalCollimatorIORT = new G4Tubs("FinalCollimatorIORT", innerRadiusFinalCollimatorIORT,
945  hightFinalCollimatorIORT,
946  startAngleFinalCollimatorIORT,
947  spanningAngleFinalCollimatorIORT);
948 
949  G4LogicalVolume* logFinalCollimatorIORT = new G4LogicalVolume(solidFinalCollimatorIORT,
950  finalCollimatorMaterialIORT, "FinalCollimatorIORT", 0, 0, 0);
951 
952  physiFinalCollimatorIORT = new G4PVPlacement(G4Transform3D(rm6, G4ThreeVector((finalCollimatorXPositionIORT),0.,0.)),
953  "FinalCollimatorIORT", logFinalCollimatorIORT, physicalTreatmentRoom, false, 0);
954 
955  // logFinalCollimatorIORT -> SetVisAttributes(G4VisAttributes::Invisible);
956  logFinalCollimatorIORT -> SetVisAttributes(blue);
957 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
static const double deg
Definition: G4SIunits.hh:151
G4Material * finalCollimatorMaterialIORT
G4VPhysicalVolume * physiFinalCollimatorIORT
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineJunctions()

void Collimator60BeamLine::IortBeamLineJunctions ( )

Definition at line 762 of file Collimator60BeamLine.cc.

763 {
764 
765 
766  G4double phi5 = 90. *deg;
767 
768 
769  G4RotationMatrix rm5;
770  rm5.rotateY(phi5);
771 
772  // --------------------------------- //
773  // Junction 5 FINAL COLLIMATOR IORT //
774  // --------------------------------- //
775 
776  const G4double outRadiusGiunz5FinalCollIORT = 48.25 *mm;
777  const G4double innRadiusGiunz5FinalCollIORT = 13.75 *mm;
778  const G4double hightGiunz5FinalCollIORT = 3.5 *mm;
779  const G4double startAngleGiunz5FinalCollIORT = 0.*deg;
780  const G4double spanningAngleGiunz5FinalCollIORT = 360.*deg;
781  const G4double Giunz5FinalCollXPositionIORT = -783.5 *mm;
782 
783  solidGiunz5FinalCollIORT = new G4Tubs("Giunz5FinalCollIORT", innRadiusGiunz5FinalCollIORT,
784  outRadiusGiunz5FinalCollIORT,
785  hightGiunz5FinalCollIORT,
786  startAngleGiunz5FinalCollIORT,
787  spanningAngleGiunz5FinalCollIORT);
788 
789  G4LogicalVolume* logGiunz5FinalCollIORT = new G4LogicalVolume(solidGiunz5FinalCollIORT,
790  Giunz5FinalCollMaterialIORT, "Giunz5FinalCollIORT", 0, 0, 0);
791 
792  physiGiunz5FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz5FinalCollXPositionIORT),0.,0.)),
793  "Giunz5FinalCollIORT", logGiunz5FinalCollIORT, physicalTreatmentRoom, false, 0);
794 
795  logGiunz5FinalCollIORT -> SetVisAttributes(yellow);
796 
797 // --------------------------------- //
798  // Junction 4 FINAL COLLIMATOR IORT //
799  // --------------------------------- //
800 
801  const G4double outRadiusGiunz4FinalCollIORT = 42. *mm;
802  const G4double innRadiusGiunz4FinalCollIORT = 13.75 *mm;
803  const G4double hightGiunz4FinalCollIORT = 8.5 *mm;
804  const G4double startAngleGiunz4FinalCollIORT = 0.*deg;
805  const G4double spanningAngleGiunz4FinalCollIORT = 360.*deg;
806  const G4double Giunz4FinalCollXPositionIORT = -771.5 *mm;
807 
808  solidGiunz4FinalCollIORT = new G4Tubs("Giunz4FinalCollIORT", innRadiusGiunz4FinalCollIORT,
809  outRadiusGiunz4FinalCollIORT,
810  hightGiunz4FinalCollIORT,
811  startAngleGiunz4FinalCollIORT,
812  spanningAngleGiunz4FinalCollIORT);
813 
814  G4LogicalVolume* logGiunz4FinalCollIORT = new G4LogicalVolume(solidGiunz4FinalCollIORT,
815  Giunz4FinalCollMaterialIORT, "Giunz4FinalCollIORT", 0, 0, 0);
816 
817  physiGiunz4FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz4FinalCollXPositionIORT),0.,0.)),
818  "Giunz4FinalCollIORT", logGiunz4FinalCollIORT, physicalTreatmentRoom, false, 0);
819 
820  logGiunz4FinalCollIORT -> SetVisAttributes(blue);
821 
822 
823 
824  // --------------------------------- //
825  // Junction 3 FINAL COLLIMATOR IORT //
826  // --------------------------------- //
827 
828  const G4double outRadiusGiunz3FinalCollIORT = 42. *mm;
829  const G4double innRadiusGiunz3FinalCollIORT = 0. *mm;
830  const G4double hightGiunz3FinalCollIORT = 4.25 *mm;
831  const G4double startAngleGiunz3FinalCollIORT = 0.*deg;
832  const G4double spanningAngleGiunz3FinalCollIORT = 360.*deg;
833  const G4double Giunz3FinalCollXPositionIORT = -758.75 *mm;
834 
835 
836  solidGiunz3FinalCollIORT = new G4Tubs("Giunz3FinalCollIORT", innRadiusGiunz3FinalCollIORT,
837  outRadiusGiunz3FinalCollIORT,
838  hightGiunz3FinalCollIORT,
839  startAngleGiunz3FinalCollIORT,
840  spanningAngleGiunz3FinalCollIORT);
841 
842  G4LogicalVolume* logicsolidGiunz3FinalCollIORT = new G4LogicalVolume(solidGiunz3FinalCollIORT,
843  Giunz3FinalCollMaterialIORT, "Giunz3FinalCollIORT", 0, 0, 0);
844 
845  physiGiunz3FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz3FinalCollXPositionIORT),0.,0.)),
846  "Giunz3FinalCollIORT", logicsolidGiunz3FinalCollIORT, physicalTreatmentRoom, false, 0);
847 
848  logicsolidGiunz3FinalCollIORT -> SetVisAttributes(yellow);
849  // logicsolidGiunz3FinalCollIORT -> SetVisAttributes (G4VisAttributes::Invisible);
850 
851 
852 
853  // --------------------------------- //
854  // Junction 3 FINAL COLLIMATOR IORT internal //
855  // --------------------------------- //
856 
857 
858 
859  solidGiunz3FinalCollIntIORT = new G4Cons("Giunz3FinalCollIntIORT",0.*mm,13.75*mm,0.*mm,22.25*mm,4.25*mm,0.*deg,360.*deg);
860 
861  G4LogicalVolume* logicsolidGiunz3FinalCollIntIORT = new G4LogicalVolume(solidGiunz3FinalCollIntIORT,
862  Giunz3FinalCollMaterialIntIORT, "Giunz3FinalCollIntIORT", 0, 0, 0);
863 
864  physiGiunz3FinalCollIntIORT = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.),"Giunz3FinalCollIntIORT", logicsolidGiunz3FinalCollIntIORT,physiGiunz3FinalCollIORT, false, 0);
865 
866  logicsolidGiunz3FinalCollIntIORT -> SetVisAttributes(yellow);
867 
868 
869 // --------------------------------- //
870  // Junction 2 FINAL COLLIMATOR IORT //
871  // --------------------------------- //
872 
873  const G4double outRadiusGiunz2FinalCollIORT = 42. *mm;
874  const G4double innRadiusGiunz2FinalCollIORT = 22.25 *mm;
875  const G4double hightGiunz2FinalCollIORT = 5.75 *mm;
876  const G4double startAngleGiunz2FinalCollIORT = 0.*deg;
877  const G4double spanningAngleGiunz2FinalCollIORT = 360.*deg;
878  const G4double Giunz2FinalCollXPositionIORT = -748.75 *mm;
879 
880  solidGiunz2FinalCollIORT = new G4Tubs("Giunz2FinalCollIORT", innRadiusGiunz2FinalCollIORT,
881  outRadiusGiunz2FinalCollIORT,
882  hightGiunz2FinalCollIORT,
883  startAngleGiunz2FinalCollIORT,
884  spanningAngleGiunz2FinalCollIORT);
885 
886  G4LogicalVolume* logGiunz2FinalCollIORT = new G4LogicalVolume(solidGiunz2FinalCollIORT,
887  Giunz2FinalCollMaterialIORT, "Giunz2FinalCollIORT", 0, 0, 0);
888 
889  physiGiunz2FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz2FinalCollXPositionIORT),0.,0.)),
890  "Giunz2FinalCollIORT", logGiunz2FinalCollIORT, physicalTreatmentRoom, false, 0);
891 
892  logGiunz2FinalCollIORT -> SetVisAttributes(red);
893 
894 // --------------------------------- //
895  // Junction 1 FINAL COLLIMATOR IORT //
896  // --------------------------------- //
897 
898  const G4double outRadiusGiunz1FinalCollIORT = 45. *mm;
899  const G4double innRadiusGiunz1FinalCollIORT = 22.25 *mm;
900  const G4double hightGiunz1FinalCollIORT = 10. *mm;
901  const G4double startAngleGiunz1FinalCollIORT = 0.*deg;
902  const G4double spanningAngleGiunz1FinalCollIORT = 360.*deg;
903  const G4double Giunz1FinalCollXPositionIORT = -733.*mm;
904 
905  solidGiunz1FinalCollIORT = new G4Tubs("Giunz1FinalCollIORT", innRadiusGiunz1FinalCollIORT,
906  outRadiusGiunz1FinalCollIORT,
907  hightGiunz1FinalCollIORT,
908  startAngleGiunz1FinalCollIORT,
909  spanningAngleGiunz1FinalCollIORT);
910 
911  G4LogicalVolume* logGiunz1FinalCollIORT = new G4LogicalVolume(solidGiunz1FinalCollIORT,
912  Giunz1FinalCollMaterialIORT, "Giunz1FinalCollIORT", 0, 0, 0);
913 
914  physiGiunz1FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz1FinalCollXPositionIORT),0.,0.)),
915  "Giunz1FinalCollIORT", logGiunz1FinalCollIORT, physicalTreatmentRoom, false, 0);
916 
917  logGiunz1FinalCollIORT -> SetVisAttributes(gray);
918 }
CLHEP::Hep3Vector G4ThreeVector
G4Material * Giunz2FinalCollMaterialIORT
G4Material * Giunz5FinalCollMaterialIORT
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4Material * Giunz4FinalCollMaterialIORT
G4Material * Giunz1FinalCollMaterialIORT
G4VPhysicalVolume * physiGiunz1FinalCollIORT
G4Material * Giunz3FinalCollMaterialIntIORT
G4VPhysicalVolume * physiGiunz5FinalCollIORT
static const double deg
Definition: G4SIunits.hh:151
Definition: G4Cons.hh:83
G4VPhysicalVolume * physiGiunz4FinalCollIORT
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiGiunz2FinalCollIORT
G4Material * Giunz3FinalCollMaterialIORT
double G4double
Definition: G4Types.hh:76
G4VPhysicalVolume * physiGiunz3FinalCollIntIORT
static const double mm
Definition: G4SIunits.hh:114
G4VPhysicalVolume * physiGiunz3FinalCollIORT
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineMonitorChambers()

void Collimator60BeamLine::IortBeamLineMonitorChambers ( )

Definition at line 424 of file Collimator60BeamLine.cc.

425 {
426 
427  G4double phi3 = 90. *deg;
428 
429  // Matrix definition for a 90 deg rotation. Also used for other volumes
431  rm3.rotateY(phi3);
433 
434  // Monitor Chambers System
435 
437 
438 
439  // ---------------------------------------------------------------//
440  // Superior Final Part Monitor Chambers 3 //
441  // ---------------------------------------------------------------//
442 
443  const G4double outRadiusPFS3IORT = 44.75 *mm;
444  const G4double innRadiusPFS3IORT = 17.5 *mm;
445  const G4double hightPFS3IORT = 3.03 *mm;
446  const G4double startAnglePFS3IORT = 0.*deg;
447  const G4double spanningAnglePFS3IORT = 360.*deg;
448  const G4double XPositionPFS3IORT = -848.755 *mm;
449 
450  solidPFS3IORT = new G4Tubs("PFS3IORT", innRadiusPFS3IORT,
451  outRadiusPFS3IORT,
452  hightPFS3IORT,
453  startAnglePFS3IORT,
454  spanningAnglePFS3IORT);
455 
456  G4LogicalVolume* logPFS3IORT = new G4LogicalVolume(solidPFS3IORT,
457  PFS3IORTMaterialIORT, "PFS3IORT", 0, 0, 0);
458 
459  physiPFS3IORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionPFS3IORT),0.,0.)),
460  "PFS3IORT", logPFS3IORT, physicalTreatmentRoom, false, 0);
461 
462  logPFS3IORT -> SetVisAttributes(white);
463 
464 
465  // ---------------------------------------------------------------//
466  // Superior Final Part Monitor Chambers 2 //
467  // ---------------------------------------------------------------//
468 
469  const G4double outRadiusPFS2IORT = 44.75 *mm;
470  const G4double innRadiusPFS2IORT = 10. *mm;
471  const G4double hightPFS2IORT = 1.47 *mm;
472  const G4double startAnglePFS2IORT = 0.*deg;
473  const G4double spanningAnglePFS2IORT = 360.*deg;
474  const G4double XPositionPFS2IORT = -844.255 *mm;
475 
476  solidPFS2IORT = new G4Tubs("PFS2IORT", innRadiusPFS2IORT,
477  outRadiusPFS2IORT,
478  hightPFS2IORT,
479  startAnglePFS2IORT,
480  spanningAnglePFS2IORT);
481 
482  G4LogicalVolume* logPFS2IORT = new G4LogicalVolume(solidPFS2IORT,
483  PFS2IORTMaterialIORT, "PFS2IORT", 0, 0, 0);
484 
485  physiPFS2IORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionPFS2IORT),0.,0.)),
486  "PFS2IORT", logPFS2IORT, physicalTreatmentRoom, false, 0);
487 
488  logPFS2IORT -> SetVisAttributes(green);
489 
490  // ---------------------------------------------------------------//
491  // Superior Final Part Monitor Chambers 1 //
492  // ---------------------------------------------------------------//
493 
494  const G4double outRadiusPFS1IORT = 35. *mm;
495  const G4double innRadiusPFS1IORT = 10. *mm;
496  const G4double hightPFS1IORT = 0.88 *mm;
497  const G4double startAnglePFS1IORT = 0.*deg;
498  const G4double spanningAnglePFS1IORT = 360.*deg;
499  const G4double XPositionPFS1IORT = -841.905 *mm;
500 
501  solidPFS1IORT = new G4Tubs("PFS1IORT", innRadiusPFS1IORT,
502  outRadiusPFS1IORT,
503  hightPFS1IORT,
504  startAnglePFS1IORT,
505  spanningAnglePFS1IORT);
506 
507  G4LogicalVolume* logPFS1IORT = new G4LogicalVolume(solidPFS1IORT,
508  PFS1IORTMaterialIORT, "PFS1IORT", 0, 0, 0);
509 
510  physiPFS1IORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionPFS1IORT),0.,0.)),
511  "PFS1IORT", logPFS1IORT, physicalTreatmentRoom, false, 0);
512 
513  logPFS1IORT -> SetVisAttributes(green);
514 
515  // ------------------------------------------------//
516  // Monitor Chambers Cylinder //
517  // ------------------------------------------------//
518 
519  const G4double outRadiusCCMIORT = 35. *mm;
520  const G4double innRadiusCCMIORT = 10. *mm;
521  const G4double hightCCMIORT = 4.0125 *mm;
522  const G4double startAngleCCMIORT = 0.*deg;
523  const G4double spanningAngleCCMIORT = 360.*deg;
524  const G4double XPositionCCMIORT = -837.0125 *mm;
525 
526  solidCCMIORT = new G4Tubs("CCMIORT", innRadiusCCMIORT,
527  outRadiusCCMIORT,
528  hightCCMIORT,
529  startAngleCCMIORT,
530  spanningAngleCCMIORT);
531 
532  G4LogicalVolume* logCCMIORT = new G4LogicalVolume(solidCCMIORT,
533  CCMIORTMaterialIORT, "CCMIORT", 0, 0, 0);
534 
535  physiCCMIORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionCCMIORT),0.,0.)),
536  "CCMIORT", logCCMIORT, physicalTreatmentRoom, false, 0);
537 
538  logCCMIORT -> SetVisAttributes(green);
539 
540 
541  // ------------------------------------------------//
542  // Second Monitor Chamber Lamina Al 2 of 2 //
543  // ------------------------------------------------//
544 
545  const G4double outRadiusCM2_2_2IORT = 20. *mm;
546  const G4double innRadiusCM2_2_2IORT = 0. *mm;
547  const G4double hightCM2_2_2IORT = 0.025 *mm;
548  const G4double startAngleCM2_2_2IORT = 0.*deg;
549  const G4double spanningAngleCM2_2_2IORT = 360.*deg;
550  const G4double XPositionCM2_2_2IORT = -841. *mm;
551 
552  solidCM2_2_2IORT = new G4Tubs("CM2_2_2IORT", innRadiusCM2_2_2IORT,
553  outRadiusCM2_2_2IORT,
554  hightCM2_2_2IORT,
555  startAngleCM2_2_2IORT,
556  spanningAngleCM2_2_2IORT);
557 
558  G4LogicalVolume* logCM2_2_2IORT = new G4LogicalVolume(solidCM2_2_2IORT,
559  CM2_2_2IORTMaterialIORT, "CM2_2_2IORT", 0, 0, 0);
560 
561  physiCM2_2_2IORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionCM2_2_2IORT),0.,0.)),
562  "CM2_2_2ORT", logCM2_2_2IORT, physicalTreatmentRoom, false, 0);
563 
564  logCM2_2_2IORT -> SetVisAttributes(green);
565 
566 
567 // ------------------------------------------------//
568  // Second Monitor Chamber Lamina Al 1 of 2 //
569  // ------------------------------------------------//
570 
571  const G4double outRadiusCM2_1_2IORT = 20. *mm;
572  const G4double innRadiusCM2_1_2IORT = 0. *mm;
573  const G4double hightCM2_1_2IORT = 0.025 *mm;
574  const G4double startAngleCM2_1_2IORT = 0.*deg;
575  const G4double spanningAngleCM2_1_2IORT = 360.*deg;
576  const G4double XPositionCM2_1_2IORT = -839. *mm;
577 
578  solidCM2_1_2IORT = new G4Tubs("CM2_1_2IORT", innRadiusCM2_1_2IORT,
579  outRadiusCM2_1_2IORT,
580  hightCM2_1_2IORT,
581  startAngleCM2_1_2IORT,
582  spanningAngleCM2_1_2IORT);
583 
584  G4LogicalVolume* logCM2_1_2IORT = new G4LogicalVolume(solidCM2_1_2IORT,
585  CM2_1_2IORTMaterialIORT, "CM2_1_2IORT", 0, 0, 0);
586 
587  physiCM2_1_2IORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionCM2_1_2IORT),0.,0.)),
588  "CM2_1_2ORT", logCM2_1_2IORT, physicalTreatmentRoom, false, 0);
589 
590  logCM2_1_2IORT -> SetVisAttributes(yellow);
591 
592  // ------------------------------------------------//
593  // First Monitor Chamber Lamina Al 2 of 2 //
594  // ------------------------------------------------//
595 
596  const G4double outRadiusCM1_2_2IORT = 20. *mm;
597  const G4double innRadiusCM1_2_2IORT = 0. *mm;
598  const G4double hightCM1_2_2IORT = 0.025 *mm;
599  const G4double startAngleCM1_2_2IORT = 0.*deg;
600  const G4double spanningAngleCM1_2_2IORT = 360.*deg;
601  const G4double XPositionCM1_2_2IORT = -837. *mm;
602 
603  solidCM1_2_2IORT = new G4Tubs("CM1_2_2IORT", innRadiusCM1_2_2IORT,
604  outRadiusCM1_2_2IORT,
605  hightCM1_2_2IORT,
606  startAngleCM1_2_2IORT,
607  spanningAngleCM1_2_2IORT);
608 
609  G4LogicalVolume* logCM1_2_2IORT = new G4LogicalVolume(solidCM1_2_2IORT,
610  CM1_2_2IORTMaterialIORT, "CM1_2_2IORT", 0, 0, 0);
611 
612  physiCM1_2_2IORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionCM1_2_2IORT),0.,0.)),
613  "CM1_2_2ORT", logCM1_2_2IORT, physicalTreatmentRoom, false, 0);
614 
615  logCM1_2_2IORT -> SetVisAttributes(yellow);
616 
617  // ------------------------------------------------//
618  // First Monitor Chamber Lamina Al 1 of 2 //
619  // ------------------------------------------------//
620 
621  const G4double outRadiusCM1_1_2IORT = 20. *mm;
622  const G4double innRadiusCM1_1_2IORT = 0. *mm;
623  const G4double hightCM1_1_2IORT = 0.025 *mm;
624  const G4double startAngleCM1_1_2IORT = 0.*deg;
625  const G4double spanningAngleCM1_1_2IORT = 360.*deg;
626  const G4double XPositionCM1_1_2IORT = -835. *mm;
627 
628  solidCM1_1_2IORT = new G4Tubs("CM1_1_2IORT", innRadiusCM1_1_2IORT,
629  outRadiusCM1_1_2IORT,
630  hightCM1_1_2IORT,
631  startAngleCM1_1_2IORT,
632  spanningAngleCM1_1_2IORT);
633 
634  G4LogicalVolume* logCM1_1_2IORT = new G4LogicalVolume(solidCM1_1_2IORT,
635  CM1_1_2IORTMaterialIORT, "CM1_1_2IORT", 0, 0, 0);
636 
637  physiCM1_1_2IORT = new G4PVPlacement(G4Transform3D(rm3, G4ThreeVector((XPositionCM1_1_2IORT),0.,0.)),
638  "CM1_1_2ORT", logCM1_1_2IORT, physicalTreatmentRoom, false, 0);
639 
640  logCM1_1_2IORT -> SetVisAttributes(yellow);
641 }
G4VPhysicalVolume * physiPFS2IORT
G4VPhysicalVolume * physiCM2_1_2IORT
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4VPhysicalVolume * physiCM1_1_2IORT
G4VPhysicalVolume * physiCM2_2_2IORT
G4VPhysicalVolume * physiPFS1IORT
G4VPhysicalVolume * physiCM1_2_2IORT
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
G4Material * CM1_2_2IORTMaterialIORT
G4VPhysicalVolume * physiCCMIORT
G4Material * CM2_1_2IORTMaterialIORT
G4VPhysicalVolume * physiPFS3IORT
G4Material * CM1_1_2IORTMaterialIORT
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
G4Material * CM2_2_2IORTMaterialIORT
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineTitaniumWindows()

void Collimator60BeamLine::IortBeamLineTitaniumWindows ( )

Definition at line 390 of file Collimator60BeamLine.cc.

391 {
392 // ---------------------------------------------------------------//
393  // Titanium Window //
394  // ---------------------------------------------------------------//
395 
396  G4double phi2 = 90. *deg;
397 
398 
399  G4RotationMatrix rm2;
400  rm2.rotateY(phi2);
401 
402  const G4double outRadiusFTIORT = 44.75 *mm;
403  const G4double innRadiusFTIORT = 8.5 *mm;
404  const G4double hightFTIORT = 0.006 *mm;
405  const G4double startAngleFTIORT = 0.*deg;
406  const G4double spanningAngleFTIORT = 360.*deg;
407  const G4double XPositionFTIORT = -861.791 *mm;
408 
409  solidFTIORT = new G4Tubs("FTIORT", innRadiusFTIORT,
410  outRadiusFTIORT,
411  hightFTIORT,
412  startAngleFTIORT,
413  spanningAngleFTIORT);
414 
415  G4LogicalVolume* logFTIORT = new G4LogicalVolume(solidFTIORT,
416  FTIORTMaterialIORT, "FTIORT", 0, 0, 0);
417 
418  physiFTIORT = new G4PVPlacement(G4Transform3D(rm2, G4ThreeVector((XPositionFTIORT),0.,0.)),
419  "FTIORT", logFTIORT, physicalTreatmentRoom, false, 0);
420 
421  logFTIORT -> SetVisAttributes(yellow);
422 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiFTIORT
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineVacuumSource()

void Collimator60BeamLine::IortBeamLineVacuumSource ( )

Definition at line 354 of file Collimator60BeamLine.cc.

355 {
356  // ---------------------------------------------------------------//
357  // Vacuum Source //
358  // ---------------------------------------------------------------//
359 
360 
361  G4double phi1 = 90. *deg;
362 
363 
364  G4RotationMatrix rm1;
365  rm1.rotateY(phi1);
366 
367  const G4double outRadiusVSIORT = 44.75 *mm;
368  const G4double innRadiusVSIORT = 0.*mm;
369  const G4double hightVSIORT = 1. *mm;
370  const G4double startAngleVSIORT = 0.*deg;
371  const G4double spanningAngleVSIORT = 360.*deg;
372  const G4double XPositionVSIORT = -862.797 *mm;
373 
374  solidVSIORT = new G4Tubs("VSIORT", innRadiusVSIORT,
375  outRadiusVSIORT,
376  hightVSIORT,
377  startAngleVSIORT,
378  spanningAngleVSIORT);
379 
380  G4LogicalVolume* logVSIORT = new G4LogicalVolume(solidVSIORT,
381  VSIORTMaterialIORT, "VSIORT", 0, 0, 0);
382 
383  physiVSIORT = new G4PVPlacement(G4Transform3D(rm1, G4ThreeVector((XPositionVSIORT),0.,0.)),
384  "VSIORT", logVSIORT, physicalTreatmentRoom, false, 0);
385 
386  logVSIORT -> SetVisAttributes(green);
387 
388 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiVSIORT
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
G4VPhysicalVolume * physicalTreatmentRoom
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetDefaultDimensions()

void Collimator60BeamLine::SetDefaultDimensions ( )
private

Definition at line 165 of file Collimator60BeamLine.cc.

166 {
167 
168  // Set of coulors that can be used
169  white = new G4VisAttributes( G4Colour());
170  white -> SetVisibility(true);
171  //white -> SetForceSolid(true);
172 
173  blue = new G4VisAttributes(G4Colour(0. ,0. ,1.));
174  blue -> SetVisibility(true);
175  //blue -> SetForceSolid(true);
176 
177  gray = new G4VisAttributes( G4Colour(0.5, 0.5, 0.5 ));
178  gray-> SetVisibility(true);
179  //gray-> SetForceSolid(true);
180 
181  red = new G4VisAttributes(G4Colour(1. ,0. ,0.));
182  red-> SetVisibility(true);
183  //red-> SetForceSolid(true);
184 
185  yellow = new G4VisAttributes(G4Colour(1., 1., 0. ));
186  yellow-> SetVisibility(true);
187  //yellow-> SetForceSolid(true);
188 
189  green = new G4VisAttributes( G4Colour(25/255. , 255/255. , 25/255. ));
190  green -> SetVisibility(true);
191  //green -> SetForceSolid(true);
192 
193  darkGreen = new G4VisAttributes( G4Colour(0/255. , 100/255. , 0/255. ));
194  darkGreen -> SetVisibility(true);
195  //darkGreen -> SetForceSolid(true);
196 
197  darkOrange3 = new G4VisAttributes( G4Colour(205/255. , 102/255. , 000/255. ));
198  darkOrange3 -> SetVisibility(true);
199  //darkOrange3 -> SetForceSolid(true);
200 
201  skyBlue = new G4VisAttributes( G4Colour(135/255. , 206/255. , 235/255. ));
202  skyBlue -> SetVisibility(true);
203  //skyBlue -> SetForceSolid(true);
204 
205 
206 
207  // Geometry FINAL COLLIMATOR DEFAULTS
208 
209  G4double defaultOuterRadiusFinalCollimatorIORT = 35. *mm;
210  OuterRadiusFinalCollimatorIORT = defaultOuterRadiusFinalCollimatorIORT;
211 
212  G4double defaultinnerRadiusFinalCollimatorIORT = 30. *mm;
213  innerRadiusFinalCollimatorIORT = defaultinnerRadiusFinalCollimatorIORT;
214 
215  // DEFAULT DEFINITION OF THE MATERIALS
216  // All elements and compound definition follows the NIST database
217 
218  // ELEMENTS
219  G4bool isotopes = false;
220  G4Material* aluminumNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_Al", isotopes);
221  //G4Material* tantalumNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_Ta", isotopes);
222  //G4Material* copperNistAsMaterial = G4NistManager::Instance()->FindOrBuildMaterial("G4_Cu", isotopes);
225 
226  // COMPOUND
227  G4Material* airNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_AIR", isotopes);
228  //G4Material* kaptonNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_KAPTON", isotopes);
229  G4Material* galacticNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_Galactic", isotopes);
230  G4Material* PMMANist = G4NistManager::Instance()->FindOrBuildMaterial("G4_PLEXIGLASS", isotopes);
231  //G4Material* mylarNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_MYLAR", isotopes);
232  G4Material* titanioNist = G4NistManager::Instance()->FindOrBuildMaterial("G4_Ti", isotopes);
233 
234 
235  G4double d; // Density
236  G4int nComponents;// Number of components
237  G4double fractionmass; // Fraction in mass of an element in a material
238 
239  d = 8.40*g/cm3; // brass
240  nComponents = 2;
241  G4Material* brass = new G4Material("Brass", d, nComponents);
242  brass -> AddElement(zincNist, fractionmass = 30 *perCent);
243  brass -> AddElement(copperNist, fractionmass = 70 *perCent);
244 
245 
246  // MATERIAL ASSIGNMENT
247 
248 
249  // Material of the FINAL COLLIMATOR IORT
250  finalCollimatorMaterialIORT = PMMANist;
251 
252  // Junction 1 FINAL COLLIMATOR IORT
253  Giunz1FinalCollMaterialIORT = PMMANist;
254 
255  // Junction 2 FINAL COLLIMATOR IORT
256  Giunz2FinalCollMaterialIORT = PMMANist;
257 
258  // Junction 3 FINAL COLLIMATOR IORT
259  Giunz3FinalCollMaterialIORT = PMMANist;
260 
261  // Junction 3 FINAL COLLIMATOR Int IORT
263 
264  // Junction 4 FINAL COLLIMATOR IORT
265  Giunz4FinalCollMaterialIORT = PMMANist;
266 
267  // Junction 5 FINAL COLLIMATOR IORT
268  Giunz5FinalCollMaterialIORT = PMMANist;
269 
270  // Block 1 Diameter 30 mm
271  Blocco1IORTMaterialIORT = PMMANist;
272 
273  // Block 2 Diameter 30 mm
274  Blocco2IORTMaterialIORT = PMMANist;
275 
276  // Block 3 Diameter 30 mm
277  Blocco3IORTMaterialIORT = PMMANist;
278 
279  // Block Diameter 20 mm
280  Blocco20mmIORTMaterialIORT = PMMANist;
281 
282  // First Monitor Chamber Lamina Al 1 of 2
283  CM1_1_2IORTMaterialIORT = aluminumNist;
284 
285  // First Monitor Chamber Lamina Al 2 of 2
286  CM1_2_2IORTMaterialIORT = aluminumNist;
287 
288  // Second Monitor Chamber Lamina Al 1 of 2
289  CM2_1_2IORTMaterialIORT = aluminumNist;
290 
291  // Second Monitor Chamber Lamina Al 2 of 2
292  CM2_2_2IORTMaterialIORT = aluminumNist;
293 
294  // Monitor Chamber Cylinder
295  CCMIORTMaterialIORT = PMMANist;
296 
297  // Superior Final Part Monitor Chambers
298  PFS1IORTMaterialIORT = PMMANist;
299 
300  // Superior Final Part Monitor Chambers
301  PFS2IORTMaterialIORT = PMMANist;
302 
303  // Superior Final Part Monitor Chambers
304  PFS3IORTMaterialIORT = PMMANist;
305 
306  // Superior Final Part Monitor Chambers Material
307  FTIORTMaterialIORT = titanioNist;
308 
309  // Vacuum Source
310  VSIORTMaterialIORT = galacticNist;
311 
312 }
G4Material * Blocco20mmIORTMaterialIORT
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
Float_t d
G4Material * Giunz2FinalCollMaterialIORT
G4Material * Giunz5FinalCollMaterialIORT
G4VisAttributes * darkGreen
G4int nComponents
Definition: TRTMaterials.hh:41
G4Material * Giunz4FinalCollMaterialIORT
G4Material * Giunz1FinalCollMaterialIORT
G4Material * Blocco1IORTMaterialIORT
int G4int
Definition: G4Types.hh:78
static G4NistManager * Instance()
G4Material * Blocco3IORTMaterialIORT
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4Material * Giunz3FinalCollMaterialIntIORT
bool G4bool
Definition: G4Types.hh:79
G4Material * finalCollimatorMaterialIORT
G4Material * Blocco2IORTMaterialIORT
static const double cm3
Definition: G4SIunits.hh:120
static const double perCent
Definition: G4SIunits.hh:329
G4VisAttributes * darkOrange3
G4Material * CM1_2_2IORTMaterialIORT
G4Material * CM2_1_2IORTMaterialIORT
G4Material * Giunz3FinalCollMaterialIORT
G4Material * CM1_1_2IORTMaterialIORT
double G4double
Definition: G4Types.hh:76
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
Air AddElement(elN,.7)
static const double mm
Definition: G4SIunits.hh:114
G4Material * CM2_2_2IORTMaterialIORT
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetInnerRadiusFinalCollimatorIORT()

void Collimator60BeamLine::SetInnerRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 964 of file Collimator60BeamLine.cc.

965 {
966  solidFinalCollimatorIORT -> SetInnerRadius(value);
968  G4cout<<"Inner Radius of the final collimator IORT is (mm):"
969  << solidFinalCollimatorIORT -> GetInnerRadius()/mm
970  << G4endl;
971 }
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:

◆ SetOuterRadiusFinalCollimatorIORT()

void Collimator60BeamLine::SetOuterRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 975 of file Collimator60BeamLine.cc.

976 {
977  solidFinalCollimatorIORT -> SetOuterRadius(value);
979  G4cout<<"Outer Radius of the final collimator IORT is (mm):"
980  << solidFinalCollimatorIORT -> GetOuterRadius()/mm
981  << G4endl;
982 }
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

◆ Blocco1IORTMaterialIORT

G4Material* Collimator60BeamLine::Blocco1IORTMaterialIORT
private

Definition at line 150 of file Collimator60BeamLine.hh.

◆ Blocco20mmIORTMaterialIORT

G4Material* Collimator60BeamLine::Blocco20mmIORTMaterialIORT
private

Definition at line 165 of file Collimator60BeamLine.hh.

◆ Blocco2IORTMaterialIORT

G4Material* Collimator60BeamLine::Blocco2IORTMaterialIORT
private

Definition at line 155 of file Collimator60BeamLine.hh.

◆ Blocco3IORTMaterialIORT

G4Material* Collimator60BeamLine::Blocco3IORTMaterialIORT
private

Definition at line 160 of file Collimator60BeamLine.hh.

◆ blue

G4VisAttributes* Collimator60BeamLine::blue
private

Definition at line 101 of file Collimator60BeamLine.hh.

◆ CCMIORTMaterialIORT

G4Material* Collimator60BeamLine::CCMIORTMaterialIORT
private

Definition at line 190 of file Collimator60BeamLine.hh.

◆ CM1_1_2IORTMaterialIORT

G4Material* Collimator60BeamLine::CM1_1_2IORTMaterialIORT
private

Definition at line 170 of file Collimator60BeamLine.hh.

◆ CM1_2_2IORTMaterialIORT

G4Material* Collimator60BeamLine::CM1_2_2IORTMaterialIORT
private

Definition at line 175 of file Collimator60BeamLine.hh.

◆ CM2_1_2IORTMaterialIORT

G4Material* Collimator60BeamLine::CM2_1_2IORTMaterialIORT
private

Definition at line 180 of file Collimator60BeamLine.hh.

◆ CM2_2_2IORTMaterialIORT

G4Material* Collimator60BeamLine::CM2_2_2IORTMaterialIORT
private

Definition at line 185 of file Collimator60BeamLine.hh.

◆ collimatorMessenger

Collimator60BeamLineMessenger* Collimator60BeamLine::collimatorMessenger
private

Definition at line 97 of file Collimator60BeamLine.hh.

◆ darkGreen

G4VisAttributes* Collimator60BeamLine::darkGreen
private

Definition at line 107 of file Collimator60BeamLine.hh.

◆ darkOrange3

G4VisAttributes* Collimator60BeamLine::darkOrange3
private

Definition at line 108 of file Collimator60BeamLine.hh.

◆ finalCollimatorMaterialIORT

G4Material* Collimator60BeamLine::finalCollimatorMaterialIORT
private

Definition at line 115 of file Collimator60BeamLine.hh.

◆ FTIORTMaterialIORT

G4Material* Collimator60BeamLine::FTIORTMaterialIORT
private

Definition at line 210 of file Collimator60BeamLine.hh.

◆ Giunz1FinalCollMaterialIORT

G4Material* Collimator60BeamLine::Giunz1FinalCollMaterialIORT
private

Definition at line 120 of file Collimator60BeamLine.hh.

◆ Giunz2FinalCollMaterialIORT

G4Material* Collimator60BeamLine::Giunz2FinalCollMaterialIORT
private

Definition at line 125 of file Collimator60BeamLine.hh.

◆ Giunz3FinalCollMaterialIntIORT

G4Material* Collimator60BeamLine::Giunz3FinalCollMaterialIntIORT
private

Definition at line 134 of file Collimator60BeamLine.hh.

◆ Giunz3FinalCollMaterialIORT

G4Material* Collimator60BeamLine::Giunz3FinalCollMaterialIORT
private

Definition at line 130 of file Collimator60BeamLine.hh.

◆ Giunz4FinalCollMaterialIORT

G4Material* Collimator60BeamLine::Giunz4FinalCollMaterialIORT
private

Definition at line 140 of file Collimator60BeamLine.hh.

◆ Giunz5FinalCollMaterialIORT

G4Material* Collimator60BeamLine::Giunz5FinalCollMaterialIORT
private

Definition at line 145 of file Collimator60BeamLine.hh.

◆ gray

G4VisAttributes* Collimator60BeamLine::gray
private

Definition at line 102 of file Collimator60BeamLine.hh.

◆ green

G4VisAttributes* Collimator60BeamLine::green
private

Definition at line 106 of file Collimator60BeamLine.hh.

◆ innerRadiusFinalCollimatorIORT

G4double Collimator60BeamLine::innerRadiusFinalCollimatorIORT
private

Definition at line 112 of file Collimator60BeamLine.hh.

◆ iortDetectorConstruction

IORTDetectorConstruction* Collimator60BeamLine::iortDetectorConstruction
private

Definition at line 99 of file Collimator60BeamLine.hh.

◆ OuterRadiusFinalCollimatorIORT

G4double Collimator60BeamLine::OuterRadiusFinalCollimatorIORT
private

Definition at line 112 of file Collimator60BeamLine.hh.

◆ PFS1IORTMaterialIORT

G4Material* Collimator60BeamLine::PFS1IORTMaterialIORT
private

Definition at line 195 of file Collimator60BeamLine.hh.

◆ PFS2IORTMaterialIORT

G4Material* Collimator60BeamLine::PFS2IORTMaterialIORT
private

Definition at line 200 of file Collimator60BeamLine.hh.

◆ PFS3IORTMaterialIORT

G4Material* Collimator60BeamLine::PFS3IORTMaterialIORT
private

Definition at line 205 of file Collimator60BeamLine.hh.

◆ physiBlocco1IORT

G4VPhysicalVolume* Collimator60BeamLine::physiBlocco1IORT
private

Definition at line 149 of file Collimator60BeamLine.hh.

◆ physiBlocco20mmIORT

G4VPhysicalVolume* Collimator60BeamLine::physiBlocco20mmIORT
private

Definition at line 164 of file Collimator60BeamLine.hh.

◆ physiBlocco2IORT

G4VPhysicalVolume* Collimator60BeamLine::physiBlocco2IORT
private

Definition at line 154 of file Collimator60BeamLine.hh.

◆ physiBlocco3IORT

G4VPhysicalVolume* Collimator60BeamLine::physiBlocco3IORT
private

Definition at line 159 of file Collimator60BeamLine.hh.

◆ physicalTreatmentRoom

G4VPhysicalVolume* Collimator60BeamLine::physicalTreatmentRoom
private

Definition at line 98 of file Collimator60BeamLine.hh.

◆ physiCCMIORT

G4VPhysicalVolume* Collimator60BeamLine::physiCCMIORT
private

Definition at line 189 of file Collimator60BeamLine.hh.

◆ physiCM1_1_2IORT

G4VPhysicalVolume* Collimator60BeamLine::physiCM1_1_2IORT
private

Definition at line 169 of file Collimator60BeamLine.hh.

◆ physiCM1_2_2IORT

G4VPhysicalVolume* Collimator60BeamLine::physiCM1_2_2IORT
private

Definition at line 174 of file Collimator60BeamLine.hh.

◆ physiCM2_1_2IORT

G4VPhysicalVolume* Collimator60BeamLine::physiCM2_1_2IORT
private

Definition at line 179 of file Collimator60BeamLine.hh.

◆ physiCM2_2_2IORT

G4VPhysicalVolume* Collimator60BeamLine::physiCM2_2_2IORT
private

Definition at line 184 of file Collimator60BeamLine.hh.

◆ physiFinalCollimatorIORT

G4VPhysicalVolume* Collimator60BeamLine::physiFinalCollimatorIORT
private

Definition at line 114 of file Collimator60BeamLine.hh.

◆ physiFTIORT

G4VPhysicalVolume* Collimator60BeamLine::physiFTIORT
private

Definition at line 209 of file Collimator60BeamLine.hh.

◆ physiGiunz1FinalCollIORT

G4VPhysicalVolume* Collimator60BeamLine::physiGiunz1FinalCollIORT
private

Definition at line 119 of file Collimator60BeamLine.hh.

◆ physiGiunz2FinalCollIORT

G4VPhysicalVolume* Collimator60BeamLine::physiGiunz2FinalCollIORT
private

Definition at line 124 of file Collimator60BeamLine.hh.

◆ physiGiunz3FinalCollIntIORT

G4VPhysicalVolume* Collimator60BeamLine::physiGiunz3FinalCollIntIORT
private

Definition at line 135 of file Collimator60BeamLine.hh.

◆ physiGiunz3FinalCollIORT

G4VPhysicalVolume* Collimator60BeamLine::physiGiunz3FinalCollIORT
private

Definition at line 129 of file Collimator60BeamLine.hh.

◆ physiGiunz4FinalCollIORT

G4VPhysicalVolume* Collimator60BeamLine::physiGiunz4FinalCollIORT
private

Definition at line 139 of file Collimator60BeamLine.hh.

◆ physiGiunz5FinalCollIORT

G4VPhysicalVolume* Collimator60BeamLine::physiGiunz5FinalCollIORT
private

Definition at line 144 of file Collimator60BeamLine.hh.

◆ physiPFS1IORT

G4VPhysicalVolume* Collimator60BeamLine::physiPFS1IORT
private

Definition at line 194 of file Collimator60BeamLine.hh.

◆ physiPFS2IORT

G4VPhysicalVolume* Collimator60BeamLine::physiPFS2IORT
private

Definition at line 199 of file Collimator60BeamLine.hh.

◆ physiPFS3IORT

G4VPhysicalVolume* Collimator60BeamLine::physiPFS3IORT
private

Definition at line 204 of file Collimator60BeamLine.hh.

◆ physiVSIORT

G4VPhysicalVolume* Collimator60BeamLine::physiVSIORT
private

Definition at line 214 of file Collimator60BeamLine.hh.

◆ red

G4VisAttributes* Collimator60BeamLine::red
private

Definition at line 104 of file Collimator60BeamLine.hh.

◆ skyBlue

G4VisAttributes* Collimator60BeamLine::skyBlue
private

Definition at line 109 of file Collimator60BeamLine.hh.

◆ solidBlocco1IORT

G4Tubs* Collimator60BeamLine::solidBlocco1IORT
private

Definition at line 148 of file Collimator60BeamLine.hh.

◆ solidBlocco20mmIORT

G4Tubs* Collimator60BeamLine::solidBlocco20mmIORT
private

Definition at line 163 of file Collimator60BeamLine.hh.

◆ solidBlocco2IORT

G4Tubs* Collimator60BeamLine::solidBlocco2IORT
private

Definition at line 153 of file Collimator60BeamLine.hh.

◆ solidBlocco3IORT

G4Tubs* Collimator60BeamLine::solidBlocco3IORT
private

Definition at line 158 of file Collimator60BeamLine.hh.

◆ solidCCMIORT

G4Tubs* Collimator60BeamLine::solidCCMIORT
private

Definition at line 188 of file Collimator60BeamLine.hh.

◆ solidCM1_1_2IORT

G4Tubs* Collimator60BeamLine::solidCM1_1_2IORT
private

Definition at line 168 of file Collimator60BeamLine.hh.

◆ solidCM1_2_2IORT

G4Tubs* Collimator60BeamLine::solidCM1_2_2IORT
private

Definition at line 173 of file Collimator60BeamLine.hh.

◆ solidCM2_1_2IORT

G4Tubs* Collimator60BeamLine::solidCM2_1_2IORT
private

Definition at line 178 of file Collimator60BeamLine.hh.

◆ solidCM2_2_2IORT

G4Tubs* Collimator60BeamLine::solidCM2_2_2IORT
private

Definition at line 183 of file Collimator60BeamLine.hh.

◆ solidFinalCollimatorIORT

G4Tubs* Collimator60BeamLine::solidFinalCollimatorIORT
private

Definition at line 113 of file Collimator60BeamLine.hh.

◆ solidFTIORT

G4Tubs* Collimator60BeamLine::solidFTIORT
private

Definition at line 208 of file Collimator60BeamLine.hh.

◆ solidGiunz1FinalCollIORT

G4Tubs* Collimator60BeamLine::solidGiunz1FinalCollIORT
private

Definition at line 118 of file Collimator60BeamLine.hh.

◆ solidGiunz2FinalCollIORT

G4Tubs* Collimator60BeamLine::solidGiunz2FinalCollIORT
private

Definition at line 123 of file Collimator60BeamLine.hh.

◆ solidGiunz3FinalCollIntIORT

G4Cons* Collimator60BeamLine::solidGiunz3FinalCollIntIORT
private

Definition at line 133 of file Collimator60BeamLine.hh.

◆ solidGiunz3FinalCollIORT

G4Tubs* Collimator60BeamLine::solidGiunz3FinalCollIORT
private

Definition at line 128 of file Collimator60BeamLine.hh.

◆ solidGiunz4FinalCollIORT

G4Tubs* Collimator60BeamLine::solidGiunz4FinalCollIORT
private

Definition at line 138 of file Collimator60BeamLine.hh.

◆ solidGiunz5FinalCollIORT

G4Tubs* Collimator60BeamLine::solidGiunz5FinalCollIORT
private

Definition at line 143 of file Collimator60BeamLine.hh.

◆ solidPFS1IORT

G4Tubs* Collimator60BeamLine::solidPFS1IORT
private

Definition at line 193 of file Collimator60BeamLine.hh.

◆ solidPFS2IORT

G4Tubs* Collimator60BeamLine::solidPFS2IORT
private

Definition at line 198 of file Collimator60BeamLine.hh.

◆ solidPFS3IORT

G4Tubs* Collimator60BeamLine::solidPFS3IORT
private

Definition at line 203 of file Collimator60BeamLine.hh.

◆ solidVSIORT

G4Tubs* Collimator60BeamLine::solidVSIORT
private

Definition at line 213 of file Collimator60BeamLine.hh.

◆ VSIORTMaterialIORT

G4Material* Collimator60BeamLine::VSIORTMaterialIORT
private

Definition at line 215 of file Collimator60BeamLine.hh.

◆ white

G4VisAttributes* Collimator60BeamLine::white
private

Definition at line 103 of file Collimator60BeamLine.hh.

◆ yellow

G4VisAttributes* Collimator60BeamLine::yellow
private

Definition at line 105 of file Collimator60BeamLine.hh.


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