Geant4  10.02.p03
Collimator80BeamLine Class Reference

#include <Collimator80BeamLine.hh>

Inheritance diagram for Collimator80BeamLine:
Collaboration diagram for Collimator80BeamLine:

Public Member Functions

 Collimator80BeamLine ()
 
 ~Collimator80BeamLine ()
 
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 ConstructCollimator80BeamLine ()
 

Private Attributes

Collimator80BeamLineMessengercollimatorMessenger
 
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 Collimator80BeamLine.hh.

Constructor & Destructor Documentation

◆ Collimator80BeamLine()

Collimator80BeamLine::Collimator80BeamLine ( )

Definition at line 59 of file Collimator80BeamLine.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 collimator80BeamLine geometry
128 
129 }
G4VPhysicalVolume * physiCCMIORT
G4VPhysicalVolume * physiFTIORT
G4VPhysicalVolume * physiBlocco1IORT
G4VPhysicalVolume * physiBlocco20mmIORT
G4VPhysicalVolume * physiBlocco3IORT
G4VPhysicalVolume * physiGiunz4FinalCollIORT
G4VPhysicalVolume * physiGiunz5FinalCollIORT
G4VPhysicalVolume * physiPFS1IORT
G4VPhysicalVolume * physiGiunz2FinalCollIORT
G4VPhysicalVolume * physiBlocco2IORT
G4VPhysicalVolume * physiGiunz3FinalCollIORT
G4VPhysicalVolume * physicalTreatmentRoom
G4VPhysicalVolume * physiCM1_1_2IORT
IORTDetectorConstruction * iortDetectorConstruction
Collimator80BeamLineMessenger * collimatorMessenger
G4VPhysicalVolume * physiGiunz3FinalCollIntIORT
G4VPhysicalVolume * physiCM1_2_2IORT
G4VPhysicalVolume * physiCM2_1_2IORT
G4VPhysicalVolume * physiFinalCollimatorIORT
G4VPhysicalVolume * physiPFS3IORT
G4VPhysicalVolume * physiPFS2IORT
G4VPhysicalVolume * physiCM2_2_2IORT
G4VPhysicalVolume * physiGiunz1FinalCollIORT

◆ ~Collimator80BeamLine()

Collimator80BeamLine::~Collimator80BeamLine ( )

Definition at line 131 of file Collimator80BeamLine.cc.

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

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * Collimator80BeamLine::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 140 of file Collimator80BeamLine.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 }
G4VPhysicalVolume * physicalTreatmentRoom
IORTDetectorConstruction * iortDetectorConstruction
Here is the call graph for this function:

◆ ConstructCollimator80BeamLine()

void Collimator80BeamLine::ConstructCollimator80BeamLine ( )
private

Definition at line 315 of file Collimator80BeamLine.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()
G4VPhysicalVolume * physicalTreatmentRoom
bool G4bool
Definition: G4Types.hh:79
static const G4VisAttributes Invisible
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineBlocks()

void Collimator80BeamLine::IortBeamLineBlocks ( )

Definition at line 643 of file Collimator80BeamLine.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  solidBlocco3IORT = new G4Tubs("Blocco3IORT", innRadiusBlocco3IORT,
696  outRadiusBlocco3IORT,
697  hightBlocco3IORT,
698  startAngleBlocco3IORT,
699  spanningAngleBlocco3IORT);
700 
701  G4LogicalVolume* logBlocco3IORT = new G4LogicalVolume(solidBlocco3IORT,
702  Blocco3IORTMaterialIORT, "Blocco3IORT", 0, 0, 0);
703 
704  physiBlocco3IORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco3IORT),0.,0.)),
705  "Blocco3ORT", logBlocco3IORT, physicalTreatmentRoom, false, 0);
706 
707  logBlocco3IORT -> SetVisAttributes(yellow);
708 
709  // -----------------------//
710  // Block 2 //
711  // -----------------------//
712 
713  const G4double outRadiusBlocco2IORT = 41.5 *mm;
714  const G4double innRadiusBlocco2IORT = 15. *mm;
715  const G4double hightBlocco2IORT = 8. *mm;
716  const G4double startAngleBlocco2IORT = 0.*deg;
717  const G4double spanningAngleBlocco2IORT = 360.*deg;
718  const G4double XPositionBlocco2IORT = -812. *mm;
719 
720  solidBlocco2IORT = new G4Tubs("Blocco2IORT", innRadiusBlocco2IORT,
721  outRadiusBlocco2IORT,
722  hightBlocco2IORT,
723  startAngleBlocco2IORT,
724  spanningAngleBlocco2IORT);
725 
726  G4LogicalVolume* logBlocco2IORT = new G4LogicalVolume(solidBlocco2IORT,
727  Blocco2IORTMaterialIORT, "Blocco2IORT", 0, 0, 0);
728 
729  physiBlocco2IORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco2IORT),0.,0.)),
730  "Blocco2IORT", logBlocco2IORT, physicalTreatmentRoom, false, 0);
731 
732  logBlocco2IORT -> SetVisAttributes(red);
733 
734  // ----------------------- //
735  // Block 1 //
736  // ----------------------- //
737 
738  const G4double outRadiusBlocco1IORT = 52.0 *mm;
739  const G4double innRadiusBlocco1IORT = 15. *mm;
740  const G4double hightBlocco1IORT = 8.5 *mm;
741  const G4double startAngleBlocco1IORT = 0.*deg;
742  const G4double spanningAngleBlocco1IORT = 360.*deg;
743  const G4double XPositionBlocco1IORT = -795.5*mm;
744 
745  solidBlocco1IORT = new G4Tubs("Blocco1IORT", innRadiusBlocco1IORT,
746  outRadiusBlocco1IORT,
747  hightBlocco1IORT,
748  startAngleBlocco1IORT,
749  spanningAngleBlocco1IORT);
750 
751  G4LogicalVolume* logBlocco1IORT = new G4LogicalVolume(solidBlocco1IORT,
752  Blocco1IORTMaterialIORT, "Blocco1IORT", 0, 0, 0);
753 
754  physiBlocco1IORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco1IORT),0.,0.)),
755  "Blocco1IORT", logBlocco1IORT, physicalTreatmentRoom, false, 0);
756 
757  logBlocco1IORT -> SetVisAttributes(white);
758 }
G4Material * Blocco1IORTMaterialIORT
G4VPhysicalVolume * physiBlocco1IORT
CLHEP::Hep3Vector G4ThreeVector
G4VPhysicalVolume * physiBlocco20mmIORT
G4VPhysicalVolume * physiBlocco3IORT
Definition: G4Tubs.hh:85
G4VPhysicalVolume * physiBlocco2IORT
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4VPhysicalVolume * physicalTreatmentRoom
G4Material * Blocco2IORTMaterialIORT
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
G4Material * Blocco20mmIORTMaterialIORT
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
G4Material * Blocco3IORTMaterialIORT
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IortBeamLineFinalCollimator()

void Collimator80BeamLine::IortBeamLineFinalCollimator ( )

Definition at line 916 of file Collimator80BeamLine.cc.

917 {
918 // -----------------------//
919  // FINAL COLLIMATOR IORT //
920  //------------------------//
921 
922  // const G4double outRadiusFinalCollimatorIORT = 45. *mm;
923  // const G4double innRadiusFinalCollimatorIORT = 40. *mm;
924  const G4double hightFinalCollimatorIORT = 334. *mm;
925  const G4double startAngleFinalCollimatorIORT = 0.*deg;
926  const G4double spanningAngleFinalCollimatorIORT = 360.*deg;
927  const G4double finalCollimatorXPositionIORT = -389.*mm;
928 
929 
930 
931 
932  G4double phi6 = 90. *deg;
933 
934 
936  rm6.rotateY(phi6);
937 
938 
939  solidFinalCollimatorIORT = new G4Tubs("FinalCollimatorIORT", innerRadiusFinalCollimatorIORT,
941  hightFinalCollimatorIORT,
942  startAngleFinalCollimatorIORT,
943  spanningAngleFinalCollimatorIORT);
944 
945  G4LogicalVolume* logFinalCollimatorIORT = new G4LogicalVolume(solidFinalCollimatorIORT,
946  finalCollimatorMaterialIORT, "FinalCollimatorIORT", 0, 0, 0);
947 
948  physiFinalCollimatorIORT = new G4PVPlacement(G4Transform3D(rm6, G4ThreeVector((finalCollimatorXPositionIORT),0.,0.)),
949  "FinalCollimatorIORT", logFinalCollimatorIORT, physicalTreatmentRoom, false, 0);
950 
951  // logFinalCollimatorIORT -> SetVisAttributes(G4VisAttributes::Invisible);
952  logFinalCollimatorIORT -> SetVisAttributes(red);
953 }
G4Material * finalCollimatorMaterialIORT
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4VPhysicalVolume * physicalTreatmentRoom
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiFinalCollimatorIORT
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:

◆ IortBeamLineJunctions()

void Collimator80BeamLine::IortBeamLineJunctions ( )

Definition at line 760 of file Collimator80BeamLine.cc.

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

◆ IortBeamLineMonitorChambers()

void Collimator80BeamLine::IortBeamLineMonitorChambers ( )

Definition at line 424 of file Collimator80BeamLine.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 }
G4Material * CM2_2_2IORTMaterialIORT
G4VPhysicalVolume * physiCCMIORT
G4Material * CM2_1_2IORTMaterialIORT
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
G4VPhysicalVolume * physiPFS1IORT
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4Material * CM1_1_2IORTMaterialIORT
G4VPhysicalVolume * physicalTreatmentRoom
G4VPhysicalVolume * physiCM1_1_2IORT
static const double deg
Definition: G4SIunits.hh:151
HepGeom::Transform3D G4Transform3D
G4VPhysicalVolume * physiCM1_2_2IORT
G4VPhysicalVolume * physiCM2_1_2IORT
G4VPhysicalVolume * physiPFS3IORT
G4VPhysicalVolume * physiPFS2IORT
G4VPhysicalVolume * physiCM2_2_2IORT
G4Material * CM1_2_2IORTMaterialIORT
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:

◆ IortBeamLineTitaniumWindows()

void Collimator80BeamLine::IortBeamLineTitaniumWindows ( )

Definition at line 389 of file Collimator80BeamLine.cc.

390 {
391 // ---------------------------------------------------------------//
392  // Titanium Window //
393  // ---------------------------------------------------------------//
394 
395  G4double phi2 = 90. *deg;
396 
397 
398  G4RotationMatrix rm2;
399  rm2.rotateY(phi2);
400 
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 }
G4VPhysicalVolume * physiFTIORT
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4VPhysicalVolume * physicalTreatmentRoom
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:

◆ IortBeamLineVacuumSource()

void Collimator80BeamLine::IortBeamLineVacuumSource ( )

Definition at line 354 of file Collimator80BeamLine.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 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
G4VPhysicalVolume * physicalTreatmentRoom
static const double deg
Definition: G4SIunits.hh:151
G4VPhysicalVolume * physiVSIORT
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:

◆ SetDefaultDimensions()

void Collimator80BeamLine::SetDefaultDimensions ( )
private

Definition at line 165 of file Collimator80BeamLine.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 = 45. *mm;
210  OuterRadiusFinalCollimatorIORT = defaultOuterRadiusFinalCollimatorIORT;
211 
212  G4double defaultinnerRadiusFinalCollimatorIORT = 40. *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 * Giunz1FinalCollMaterialIORT
G4Material * CM2_2_2IORTMaterialIORT
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
G4Material * CM2_1_2IORTMaterialIORT
G4Material * Blocco1IORTMaterialIORT
G4Material * finalCollimatorMaterialIORT
Float_t d
G4VisAttributes * darkOrange3
G4Material * Giunz2FinalCollMaterialIORT
G4int nComponents
Definition: TRTMaterials.hh:41
int G4int
Definition: G4Types.hh:78
static G4NistManager * Instance()
G4Material * CM1_1_2IORTMaterialIORT
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4Material * Blocco2IORTMaterialIORT
bool G4bool
Definition: G4Types.hh:79
static const double cm3
Definition: G4SIunits.hh:120
static const double perCent
Definition: G4SIunits.hh:329
G4VisAttributes * darkGreen
G4Material * Blocco20mmIORTMaterialIORT
G4Material * Giunz3FinalCollMaterialIORT
G4Material * Giunz4FinalCollMaterialIORT
G4Material * CM1_2_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 * Giunz3FinalCollMaterialIntIORT
G4Material * Giunz5FinalCollMaterialIORT
G4Material * Blocco3IORTMaterialIORT
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetInnerRadiusFinalCollimatorIORT()

void Collimator80BeamLine::SetInnerRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 960 of file Collimator80BeamLine.cc.

961 {
962  solidFinalCollimatorIORT -> SetInnerRadius(value);
964  G4cout<<"Inner Radius of the final collimator IORT is (mm):"
965  << solidFinalCollimatorIORT -> GetInnerRadius()/mm
966  << G4endl;
967 }
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 Collimator80BeamLine::SetOuterRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 971 of file Collimator80BeamLine.cc.

972 {
973  solidFinalCollimatorIORT -> SetOuterRadius(value);
975  G4cout<<"Outer Radius of the final collimator IORT is (mm):"
976  << solidFinalCollimatorIORT -> GetOuterRadius()/mm
977  << G4endl;
978 }
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* Collimator80BeamLine::Blocco1IORTMaterialIORT
private

Definition at line 150 of file Collimator80BeamLine.hh.

◆ Blocco20mmIORTMaterialIORT

G4Material* Collimator80BeamLine::Blocco20mmIORTMaterialIORT
private

Definition at line 165 of file Collimator80BeamLine.hh.

◆ Blocco2IORTMaterialIORT

G4Material* Collimator80BeamLine::Blocco2IORTMaterialIORT
private

Definition at line 155 of file Collimator80BeamLine.hh.

◆ Blocco3IORTMaterialIORT

G4Material* Collimator80BeamLine::Blocco3IORTMaterialIORT
private

Definition at line 160 of file Collimator80BeamLine.hh.

◆ blue

G4VisAttributes* Collimator80BeamLine::blue
private

Definition at line 101 of file Collimator80BeamLine.hh.

◆ CCMIORTMaterialIORT

G4Material* Collimator80BeamLine::CCMIORTMaterialIORT
private

Definition at line 190 of file Collimator80BeamLine.hh.

◆ CM1_1_2IORTMaterialIORT

G4Material* Collimator80BeamLine::CM1_1_2IORTMaterialIORT
private

Definition at line 170 of file Collimator80BeamLine.hh.

◆ CM1_2_2IORTMaterialIORT

G4Material* Collimator80BeamLine::CM1_2_2IORTMaterialIORT
private

Definition at line 175 of file Collimator80BeamLine.hh.

◆ CM2_1_2IORTMaterialIORT

G4Material* Collimator80BeamLine::CM2_1_2IORTMaterialIORT
private

Definition at line 180 of file Collimator80BeamLine.hh.

◆ CM2_2_2IORTMaterialIORT

G4Material* Collimator80BeamLine::CM2_2_2IORTMaterialIORT
private

Definition at line 185 of file Collimator80BeamLine.hh.

◆ collimatorMessenger

Collimator80BeamLineMessenger* Collimator80BeamLine::collimatorMessenger
private

Definition at line 97 of file Collimator80BeamLine.hh.

◆ darkGreen

G4VisAttributes* Collimator80BeamLine::darkGreen
private

Definition at line 107 of file Collimator80BeamLine.hh.

◆ darkOrange3

G4VisAttributes* Collimator80BeamLine::darkOrange3
private

Definition at line 108 of file Collimator80BeamLine.hh.

◆ finalCollimatorMaterialIORT

G4Material* Collimator80BeamLine::finalCollimatorMaterialIORT
private

Definition at line 115 of file Collimator80BeamLine.hh.

◆ FTIORTMaterialIORT

G4Material* Collimator80BeamLine::FTIORTMaterialIORT
private

Definition at line 210 of file Collimator80BeamLine.hh.

◆ Giunz1FinalCollMaterialIORT

G4Material* Collimator80BeamLine::Giunz1FinalCollMaterialIORT
private

Definition at line 120 of file Collimator80BeamLine.hh.

◆ Giunz2FinalCollMaterialIORT

G4Material* Collimator80BeamLine::Giunz2FinalCollMaterialIORT
private

Definition at line 125 of file Collimator80BeamLine.hh.

◆ Giunz3FinalCollMaterialIntIORT

G4Material* Collimator80BeamLine::Giunz3FinalCollMaterialIntIORT
private

Definition at line 134 of file Collimator80BeamLine.hh.

◆ Giunz3FinalCollMaterialIORT

G4Material* Collimator80BeamLine::Giunz3FinalCollMaterialIORT
private

Definition at line 130 of file Collimator80BeamLine.hh.

◆ Giunz4FinalCollMaterialIORT

G4Material* Collimator80BeamLine::Giunz4FinalCollMaterialIORT
private

Definition at line 140 of file Collimator80BeamLine.hh.

◆ Giunz5FinalCollMaterialIORT

G4Material* Collimator80BeamLine::Giunz5FinalCollMaterialIORT
private

Definition at line 145 of file Collimator80BeamLine.hh.

◆ gray

G4VisAttributes* Collimator80BeamLine::gray
private

Definition at line 102 of file Collimator80BeamLine.hh.

◆ green

G4VisAttributes* Collimator80BeamLine::green
private

Definition at line 106 of file Collimator80BeamLine.hh.

◆ innerRadiusFinalCollimatorIORT

G4double Collimator80BeamLine::innerRadiusFinalCollimatorIORT
private

Definition at line 112 of file Collimator80BeamLine.hh.

◆ iortDetectorConstruction

IORTDetectorConstruction* Collimator80BeamLine::iortDetectorConstruction
private

Definition at line 99 of file Collimator80BeamLine.hh.

◆ OuterRadiusFinalCollimatorIORT

G4double Collimator80BeamLine::OuterRadiusFinalCollimatorIORT
private

Definition at line 112 of file Collimator80BeamLine.hh.

◆ PFS1IORTMaterialIORT

G4Material* Collimator80BeamLine::PFS1IORTMaterialIORT
private

Definition at line 195 of file Collimator80BeamLine.hh.

◆ PFS2IORTMaterialIORT

G4Material* Collimator80BeamLine::PFS2IORTMaterialIORT
private

Definition at line 200 of file Collimator80BeamLine.hh.

◆ PFS3IORTMaterialIORT

G4Material* Collimator80BeamLine::PFS3IORTMaterialIORT
private

Definition at line 205 of file Collimator80BeamLine.hh.

◆ physiBlocco1IORT

G4VPhysicalVolume* Collimator80BeamLine::physiBlocco1IORT
private

Definition at line 149 of file Collimator80BeamLine.hh.

◆ physiBlocco20mmIORT

G4VPhysicalVolume* Collimator80BeamLine::physiBlocco20mmIORT
private

Definition at line 164 of file Collimator80BeamLine.hh.

◆ physiBlocco2IORT

G4VPhysicalVolume* Collimator80BeamLine::physiBlocco2IORT
private

Definition at line 154 of file Collimator80BeamLine.hh.

◆ physiBlocco3IORT

G4VPhysicalVolume* Collimator80BeamLine::physiBlocco3IORT
private

Definition at line 159 of file Collimator80BeamLine.hh.

◆ physicalTreatmentRoom

G4VPhysicalVolume* Collimator80BeamLine::physicalTreatmentRoom
private

Definition at line 98 of file Collimator80BeamLine.hh.

◆ physiCCMIORT

G4VPhysicalVolume* Collimator80BeamLine::physiCCMIORT
private

Definition at line 189 of file Collimator80BeamLine.hh.

◆ physiCM1_1_2IORT

G4VPhysicalVolume* Collimator80BeamLine::physiCM1_1_2IORT
private

Definition at line 169 of file Collimator80BeamLine.hh.

◆ physiCM1_2_2IORT

G4VPhysicalVolume* Collimator80BeamLine::physiCM1_2_2IORT
private

Definition at line 174 of file Collimator80BeamLine.hh.

◆ physiCM2_1_2IORT

G4VPhysicalVolume* Collimator80BeamLine::physiCM2_1_2IORT
private

Definition at line 179 of file Collimator80BeamLine.hh.

◆ physiCM2_2_2IORT

G4VPhysicalVolume* Collimator80BeamLine::physiCM2_2_2IORT
private

Definition at line 184 of file Collimator80BeamLine.hh.

◆ physiFinalCollimatorIORT

G4VPhysicalVolume* Collimator80BeamLine::physiFinalCollimatorIORT
private

Definition at line 114 of file Collimator80BeamLine.hh.

◆ physiFTIORT

G4VPhysicalVolume* Collimator80BeamLine::physiFTIORT
private

Definition at line 209 of file Collimator80BeamLine.hh.

◆ physiGiunz1FinalCollIORT

G4VPhysicalVolume* Collimator80BeamLine::physiGiunz1FinalCollIORT
private

Definition at line 119 of file Collimator80BeamLine.hh.

◆ physiGiunz2FinalCollIORT

G4VPhysicalVolume* Collimator80BeamLine::physiGiunz2FinalCollIORT
private

Definition at line 124 of file Collimator80BeamLine.hh.

◆ physiGiunz3FinalCollIntIORT

G4VPhysicalVolume* Collimator80BeamLine::physiGiunz3FinalCollIntIORT
private

Definition at line 135 of file Collimator80BeamLine.hh.

◆ physiGiunz3FinalCollIORT

G4VPhysicalVolume* Collimator80BeamLine::physiGiunz3FinalCollIORT
private

Definition at line 129 of file Collimator80BeamLine.hh.

◆ physiGiunz4FinalCollIORT

G4VPhysicalVolume* Collimator80BeamLine::physiGiunz4FinalCollIORT
private

Definition at line 139 of file Collimator80BeamLine.hh.

◆ physiGiunz5FinalCollIORT

G4VPhysicalVolume* Collimator80BeamLine::physiGiunz5FinalCollIORT
private

Definition at line 144 of file Collimator80BeamLine.hh.

◆ physiPFS1IORT

G4VPhysicalVolume* Collimator80BeamLine::physiPFS1IORT
private

Definition at line 194 of file Collimator80BeamLine.hh.

◆ physiPFS2IORT

G4VPhysicalVolume* Collimator80BeamLine::physiPFS2IORT
private

Definition at line 199 of file Collimator80BeamLine.hh.

◆ physiPFS3IORT

G4VPhysicalVolume* Collimator80BeamLine::physiPFS3IORT
private

Definition at line 204 of file Collimator80BeamLine.hh.

◆ physiVSIORT

G4VPhysicalVolume* Collimator80BeamLine::physiVSIORT
private

Definition at line 214 of file Collimator80BeamLine.hh.

◆ red

G4VisAttributes* Collimator80BeamLine::red
private

Definition at line 104 of file Collimator80BeamLine.hh.

◆ skyBlue

G4VisAttributes* Collimator80BeamLine::skyBlue
private

Definition at line 109 of file Collimator80BeamLine.hh.

◆ solidBlocco1IORT

G4Tubs* Collimator80BeamLine::solidBlocco1IORT
private

Definition at line 148 of file Collimator80BeamLine.hh.

◆ solidBlocco20mmIORT

G4Tubs* Collimator80BeamLine::solidBlocco20mmIORT
private

Definition at line 163 of file Collimator80BeamLine.hh.

◆ solidBlocco2IORT

G4Tubs* Collimator80BeamLine::solidBlocco2IORT
private

Definition at line 153 of file Collimator80BeamLine.hh.

◆ solidBlocco3IORT

G4Tubs* Collimator80BeamLine::solidBlocco3IORT
private

Definition at line 158 of file Collimator80BeamLine.hh.

◆ solidCCMIORT

G4Tubs* Collimator80BeamLine::solidCCMIORT
private

Definition at line 188 of file Collimator80BeamLine.hh.

◆ solidCM1_1_2IORT

G4Tubs* Collimator80BeamLine::solidCM1_1_2IORT
private

Definition at line 168 of file Collimator80BeamLine.hh.

◆ solidCM1_2_2IORT

G4Tubs* Collimator80BeamLine::solidCM1_2_2IORT
private

Definition at line 173 of file Collimator80BeamLine.hh.

◆ solidCM2_1_2IORT

G4Tubs* Collimator80BeamLine::solidCM2_1_2IORT
private

Definition at line 178 of file Collimator80BeamLine.hh.

◆ solidCM2_2_2IORT

G4Tubs* Collimator80BeamLine::solidCM2_2_2IORT
private

Definition at line 183 of file Collimator80BeamLine.hh.

◆ solidFinalCollimatorIORT

G4Tubs* Collimator80BeamLine::solidFinalCollimatorIORT
private

Definition at line 113 of file Collimator80BeamLine.hh.

◆ solidFTIORT

G4Tubs* Collimator80BeamLine::solidFTIORT
private

Definition at line 208 of file Collimator80BeamLine.hh.

◆ solidGiunz1FinalCollIORT

G4Tubs* Collimator80BeamLine::solidGiunz1FinalCollIORT
private

Definition at line 118 of file Collimator80BeamLine.hh.

◆ solidGiunz2FinalCollIORT

G4Tubs* Collimator80BeamLine::solidGiunz2FinalCollIORT
private

Definition at line 123 of file Collimator80BeamLine.hh.

◆ solidGiunz3FinalCollIntIORT

G4Cons* Collimator80BeamLine::solidGiunz3FinalCollIntIORT
private

Definition at line 133 of file Collimator80BeamLine.hh.

◆ solidGiunz3FinalCollIORT

G4Tubs* Collimator80BeamLine::solidGiunz3FinalCollIORT
private

Definition at line 128 of file Collimator80BeamLine.hh.

◆ solidGiunz4FinalCollIORT

G4Tubs* Collimator80BeamLine::solidGiunz4FinalCollIORT
private

Definition at line 138 of file Collimator80BeamLine.hh.

◆ solidGiunz5FinalCollIORT

G4Tubs* Collimator80BeamLine::solidGiunz5FinalCollIORT
private

Definition at line 143 of file Collimator80BeamLine.hh.

◆ solidPFS1IORT

G4Tubs* Collimator80BeamLine::solidPFS1IORT
private

Definition at line 193 of file Collimator80BeamLine.hh.

◆ solidPFS2IORT

G4Tubs* Collimator80BeamLine::solidPFS2IORT
private

Definition at line 198 of file Collimator80BeamLine.hh.

◆ solidPFS3IORT

G4Tubs* Collimator80BeamLine::solidPFS3IORT
private

Definition at line 203 of file Collimator80BeamLine.hh.

◆ solidVSIORT

G4Tubs* Collimator80BeamLine::solidVSIORT
private

Definition at line 213 of file Collimator80BeamLine.hh.

◆ VSIORTMaterialIORT

G4Material* Collimator80BeamLine::VSIORTMaterialIORT
private

Definition at line 215 of file Collimator80BeamLine.hh.

◆ white

G4VisAttributes* Collimator80BeamLine::white
private

Definition at line 103 of file Collimator80BeamLine.hh.

◆ yellow

G4VisAttributes* Collimator80BeamLine::yellow
private

Definition at line 105 of file Collimator80BeamLine.hh.


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