File indexing completed on 2025-01-18 09:16:36
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef GammaKnifeDetectorConstruction_H
0028 #define GammaKnifeDetectorConstruction_H 1
0029
0030 #include "globals.hh"
0031 #include "G4VUserDetectorConstruction.hh"
0032 #include "G4RotationMatrix.hh"
0033
0034 class G4VPhysicalVolume;
0035 class G4LogicalVolume;
0036 class G4Tubs;
0037 class G4Cons;
0038 class GammaKnifeBeamLine;
0039 class GammaKnifeDetectorMessenger;
0040
0041
0042 class GammaKnifeDetectorConstruction : public G4VUserDetectorConstruction
0043 {
0044 public:
0045
0046 GammaKnifeDetectorConstruction();
0047
0048 ~GammaKnifeDetectorConstruction();
0049
0050 G4VPhysicalVolume* Construct();
0051
0052 private:
0053
0054 void ConstructBeamLine();
0055
0056
0057
0058 void UpdateHelmet();
0059
0060
0061
0062
0063 public:
0064
0065
0066
0067 void SetHelmetSize(G4int);
0068
0069
0070 private:
0071
0072 G4VPhysicalVolume* physicalTreatmentRoom;
0073
0074 G4VPhysicalVolume* patientPhysicalVolume;
0075 G4LogicalVolume* patientLogicalVolume;
0076 G4Cons* solidColl_helmet;
0077
0078
0079 G4Tubs* solidTube_source;
0080 G4LogicalVolume* logicTube_source;
0081 G4VPhysicalVolume* physiTube_source;
0082
0083 G4Tubs* solidTube;
0084 G4LogicalVolume* logicTube;
0085 G4VPhysicalVolume* physiTube;
0086
0087 G4Tubs* solidTube_Al;
0088 G4LogicalVolume* logicTube_Al;
0089 G4VPhysicalVolume* physiTube_Al;
0090
0091 G4Tubs* solidTube_Fe;
0092 G4LogicalVolume* logicTube_Fe;
0093 G4VPhysicalVolume* physiTube_Fe;
0094
0095 G4int helmetSize;
0096
0097 G4Tubs* solidTube_post;
0098 G4LogicalVolume* logicTube_post;
0099 G4VPhysicalVolume* physiTube_post;
0100
0101 G4Tubs* solidTube_coll;
0102 G4LogicalVolume* logicTube_coll;
0103 G4VPhysicalVolume* physiTube_coll;
0104
0105 G4Tubs* solidTube_coll_Fe;
0106 G4LogicalVolume* logicTube_coll_Fe;
0107 G4VPhysicalVolume* physiTube_coll_Fe;
0108
0109
0110 G4Cons* solidColl_fixed;
0111 G4LogicalVolume* logicColl_fixed;
0112 G4VPhysicalVolume* physiColl_fixed;
0113
0114 G4Cons* solidColl_fixed_Fe;
0115 G4LogicalVolume* logicColl_fixed_Fe;
0116 G4VPhysicalVolume* physiColl_fixed_Fe;
0117
0118
0119 G4LogicalVolume* logicColl_helmet;
0120 G4VPhysicalVolume* physiColl_helmet;
0121
0122 G4Cons* solidColl_helmet_Fe;
0123 G4LogicalVolume* logicColl_helmet_Fe;
0124 G4VPhysicalVolume* physiColl_helmet_Fe;
0125
0126
0127 GammaKnifeDetectorMessenger* detectorMessenger;
0128
0129 };
0130 #endif