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 Collimator100BeamLine_H 42 #define Collimator100BeamLine_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 Collimator100BeamLineMessenger; 57 58 class Collimator100BeamLine : public G4VUserDetectorConstruction 59 { 60 public: 61 62 63 Collimator100BeamLine(); 64 ~Collimator100BeamLine(); 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 //Collimator100 line dimensions 93 void SetDefaultDimensions(); 94 void ConstructCollimator100BeamLine(); 95 96 97 Collimator100BeamLineMessenger* 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; 113 G4double OuterRadiusFinalCollimatorIORT; 114 G4Tubs* solidFinalCollimatorIORT; 115 G4VPhysicalVolume* physiFinalCollimatorIORT; 116 G4Material* finalCollimatorMaterialIORT; 117 118 // Junction 1 FINAL COLLIMATOR IORT 119 G4Tubs* solidGiunz1FinalCollIORT; 120 G4VPhysicalVolume* physiGiunz1FinalCollIORT; 121 G4Material* Giunz1FinalCollMaterialIORT; 122 123 // Junction 2 FINAL COLLIMATOR IORT 124 G4Tubs* solidGiunz2FinalCollIORT; 125 G4VPhysicalVolume* physiGiunz2FinalCollIORT; 126 G4Material* Giunz2FinalCollMaterialIORT; 127 128 // Junction 3 FINAL COLLIMATOR IORT 129 G4Tubs* solidGiunz3FinalCollIORT; 130 G4VPhysicalVolume* physiGiunz3FinalCollIORT; 131 G4Material* Giunz3FinalCollMaterialIORT; 132 133 // Junction 3 FINAL COLLIMATOR intIORT 134 G4Cons* solidGiunz3FinalCollIntIORT; 135 G4Material* Giunz3FinalCollMaterialIntIORT; 136 G4VPhysicalVolume* physiGiunz3FinalCollIntIORT; 137 138 // Junction 4 FINAL COLLIMATOR IORT 139 G4Tubs* solidGiunz4FinalCollIORT; 140 G4VPhysicalVolume* physiGiunz4FinalCollIORT; 141 G4Material* Giunz4FinalCollMaterialIORT; 142 143 // Junction 5 FINAL COLLIMATOR IORT 144 G4Tubs* solidGiunz5FinalCollIORT; 145 G4VPhysicalVolume* physiGiunz5FinalCollIORT; 146 G4Material* Giunz5FinalCollMaterialIORT; 147 148 // Block 1 Diameter 30 mm 149 G4Tubs* solidBlocco1IORT; 150 G4VPhysicalVolume* physiBlocco1IORT; 151 G4Material* Blocco1IORTMaterialIORT; 152 153 // Block 2 Diameter 30 mm 154 G4Tubs* solidBlocco2IORT; 155 G4VPhysicalVolume* physiBlocco2IORT; 156 G4Material* Blocco2IORTMaterialIORT; 157 158 // Block 3 Diameter 30 mm 159 G4Tubs* solidBlocco3IORT; 160 G4VPhysicalVolume* physiBlocco3IORT; 161 G4Material* Blocco3IORTMaterialIORT; 162 163 // Block 4 Internal Diameter 20 mm 164 G4Tubs* solidBlocco20mmIORT; 165 G4VPhysicalVolume* physiBlocco20mmIORT; 166 G4Material* Blocco20mmIORTMaterialIORT; 167 168 // First Chamber Monitor 1 of 2 169 G4Tubs* solidCM1_1_2IORT; 170 G4VPhysicalVolume* physiCM1_1_2IORT; 171 G4Material* CM1_1_2IORTMaterialIORT; 172 173 // First Chamber Monitor 2 of 2 174 G4Tubs* solidCM1_2_2IORT; 175 G4VPhysicalVolume* physiCM1_2_2IORT; 176 G4Material* CM1_2_2IORTMaterialIORT; 177 178 // Second Chamber Monitor 1 of 2 179 G4Tubs* solidCM2_1_2IORT; 180 G4VPhysicalVolume* physiCM2_1_2IORT; 181 G4Material* CM2_1_2IORTMaterialIORT; 182 183 // Second Chamber Monitor 2 of 2 184 G4Tubs* solidCM2_2_2IORT; 185 G4VPhysicalVolume* physiCM2_2_2IORT; 186 G4Material* CM2_2_2IORTMaterialIORT; 187 188 // Monitor Chambers Cylinder 189 G4Tubs* solidCCMIORT; 190 G4VPhysicalVolume* physiCCMIORT; 191 G4Material* CCMIORTMaterialIORT; 192 193 // Superior Final Monitor Chamber Part 1 194 G4Tubs* solidPFS1IORT; 195 G4VPhysicalVolume* physiPFS1IORT; 196 G4Material* PFS1IORTMaterialIORT; 197 198 // Superior Final Monitor Chamber Part 2 199 G4Tubs* solidPFS2IORT; 200 G4VPhysicalVolume* physiPFS2IORT; 201 G4Material* PFS2IORTMaterialIORT; 202 203 // Superior Final Monitor Chamber Part 3 204 G4Tubs* solidPFS3IORT; 205 G4VPhysicalVolume* physiPFS3IORT; 206 G4Material* PFS3IORTMaterialIORT; 207 208 // Titanium Window 209 G4Tubs* solidFTIORT; 210 G4VPhysicalVolume* physiFTIORT; 211 G4Material* FTIORTMaterialIORT; 212 213 // Vacuum Source 214 G4Tubs* solidVSIORT; 215 G4VPhysicalVolume* physiVSIORT; 216 G4Material* VSIORTMaterialIORT; 217 218 219 }; 220 #endif 221 222 223 224