Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // This is the *BASIC* version of IORT, a Geant4-based application 27 // 28 // Main Authors: G.Russo(a,b), C.Casarino*(c), G.C. Candiano(c), G.A.P. Cirrone(d), F.Romano(d) 29 // Contributor Authors: S.Guatelli(e) 30 // Past Authors: G.Arnetta(c), S.E.Mazzaglia(d) 31 // 32 // (a) Fondazione Istituto San Raffaele G.Giglio, Cefalù, Italy 33 // (b) IBFM-CNR , Segrate (Milano), Italy 34 // (c) LATO (Laboratorio di Tecnologie Oncologiche), Cefalù, Italy 35 // (d) Laboratori Nazionali del Sud of the INFN, Catania, Italy 36 // (e) University of Wollongong, Australia 37 // 38 // *Corresponding author, email to carlo.casarino@polooncologicocefalu.it 39 ////////////////////////////////////////////////////////////////////////////////////////////// 40 41 #ifndef Collimator60BeamLine_H 42 #define Collimator60BeamLine_H 1 43 44 #include "globals.hh" 45 #include "G4VUserDetectorConstruction.hh" 46 #include "G4Box.hh" 47 #include "G4Tubs.hh" 48 #include "G4VisAttributes.hh" 49 #include "G4LogicalVolume.hh" 50 51 #include "G4Cons.hh" 52 #include "G4SubtractionSolid.hh" 53 54 class G4VPhysicalVolume; 55 class IORTDetectorConstruction; 56 class Collimator60BeamLineMessenger; 57 58 class Collimator60BeamLine : public G4VUserDetectorConstruction 59 { 60 public: 61 62 63 Collimator60BeamLine(); 64 ~Collimator60BeamLine(); 65 66 G4VPhysicalVolume* Construct(); 67 68 69 void IortBeamLineVacuumSource(); 70 void IortBeamLineTitaniumWindows(); 71 void IortBeamLineMonitorChambers(); 72 void IortBeamLineBlocks() ; 73 void IortBeamLineJunctions(); 74 void IortBeamLineFinalCollimator(); 75 76 77 void SetInnerRadiusFinalCollimatorIORT(G4double); 78 // This method allows to change the size of the inner radius of the 79 // final collimator 80 81 void SetOuterRadiusFinalCollimatorIORT(G4double); 82 // This method allows to change the size of the outer radius of the 83 // final collimator 84 85 // void SetFinalCollimatorIORTMaterial(G4String); 86 // This method allows to change the material 87 // of the final collimator 88 89 90 91 private: 92 //Collimator60 line dimensions 93 void SetDefaultDimensions(); 94 void ConstructCollimator60BeamLine(); 95 96 97 Collimator60BeamLineMessenger* collimatorMessenger; 98 G4VPhysicalVolume* physicalTreatmentRoom; 99 IORTDetectorConstruction* iortDetectorConstruction; 100 101 G4VisAttributes* blue; 102 G4VisAttributes* gray; 103 G4VisAttributes* white; 104 G4VisAttributes* red; 105 G4VisAttributes* yellow; 106 G4VisAttributes* green; 107 G4VisAttributes* darkGreen; 108 G4VisAttributes* darkOrange3; 109 G4VisAttributes* skyBlue; 110 111 // Final Collimator IORT 112 G4double innerRadiusFinalCollimatorIORT, OuterRadiusFinalCollimatorIORT; 113 G4Tubs* solidFinalCollimatorIORT; 114 G4VPhysicalVolume* physiFinalCollimatorIORT; 115 G4Material* finalCollimatorMaterialIORT; 116 117 // Junction 1 FINAL COLLIMATOR IORT 118 G4Tubs* solidGiunz1FinalCollIORT; 119 G4VPhysicalVolume* physiGiunz1FinalCollIORT; 120 G4Material* Giunz1FinalCollMaterialIORT; 121 122 // Junction 2 FINAL COLLIMATOR IORT 123 G4Tubs* solidGiunz2FinalCollIORT; 124 G4VPhysicalVolume* physiGiunz2FinalCollIORT; 125 G4Material* Giunz2FinalCollMaterialIORT; 126 127 // Junction 3 FINAL COLLIMATOR IORT 128 G4Tubs* solidGiunz3FinalCollIORT; 129 G4VPhysicalVolume* physiGiunz3FinalCollIORT; 130 G4Material* Giunz3FinalCollMaterialIORT; 131 132 // Junction 3 FINAL COLLIMATOR intIORT 133 G4Cons* solidGiunz3FinalCollIntIORT; 134 G4Material* Giunz3FinalCollMaterialIntIORT; 135 G4VPhysicalVolume* physiGiunz3FinalCollIntIORT; 136 137 // Junction 4 FINAL COLLIMATOR IORT 138 G4Tubs* solidGiunz4FinalCollIORT; 139 G4VPhysicalVolume* physiGiunz4FinalCollIORT; 140 G4Material* Giunz4FinalCollMaterialIORT; 141 142 // Junction 5 FINAL COLLIMATOR IORT 143 G4Tubs* solidGiunz5FinalCollIORT; 144 G4VPhysicalVolume* physiGiunz5FinalCollIORT; 145 G4Material* Giunz5FinalCollMaterialIORT; 146 147 // Block 1 Diameter 30 mm 148 G4Tubs* solidBlocco1IORT; 149 G4VPhysicalVolume* physiBlocco1IORT; 150 G4Material* Blocco1IORTMaterialIORT; 151 152 // Block 2 Diameter 30 mm 153 G4Tubs* solidBlocco2IORT; 154 G4VPhysicalVolume* physiBlocco2IORT; 155 G4Material* Blocco2IORTMaterialIORT; 156 157 // Block 3 Diameter 30 mm 158 G4Tubs* solidBlocco3IORT; 159 G4VPhysicalVolume* physiBlocco3IORT; 160 G4Material* Blocco3IORTMaterialIORT; 161 162 // Block 4 Internal Diameter 20 mm 163 G4Tubs* solidBlocco20mmIORT; 164 G4VPhysicalVolume* physiBlocco20mmIORT; 165 G4Material* Blocco20mmIORTMaterialIORT; 166 167 // First Chamber Monitor 1 of 2 168 G4Tubs* solidCM1_1_2IORT; 169 G4VPhysicalVolume* physiCM1_1_2IORT; 170 G4Material* CM1_1_2IORTMaterialIORT; 171 172 // First Chamber Monitor 2 of 2 173 G4Tubs* solidCM1_2_2IORT; 174 G4VPhysicalVolume* physiCM1_2_2IORT; 175 G4Material* CM1_2_2IORTMaterialIORT; 176 177 // Second Chamber Monitor 1 of 2 178 G4Tubs* solidCM2_1_2IORT; 179 G4VPhysicalVolume* physiCM2_1_2IORT; 180 G4Material* CM2_1_2IORTMaterialIORT; 181 182 // Second Chamber Monitor 2 of 2 183 G4Tubs* solidCM2_2_2IORT; 184 G4VPhysicalVolume* physiCM2_2_2IORT; 185 G4Material* CM2_2_2IORTMaterialIORT; 186 187 // Monitor Chambers Cylinder 188 G4Tubs* solidCCMIORT; 189 G4VPhysicalVolume* physiCCMIORT; 190 G4Material* CCMIORTMaterialIORT; 191 192 // Superior Final Monitor Chamber Part 1 193 G4Tubs* solidPFS1IORT; 194 G4VPhysicalVolume* physiPFS1IORT; 195 G4Material* PFS1IORTMaterialIORT; 196 197 // Superior Final Monitor Chamber Part 2 198 G4Tubs* solidPFS2IORT; 199 G4VPhysicalVolume* physiPFS2IORT; 200 G4Material* PFS2IORTMaterialIORT; 201 202 // Superior Final Monitor Chamber Part 3 203 G4Tubs* solidPFS3IORT; 204 G4VPhysicalVolume* physiPFS3IORT; 205 G4Material* PFS3IORTMaterialIORT; 206 207 // Titanium Window 208 G4Tubs* solidFTIORT; 209 G4VPhysicalVolume* physiFTIORT; 210 G4Material* FTIORTMaterialIORT; 211 212 // Vacuum Source 213 G4Tubs* solidVSIORT; 214 G4VPhysicalVolume* physiVSIORT; 215 G4Material* VSIORTMaterialIORT; 216 217 218 }; 219 #endif 220 221 222 223