Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
Collimator100BeamLine Class Reference

#include <Collimator100BeamLine.hh>

Inheritance diagram for Collimator100BeamLine:
G4VUserDetectorConstruction

Public Member Functions

 Collimator100BeamLine ()
 
 ~Collimator100BeamLine ()
 
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
 

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 Collimator100BeamLine.hh.

Constructor & Destructor Documentation

Collimator100BeamLine::Collimator100BeamLine ( )

Definition at line 59 of file Collimator100BeamLine.cc.

59  :
60  physicalTreatmentRoom(0),iortDetectorConstruction(0),
61 
62 
63  solidFinalCollimatorIORT(0),
64  physiFinalCollimatorIORT(0),
65 
66  solidGiunz1FinalCollIORT(0),
67  physiGiunz1FinalCollIORT(0),
68 
69  solidGiunz2FinalCollIORT(0),
70  physiGiunz2FinalCollIORT(0),
71 
72  solidGiunz3FinalCollIORT(0),
73  physiGiunz3FinalCollIORT(0),
74 
75  solidGiunz3FinalCollIntIORT(0),
76  physiGiunz3FinalCollIntIORT(0),
77 
78  solidGiunz4FinalCollIORT(0),
79  physiGiunz4FinalCollIORT(0),
80 
81  solidGiunz5FinalCollIORT(0),
82  physiGiunz5FinalCollIORT(0),
83 
84  solidBlocco1IORT(0),
85  physiBlocco1IORT(0),
86 
87  solidBlocco2IORT(0),
88  physiBlocco2IORT(0),
89 
90  solidBlocco3IORT(0),
91  physiBlocco3IORT(0),
92 
93  solidBlocco20mmIORT(0),
94  physiBlocco20mmIORT(0),
95 
96  solidCM1_1_2IORT(0),
97  physiCM1_1_2IORT(0),
98 
99  solidCM1_2_2IORT(0),
100  physiCM1_2_2IORT(0),
101 
102  solidCM2_1_2IORT(0),
103  physiCM2_1_2IORT(0),
104 
105  solidCM2_2_2IORT(0),
106  physiCM2_2_2IORT(0),
107 
108  solidCCMIORT(0),
109  physiCCMIORT(0),
110 
111  solidPFS1IORT(0),
112  physiPFS1IORT(0),
113 
114  solidPFS2IORT(0),
115  physiPFS2IORT(0),
116 
117  solidPFS3IORT(0),
118  physiPFS3IORT(0),
119 
120  solidFTIORT(0),
121  physiFTIORT(0)
122 
123 
124 {
125  // Messenger to change parameters of the collimator100BeamLine geometry
126  collimatorMessenger = new Collimator100BeamLineMessenger(this);
127 
128 }
Collimator100BeamLine::~Collimator100BeamLine ( )

Definition at line 130 of file Collimator100BeamLine.cc.

131 {
132  delete collimatorMessenger;
133  delete iortDetectorConstruction;
134 }

Member Function Documentation

G4VPhysicalVolume * Collimator100BeamLine::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 139 of file Collimator100BeamLine.cc.

140 {
141  // Sets default geometry and materials
142  SetDefaultDimensions();
143 
144  // Construct the whole Collimator Beam Line
145  ConstructCollimator100BeamLine();
146 
147 
148  // IORTDetectorConstruction builds ONLY the phantom and the detector with its associated ROGeometry
149  iortDetectorConstruction = new IORTDetectorConstruction(physicalTreatmentRoom);
150 
151  return physicalTreatmentRoom;
152 }
void Collimator100BeamLine::IortBeamLineBlocks ( )

Definition at line 651 of file Collimator100BeamLine.cc.

References python.hepunit::deg, python.hepunit::mm, and CLHEP::HepRotation::rotateY().

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

Definition at line 943 of file Collimator100BeamLine.cc.

References python.hepunit::deg, python.hepunit::mm, rm6, and CLHEP::HepRotation::rotateY().

944 {
945 // -----------------------//
946  // FINAL COLLIMATOR IORT //
947  //------------------------//
948 
949  // const G4double outRadiusFinalCollimatorIORT = 45. *mm;
950  // const G4double innRadiusFinalCollimatorIORT = 40. *mm;
951  const G4double hightFinalCollimatorIORT = 434. *mm;
952  const G4double startAngleFinalCollimatorIORT = 0.*deg;
953  const G4double spanningAngleFinalCollimatorIORT = 360.*deg;
954  const G4double finalCollimatorXPositionIORT = -489.*mm;
955 
956 
957 
958 
959  G4double phi6 = 90. *deg;
960 
961 
963  rm6.rotateY(phi6);
964 
965 
966  solidFinalCollimatorIORT = new G4Tubs("FinalCollimatorIORT", innerRadiusFinalCollimatorIORT,
967  OuterRadiusFinalCollimatorIORT,
968  hightFinalCollimatorIORT,
969  startAngleFinalCollimatorIORT,
970  spanningAngleFinalCollimatorIORT);
971 
972  G4LogicalVolume* logFinalCollimatorIORT = new G4LogicalVolume(solidFinalCollimatorIORT,
973  finalCollimatorMaterialIORT, "FinalCollimatorIORT", 0, 0, 0);
974 
975  physiFinalCollimatorIORT = new G4PVPlacement(G4Transform3D(rm6, G4ThreeVector((finalCollimatorXPositionIORT),0.,0.)),
976  "FinalCollimatorIORT", logFinalCollimatorIORT, physicalTreatmentRoom, false, 0);
977 
978  // logFinalCollimatorIORT -> SetVisAttributes(G4VisAttributes::Invisible);
979  logFinalCollimatorIORT -> SetVisAttributes(darkGreen);
980 
981 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:84
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
void Collimator100BeamLine::IortBeamLineJunctions ( )

Definition at line 777 of file Collimator100BeamLine.cc.

References python.hepunit::deg, python.hepunit::mm, and CLHEP::HepRotation::rotateY().

778 {
779 
780 
781  G4double phi5 = 90. *deg;
782 
783 
784  G4RotationMatrix rm5;
785  rm5.rotateY(phi5);
786 // --------------------------------- //
787  // Junction 5 FINAL COLLIMATOR IORT //
788  // --------------------------------- //
789 
790  const G4double outRadiusGiunz5FinalCollIORT = 48.25 *mm;
791  const G4double innRadiusGiunz5FinalCollIORT = 13.75 *mm;
792  const G4double hightGiunz5FinalCollIORT = 3.5 *mm;
793  const G4double startAngleGiunz5FinalCollIORT = 0.*deg;
794  const G4double spanningAngleGiunz5FinalCollIORT = 360.*deg;
795  const G4double Giunz5FinalCollXPositionIORT = -983.5 *mm;
796 
797 
798 
799  solidGiunz5FinalCollIORT = new G4Tubs("Giunz5FinalCollIORT", innRadiusGiunz5FinalCollIORT,
800  outRadiusGiunz5FinalCollIORT,
801  hightGiunz5FinalCollIORT,
802  startAngleGiunz5FinalCollIORT,
803  spanningAngleGiunz5FinalCollIORT);
804 
805  G4LogicalVolume* logGiunz5FinalCollIORT = new G4LogicalVolume(solidGiunz5FinalCollIORT,
806  Giunz5FinalCollMaterialIORT, "Giunz5FinalCollIORT", 0, 0, 0);
807 
808  physiGiunz5FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz5FinalCollXPositionIORT),0.,0.)),
809  "Giunz5FinalCollIORT", logGiunz5FinalCollIORT, physicalTreatmentRoom, false, 0);
810 
811  logGiunz5FinalCollIORT -> SetVisAttributes(yellow);
812 
813 // --------------------------------- //
814  // Junction 4 FINAL COLLIMATOR IORT //
815  // --------------------------------- //
816 
817  const G4double outRadiusGiunz4FinalCollIORT = 42. *mm;
818  const G4double innRadiusGiunz4FinalCollIORT = 13.75 *mm;
819  const G4double hightGiunz4FinalCollIORT = 8.5 *mm;
820  const G4double startAngleGiunz4FinalCollIORT = 0.*deg;
821  const G4double spanningAngleGiunz4FinalCollIORT = 360.*deg;
822  const G4double Giunz4FinalCollXPositionIORT = -971.5 *mm;
823 
824 
825 
826  solidGiunz4FinalCollIORT = new G4Tubs("Giunz4FinalCollIORT", innRadiusGiunz4FinalCollIORT,
827  outRadiusGiunz4FinalCollIORT,
828  hightGiunz4FinalCollIORT,
829  startAngleGiunz4FinalCollIORT,
830  spanningAngleGiunz4FinalCollIORT);
831 
832  G4LogicalVolume* logGiunz4FinalCollIORT = new G4LogicalVolume(solidGiunz4FinalCollIORT,
833  Giunz4FinalCollMaterialIORT, "Giunz4FinalCollIORT", 0, 0, 0);
834 
835  physiGiunz4FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz4FinalCollXPositionIORT),0.,0.)),
836  "Giunz4FinalCollIORT", logGiunz4FinalCollIORT, physicalTreatmentRoom, false, 0);
837 
838  logGiunz4FinalCollIORT -> SetVisAttributes(blue);
839 
840 
841 
842  // --------------------------------- //
843  // Junction 3 FINAL COLLIMATOR IORT //
844  // --------------------------------- //
845 
846  const G4double outRadiusGiunz3FinalCollIORT = 42. *mm;
847  const G4double innRadiusGiunz3FinalCollIORT = 0. *mm;
848  const G4double hightGiunz3FinalCollIORT = 4.25 *mm;
849  const G4double startAngleGiunz3FinalCollIORT = 0.*deg;
850  const G4double spanningAngleGiunz3FinalCollIORT = 360.*deg;
851  const G4double Giunz3FinalCollXPositionIORT = -958.75 *mm;
852 
853 
854  solidGiunz3FinalCollIORT = new G4Tubs("Giunz3FinalCollIORT", innRadiusGiunz3FinalCollIORT,
855  outRadiusGiunz3FinalCollIORT,
856  hightGiunz3FinalCollIORT,
857  startAngleGiunz3FinalCollIORT,
858  spanningAngleGiunz3FinalCollIORT);
859 
860  G4LogicalVolume* logicsolidGiunz3FinalCollIORT = new G4LogicalVolume(solidGiunz3FinalCollIORT,
861  Giunz3FinalCollMaterialIORT, "Giunz3FinalCollIORT", 0, 0, 0);
862 
863  physiGiunz3FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz3FinalCollXPositionIORT),0.,0.)),
864  "Giunz3FinalCollIORT", logicsolidGiunz3FinalCollIORT, physicalTreatmentRoom, false, 0);
865 
866  logicsolidGiunz3FinalCollIORT -> SetVisAttributes(yellow);
867  // logicsolidGiunz3FinalCollIORT -> SetVisAttributes (G4VisAttributes::Invisible);
868 
869 
870 
871  // --------------------------------- //
872  // Junction 3 FINAL COLLIMATOR IORT internal //
873  // --------------------------------- //
874 
875 
876 
877  solidGiunz3FinalCollIntIORT = new G4Cons("Giunz3FinalCollIntIORT",0.*mm,13.75*mm,0.*mm,22.25*mm,4.25*mm,0.*deg,360.*deg);
878 
879  G4LogicalVolume* logicsolidGiunz3FinalCollIntIORT = new G4LogicalVolume(solidGiunz3FinalCollIntIORT,
880  Giunz3FinalCollMaterialIntIORT, "Giunz3FinalCollIntIORT", 0, 0, 0);
881 
882  physiGiunz3FinalCollIntIORT = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.),"Giunz3FinalCollIntIORT", logicsolidGiunz3FinalCollIntIORT,physiGiunz3FinalCollIORT, false, 0);
883 
884  logicsolidGiunz3FinalCollIntIORT -> SetVisAttributes(yellow);
885 
886 
887 // --------------------------------- //
888  // Junction 2 FINAL COLLIMATOR IORT //
889  // --------------------------------- //
890 
891  const G4double outRadiusGiunz2FinalCollIORT = 42. *mm;
892  const G4double innRadiusGiunz2FinalCollIORT = 22.25 *mm;
893  const G4double hightGiunz2FinalCollIORT = 5.75 *mm;
894  const G4double startAngleGiunz2FinalCollIORT = 0.*deg;
895  const G4double spanningAngleGiunz2FinalCollIORT = 360.*deg;
896  const G4double Giunz2FinalCollXPositionIORT = -948.75 *mm;
897 
898 
899 
900  solidGiunz2FinalCollIORT = new G4Tubs("Giunz2FinalCollIORT", innRadiusGiunz2FinalCollIORT,
901  outRadiusGiunz2FinalCollIORT,
902  hightGiunz2FinalCollIORT,
903  startAngleGiunz2FinalCollIORT,
904  spanningAngleGiunz2FinalCollIORT);
905 
906  G4LogicalVolume* logGiunz2FinalCollIORT = new G4LogicalVolume(solidGiunz2FinalCollIORT,
907  Giunz2FinalCollMaterialIORT, "Giunz2FinalCollIORT", 0, 0, 0);
908 
909  physiGiunz2FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz2FinalCollXPositionIORT),0.,0.)),
910  "Giunz2FinalCollIORT", logGiunz2FinalCollIORT, physicalTreatmentRoom, false, 0);
911 
912  logGiunz2FinalCollIORT -> SetVisAttributes(red);
913 
914 // --------------------------------- //
915  // Junction 1 FINAL COLLIMATOR IORT //
916  // --------------------------------- //
917 
918  const G4double outRadiusGiunz1FinalCollIORT = 65. *mm;
919  const G4double innRadiusGiunz1FinalCollIORT = 22.25 *mm;
920  const G4double hightGiunz1FinalCollIORT = 10. *mm;
921  const G4double startAngleGiunz1FinalCollIORT = 0.*deg;
922  const G4double spanningAngleGiunz1FinalCollIORT = 360.*deg;
923  const G4double Giunz1FinalCollXPositionIORT = -933.*mm;
924 
925 
926 
927  solidGiunz1FinalCollIORT = new G4Tubs("Giunz1FinalCollIORT", innRadiusGiunz1FinalCollIORT,
928  outRadiusGiunz1FinalCollIORT,
929  hightGiunz1FinalCollIORT,
930  startAngleGiunz1FinalCollIORT,
931  spanningAngleGiunz1FinalCollIORT);
932 
933  G4LogicalVolume* logGiunz1FinalCollIORT = new G4LogicalVolume(solidGiunz1FinalCollIORT,
934  Giunz1FinalCollMaterialIORT, "Giunz1FinalCollIORT", 0, 0, 0);
935 
936  physiGiunz1FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz1FinalCollXPositionIORT),0.,0.)),
937  "Giunz1FinalCollIORT", logGiunz1FinalCollIORT, physicalTreatmentRoom, false, 0);
938 
939  logGiunz1FinalCollIORT -> SetVisAttributes(gray);
940 
941 }
Definition: test07.cc:36
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:84
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
Definition: test07.cc:36
Definition: test07.cc:36
Definition: G4Cons.hh:82
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
void Collimator100BeamLine::IortBeamLineMonitorChambers ( )

Definition at line 423 of file Collimator100BeamLine.cc.

References python.hepunit::deg, python.hepunit::mm, rm3, and CLHEP::HepRotation::rotateY().

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

Definition at line 387 of file Collimator100BeamLine.cc.

References python.hepunit::deg, python.hepunit::mm, and CLHEP::HepRotation::rotateY().

388 {
389 // ---------------------------------------------------------------//
390  // Titanium Window //
391  // ---------------------------------------------------------------//
392 
393  G4double phi2 = 90. *deg;
394 
395 
396  G4RotationMatrix rm2;
397  rm2.rotateY(phi2);
398 
399 
400  const G4double outRadiusFTIORT = 44.75 *mm;
401  const G4double innRadiusFTIORT = 8.5 *mm;
402  const G4double hightFTIORT = 0.006 *mm;
403  const G4double startAngleFTIORT = 0.*deg;
404  const G4double spanningAngleFTIORT = 360.*deg;
405  const G4double XPositionFTIORT = -1061.791 *mm;
406 
407 
408  solidFTIORT = new G4Tubs("FTIORT", innRadiusFTIORT,
409  outRadiusFTIORT,
410  hightFTIORT,
411  startAngleFTIORT,
412  spanningAngleFTIORT);
413 
414  G4LogicalVolume* logFTIORT = new G4LogicalVolume(solidFTIORT,
415  FTIORTMaterialIORT, "FTIORT", 0, 0, 0);
416 
417  physiFTIORT = new G4PVPlacement(G4Transform3D(rm2, G4ThreeVector((XPositionFTIORT),0.,0.)),
418  "FTIORT", logFTIORT, physicalTreatmentRoom, false, 0);
419 
420  logFTIORT -> SetVisAttributes(yellow);
421 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:84
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
Definition: test07.cc:36
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
void Collimator100BeamLine::IortBeamLineVacuumSource ( )

Definition at line 353 of file Collimator100BeamLine.cc.

References python.hepunit::deg, python.hepunit::mm, and CLHEP::HepRotation::rotateY().

354 {
355  // ---------------------------------------------------------------//
356  // Vacuum Source //
357  // ---------------------------------------------------------------//
358 
359 
360  G4double phi1 = 90. *deg;
361 
362 
363  G4RotationMatrix rm1;
364  rm1.rotateY(phi1);
365 
366  const G4double outRadiusVSIORT = 44.75 *mm;
367  const G4double innRadiusVSIORT = 0.*mm;
368  const G4double hightVSIORT = 1. *mm;
369  const G4double startAngleVSIORT = 0.*deg;
370  const G4double spanningAngleVSIORT = 360.*deg;
371  const G4double XPositionVSIORT = -1062.797 *mm;
372 
373  solidVSIORT = new G4Tubs("VSIORT", innRadiusVSIORT,
374  outRadiusVSIORT,
375  hightVSIORT,
376  startAngleVSIORT,
377  spanningAngleVSIORT);
378 
379  G4LogicalVolume* logVSIORT = new G4LogicalVolume(solidVSIORT,
380  VSIORTMaterialIORT, "VSIORT", 0, 0, 0);
381 
382  physiVSIORT = new G4PVPlacement(G4Transform3D(rm1, G4ThreeVector((XPositionVSIORT),0.,0.)),
383  "VSIORT", logVSIORT, physicalTreatmentRoom, false, 0);
384  logVSIORT -> SetVisAttributes(green);
385 }
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:84
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
void Collimator100BeamLine::SetInnerRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 988 of file Collimator100BeamLine.cc.

References G4cout, G4endl, G4RunManager::GetRunManager(), and python.hepunit::mm.

989 {
990  solidFinalCollimatorIORT -> SetInnerRadius(value);
991  G4RunManager::GetRunManager() -> GeometryHasBeenModified();
992  G4cout<<"Inner Radius of the final collimator IORT is (mm):"
993  << solidFinalCollimatorIORT -> GetInnerRadius()/mm
994  << G4endl;
995 }
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
const XML_Char int const XML_Char * value
#define G4endl
Definition: G4ios.hh:61
void Collimator100BeamLine::SetOuterRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 999 of file Collimator100BeamLine.cc.

References G4cout, G4endl, G4RunManager::GetRunManager(), and python.hepunit::mm.

1000 {
1001  solidFinalCollimatorIORT -> SetOuterRadius(value);
1002  G4RunManager::GetRunManager() -> GeometryHasBeenModified();
1003  G4cout<<"Outer Radius of the final collimator IORT is (mm):"
1004  << solidFinalCollimatorIORT -> GetOuterRadius()/mm
1005  << G4endl;
1006 }
G4GLOB_DLL std::ostream G4cout
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
const XML_Char int const XML_Char * value
#define G4endl
Definition: G4ios.hh:61

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