Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 /// \file medical/GammaTherapy/include/Detecto 28 /// \brief Definition of the DetectorConstruct 29 // 30 #ifndef DetectorConstruction_h 31 #define DetectorConstruction_h 1 32 33 // ------------------------------------------- 34 // GEANT4 test IBREM 35 // 36 // Authors: V.Grichine, V.Ivanchenko 37 // 38 // Modified: 39 // 40 // 18-02-03 V.Ivanchenko create 41 // 42 // ------------------------------------------- 43 44 //....oooOO0OOooo........oooOO0OOooo........oo 45 //....oooOO0OOooo........oooOO0OOooo........oo 46 47 #include "G4Material.hh" 48 #include "G4VPhysicalVolume.hh" 49 #include "G4VUserDetectorConstruction.hh" 50 51 //....oooOO0OOooo........oooOO0OOooo........oo 52 53 class CheckVolumeSD; 54 class PhantomSD; 55 class TargetSD; 56 class DetectorMessenger; 57 class G4LogicalVolume; 58 59 class DetectorConstruction : public G4VUserDet 60 { 61 public: 62 DetectorConstruction(); 63 virtual ~DetectorConstruction(); 64 65 G4VPhysicalVolume* Construct(); 66 67 void SetTarget1Material(const G4String& m) 68 void SetTarget2Material(const G4String& m) 69 70 inline G4double GetGeneratorPosZ() const { 71 72 inline void SetGap(G4double val) { fDelta 73 inline void SetTarget1Z(G4double val) { fT 74 inline void SetTarget2Z(G4double val) { fT 75 inline void SetMylarZ(G4double val) { fMyl 76 inline void SetCheckShiftZ(G4double val) { 77 inline void SetAbsorberZ(G4double val) { f 78 inline void SetAbsorberShiftZ(G4double val 79 80 inline void SetNumberDivZ(G4int val) { fNu 81 inline void SetNumberDivR(G4int val) { fNu 82 83 const G4VPhysicalVolume* GetCheckVolume() 84 const G4VPhysicalVolume* GetGasVolume() co 85 const G4VPhysicalVolume* GetPhantom() cons 86 const G4VPhysicalVolume* GetTarget1() cons 87 const G4VPhysicalVolume* GetTarget2() cons 88 89 G4double GetAbsorberZ() const { return fPh 90 G4double GetAbsorberR() const { return fAb 91 G4double GetScoreZ() const { return fAbsor 92 93 G4int GetNumberDivZ() const { return fNumZ 94 G4int GetNumberDivR() const { return fNumR 95 96 void SetMaxEnergy(G4double e) { fMaxEnergy 97 inline G4double GetMaxEnergy() const { ret 98 G4int GetNumberDivE() const { return fNumE 99 inline void SetNumberDivE(G4int val) { fNu 100 101 void SetVerbose(G4bool v) { fVerbose = v; 102 inline G4bool GetVerbose() const { return 103 104 void DumpGeometryParameters(); 105 106 private: 107 void InitialiseGeometryParameters(); 108 109 DetectorConstruction& operator=(const Dete 110 DetectorConstruction(const DetectorConstru 111 void ConstructSDandField(); 112 113 G4bool fVerbose; 114 115 G4int fNumZ; 116 G4int fNumR; 117 118 G4int fNumE; 119 G4double fMaxEnergy; 120 121 G4LogicalVolume* fLogicCheckVolume; 122 std::vector<G4LogicalVolume*> fLogicRing; 123 G4LogicalVolume* fLogicPh; 124 G4LogicalVolume* fLogicAbsorber; 125 126 G4double fWorldXY, fWorldZ; 127 G4double fDelta; 128 G4double fGeneratorPosZ; 129 130 G4double fTargetRadius, fTarget1Z, fTarget 131 G4double fTarget2Z, fTarget2PosZ; 132 133 G4double fGasVolumeRadius, fGasVolumeZ, fG 134 G4double fAirZ, fMylarVolumeZ, fMylarPosZ; 135 G4double fCheckVolumeRadius, fCheckVolumeZ 136 G4double fTargetVolumeZ, fTargetVolumePosZ 137 G4double fShiftZPh; 138 139 G4double fPhantomRadius, fPhantomZ, fPhant 140 G4double fAbsorberRadius, fAbsorberZ, fAbs 141 G4double fDistanceVacuumTarget, fWindowZ, 142 143 G4Material* fWorldMaterial; 144 145 G4Material* fTarget1Material; 146 G4Material* fTarget2Material; 147 G4Material* fMylar; 148 G4Material* fWindowMaterial; 149 150 G4Material* fLightMaterial; 151 G4Material* fAbsorberMaterial; 152 153 G4LogicalVolume* fLogicTarget1; 154 G4LogicalVolume* fLogicTarget2; 155 156 G4VPhysicalVolume* fCheckVolume; 157 G4VPhysicalVolume* fGasVolume; 158 G4VPhysicalVolume* fPhantom; 159 G4VPhysicalVolume* fTarget1; 160 G4VPhysicalVolume* fTarget2; 161 162 DetectorMessenger* fMessenger; 163 }; 164 165 //....oooOO0OOooo........oooOO0OOooo........oo 166 167 #endif 168