Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Collimator40BeamLine Class Reference

#include <Collimator40BeamLine.hh>

Inheritance diagram for Collimator40BeamLine:
Collaboration diagram for Collimator40BeamLine:

Public Member Functions

 Collimator40BeamLine ()
 
 ~Collimator40BeamLine ()
 
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 Collimator40BeamLine.hh.

Constructor & Destructor Documentation

Collimator40BeamLine::Collimator40BeamLine ( )

Definition at line 59 of file Collimator40BeamLine.cc.

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

Definition at line 125 of file Collimator40BeamLine.cc.

126 {
127  delete collimatorMessenger;
128  delete iortDetectorConstruction;
129 }

Member Function Documentation

G4VPhysicalVolume * Collimator40BeamLine::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 134 of file Collimator40BeamLine.cc.

135 {
136  // Sets default geometry and materials
137  SetDefaultDimensions();
138 
139  // Construct the whole Collimator Beam Line
140  ConstructCollimator40BeamLine();
141 
142  // IORTDetectorConstruction builds ONLY the phantom and the detector with its associated ROGeometry
143  iortDetectorConstruction = new IORTDetectorConstruction(physicalTreatmentRoom);
144 
145  return physicalTreatmentRoom;
146 }
void Collimator40BeamLine::IortBeamLineBlocks ( )

Definition at line 642 of file Collimator40BeamLine.cc.

643 {
644 
645  G4double phi4 = 90. *deg;
646 
647 
648  G4RotationMatrix rm4;
649  rm4.rotateY(phi4);
650 
652 
653  // IORT BEAM LINE BLOCKS
654 
656 
657  // ------------------------------------------------//
658  // Block 4 //
659  // ------------------------------------------------//
660 
661  const G4double outRadiusBlocco20mmIORT = 36.5 *mm;
662  const G4double innRadiusBlocco20mmIORT = 10. *mm;
663  const G4double hightBlocco20mmIORT = 3. *mm;
664  const G4double startAngleBlocco20mmIORT = 0.*deg;
665  const G4double spanningAngleBlocco20mmIORT = 360.*deg;
666  const G4double XPositionBlocco20mmIORT = -830. *mm;
667 
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 
748  solidBlocco1IORT = new G4Tubs("Blocco1IORT", innRadiusBlocco1IORT,
749  outRadiusBlocco1IORT,
750  hightBlocco1IORT,
751  startAngleBlocco1IORT,
752  spanningAngleBlocco1IORT);
753 
754  G4LogicalVolume* logBlocco1IORT = new G4LogicalVolume(solidBlocco1IORT,
755  Blocco1IORTMaterialIORT, "Blocco1IORT", 0, 0, 0);
756 
757  physiBlocco1IORT = new G4PVPlacement(G4Transform3D(rm4, G4ThreeVector((XPositionBlocco1IORT),0.,0.)),
758  "Blocco1IORT", logBlocco1IORT, physicalTreatmentRoom, false, 0);
759 
760  logBlocco1IORT -> SetVisAttributes(white);
761 }
static constexpr double mm
Definition: G4SIunits.hh:115
Definition: test07.cc:36
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
Definition: test07.cc:36
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152

Here is the call graph for this function:

void Collimator40BeamLine::IortBeamLineFinalCollimator ( )

Definition at line 871 of file Collimator40BeamLine.cc.

872 {
873 // -----------------------//
874  // FINAL COLLIMATOR IORT //
875  //------------------------//
876 
877  // const G4double outRadiusFinalCollimatorIORT = 35. *mm;
878  // const G4double innRadiusFinalCollimatorIORT = 30. *mm;
879  const G4double hightFinalCollimatorIORT = 349.75 *mm;
880  const G4double startAngleFinalCollimatorIORT = 0.*deg;
881  const G4double spanningAngleFinalCollimatorIORT = 360.*deg;
882  const G4double finalCollimatorXPositionIORT = -404.75 *mm;
883 
884  G4double phi6 = 90. *deg;
885 
886 
888  rm6.rotateY(phi6);
889 
890 
891  solidFinalCollimatorIORT = new G4Tubs("FinalCollimatorIORT", innerRadiusFinalCollimatorIORT,
892  OuterRadiusFinalCollimatorIORT,
893  hightFinalCollimatorIORT,
894  startAngleFinalCollimatorIORT,
895  spanningAngleFinalCollimatorIORT);
896 
897  G4LogicalVolume* logFinalCollimatorIORT = new G4LogicalVolume(solidFinalCollimatorIORT,
898  finalCollimatorMaterialIORT, "FinalCollimatorIORT", 0, 0, 0);
899 
900  physiFinalCollimatorIORT = new G4PVPlacement(G4Transform3D(rm6, G4ThreeVector((finalCollimatorXPositionIORT),0.,0.)),
901  "FinalCollimatorIORT", logFinalCollimatorIORT, physicalTreatmentRoom, false, 0);
902 
903  // logFinalCollimatorIORT -> SetVisAttributes(G4VisAttributes::GetInvisible());
904  logFinalCollimatorIORT -> SetVisAttributes(green);
905 
906 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152

Here is the call graph for this function:

void Collimator40BeamLine::IortBeamLineJunctions ( )

Definition at line 763 of file Collimator40BeamLine.cc.

764 {
765 
766 
767  G4double phi5 = 90. *deg;
768 
769 
770  G4RotationMatrix rm5;
771  rm5.rotateY(phi5);
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 
809 
810  solidGiunz4FinalCollIORT = new G4Tubs("Giunz4FinalCollIORT", innRadiusGiunz4FinalCollIORT,
811  outRadiusGiunz4FinalCollIORT,
812  hightGiunz4FinalCollIORT,
813  startAngleGiunz4FinalCollIORT,
814  spanningAngleGiunz4FinalCollIORT);
815 
816  G4LogicalVolume* logGiunz4FinalCollIORT = new G4LogicalVolume(solidGiunz4FinalCollIORT,
817  Giunz4FinalCollMaterialIORT, "Giunz4FinalCollIORT", 0, 0, 0);
818 
819  physiGiunz4FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz4FinalCollXPositionIORT),0.,0.)),
820  "Giunz4FinalCollIORT", logGiunz4FinalCollIORT, physicalTreatmentRoom, false, 0);
821 
822  logGiunz4FinalCollIORT -> SetVisAttributes(blue);
823 
824 
825 
826  // --------------------------------- //
827  // Junction 3 FINAL COLLIMATOR IORT //
828  // --------------------------------- //
829 
830  const G4double outRadiusGiunz3FinalCollIORT = 42. *mm;
831  const G4double innRadiusGiunz3FinalCollIORT = 0. *mm;
832  const G4double hightGiunz3FinalCollIORT = 4.25 *mm;
833  const G4double startAngleGiunz3FinalCollIORT = 0.*deg;
834  const G4double spanningAngleGiunz3FinalCollIORT = 360.*deg;
835  const G4double Giunz3FinalCollXPositionIORT = -758.75 *mm;
836 
837 
838  solidGiunz3FinalCollIORT = new G4Tubs("Giunz3FinalCollIORT", innRadiusGiunz3FinalCollIORT,
839  outRadiusGiunz3FinalCollIORT,
840  hightGiunz3FinalCollIORT,
841  startAngleGiunz3FinalCollIORT,
842  spanningAngleGiunz3FinalCollIORT);
843 
844  G4LogicalVolume* logicsolidGiunz3FinalCollIORT = new G4LogicalVolume(solidGiunz3FinalCollIORT,
845  Giunz3FinalCollMaterialIORT, "Giunz3FinalCollIORT", 0, 0, 0);
846 
847  physiGiunz3FinalCollIORT = new G4PVPlacement(G4Transform3D(rm5, G4ThreeVector((Giunz3FinalCollXPositionIORT),0.,0.)),
848  "Giunz3FinalCollIORT", logicsolidGiunz3FinalCollIORT, physicalTreatmentRoom, false, 0);
849 
850  logicsolidGiunz3FinalCollIORT -> SetVisAttributes(yellow);
851  // logicsolidGiunz3FinalCollIORT -> SetVisAttributes (G4VisAttributes::GetInvisible());
852 
853 
854 
855  // --------------------------------- //
856  // Junction 3 FINAL COLLIMATOR IORT internal //
857  // --------------------------------- //
858 
859 
860 
861  solidGiunz3FinalCollIntIORT = new G4Cons("Giunz3FinalCollIntIORT",0.*mm,13.75*mm,0.*mm,20.0*mm,4.25*mm,0.*deg,360.*deg);
862 
863  G4LogicalVolume* logicsolidGiunz3FinalCollIntIORT = new G4LogicalVolume(solidGiunz3FinalCollIntIORT,
864  Giunz3FinalCollMaterialIntIORT, "Giunz3FinalCollIntIORT", 0, 0, 0);
865 
866  physiGiunz3FinalCollIntIORT = new G4PVPlacement(0, G4ThreeVector(0.,0.,0.),"Giunz3FinalCollIntIORT", logicsolidGiunz3FinalCollIntIORT,physiGiunz3FinalCollIORT, false, 0);
867 
868  logicsolidGiunz3FinalCollIntIORT -> SetVisAttributes(yellow);
869 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
Definition: test07.cc:36
Definition: test07.cc:36
Definition: G4Cons.hh:83
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152

Here is the call graph for this function:

void Collimator40BeamLine::IortBeamLineMonitorChambers ( )

Definition at line 415 of file Collimator40BeamLine.cc.

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

Here is the call graph for this function:

void Collimator40BeamLine::IortBeamLineTitaniumWindows ( )

Definition at line 381 of file Collimator40BeamLine.cc.

382 {
383 // ---------------------------------------------------------------//
384  // Titanium Window //
385  // ---------------------------------------------------------------//
386 
387  G4double phi2 = 90. *deg;
388 
389 
390  G4RotationMatrix rm2;
391  rm2.rotateY(phi2);
392 
393  const G4double outRadiusFTIORT = 44.75 *mm;
394  const G4double innRadiusFTIORT = 8.5 *mm;
395  const G4double hightFTIORT = 0.006 *mm;
396  const G4double startAngleFTIORT = 0.*deg;
397  const G4double spanningAngleFTIORT = 360.*deg;
398  const G4double XPositionFTIORT = -861.791 *mm;
399 
400  solidFTIORT = new G4Tubs("FTIORT", innRadiusFTIORT,
401  outRadiusFTIORT,
402  hightFTIORT,
403  startAngleFTIORT,
404  spanningAngleFTIORT);
405 
406  G4LogicalVolume* logFTIORT = new G4LogicalVolume(solidFTIORT,
407  FTIORTMaterialIORT, "FTIORT", 0, 0, 0);
408 
409  physiFTIORT = new G4PVPlacement(G4Transform3D(rm2, G4ThreeVector((XPositionFTIORT),0.,0.)),
410  "FTIORT", logFTIORT, physicalTreatmentRoom, false, 0);
411 
412  logFTIORT -> SetVisAttributes(yellow);
413 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
Definition: test07.cc:36
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152

Here is the call graph for this function:

void Collimator40BeamLine::IortBeamLineVacuumSource ( )

Definition at line 345 of file Collimator40BeamLine.cc.

346 {
347  // ---------------------------------------------------------------//
348  // Vacuum Source //
349  // ---------------------------------------------------------------//
350 
351 
352  G4double phi1 = 90. *deg;
353 
354 
355  G4RotationMatrix rm1;
356  rm1.rotateY(phi1);
357 
358  const G4double outRadiusVSIORT = 44.75 *mm;
359  const G4double innRadiusVSIORT = 0.*mm;
360  const G4double hightVSIORT = 1. *mm;
361  const G4double startAngleVSIORT = 0.*deg;
362  const G4double spanningAngleVSIORT = 360.*deg;
363  const G4double XPositionVSIORT = -862.797 *mm;
364 
365  solidVSIORT = new G4Tubs("VSIORT", innRadiusVSIORT,
366  outRadiusVSIORT,
367  hightVSIORT,
368  startAngleVSIORT,
369  spanningAngleVSIORT);
370 
371  G4LogicalVolume* logVSIORT = new G4LogicalVolume(solidVSIORT,
372  VSIORTMaterialIORT, "VSIORT", 0, 0, 0);
373 
374  physiVSIORT = new G4PVPlacement(G4Transform3D(rm1, G4ThreeVector((XPositionVSIORT),0.,0.)),
375  "VSIORT", logVSIORT, physicalTreatmentRoom, false, 0);
376 
377  logVSIORT -> SetVisAttributes(green);
378 
379 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
HepRotation & rotateY(double delta)
Definition: Rotation.cc:79
HepGeom::Transform3D G4Transform3D
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152

Here is the call graph for this function:

void Collimator40BeamLine::SetInnerRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 913 of file Collimator40BeamLine.cc.

914 {
915  solidFinalCollimatorIORT -> SetInnerRadius(value);
917  G4cout<<"Inner Radius of the final collimator IORT is (mm):"
918  << solidFinalCollimatorIORT -> GetInnerRadius()/mm
919  << G4endl;
920 }
static constexpr double mm
Definition: G4SIunits.hh:115
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void Collimator40BeamLine::SetOuterRadiusFinalCollimatorIORT ( G4double  value)

Definition at line 924 of file Collimator40BeamLine.cc.

925 {
926  solidFinalCollimatorIORT -> SetOuterRadius(value);
928  G4cout<<"Outer Radius of the final collimator IORT is (mm):"
929  << solidFinalCollimatorIORT -> GetOuterRadius()/mm
930  << G4endl;
931 }
static constexpr double mm
Definition: G4SIunits.hh:115
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
Definition: expat.h:331
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:


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