File indexing completed on 2026-09-11 08:30:18
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
0028
0029 #ifndef DetectorConstruction_h
0030 #define DetectorConstruction_h 1
0031
0032 #include "G4VUserDetectorConstruction.hh"
0033 #include "globals.hh"
0034
0035 class G4LogicalVolume;
0036 class G4Material;
0037 class DetectorMessenger;
0038
0039
0040
0041 class DetectorConstruction : public G4VUserDetectorConstruction
0042 {
0043 public:
0044 DetectorConstruction();
0045 ~DetectorConstruction() override;
0046
0047 public:
0048 G4VPhysicalVolume* Construct() override;
0049
0050 G4Material* MaterialWithSingleIsotope(G4String, G4String, G4double, G4int, G4int);
0051
0052 void SetAbsorRadius(G4double);
0053 void SetAbsorLength(G4double);
0054 void SetAbsorMaterial(G4String);
0055
0056 void SetContainThickness(G4double);
0057 void SetContainMaterial(G4String);
0058
0059 public:
0060 G4double GetAbsorRadius() { return fAbsorRadius; };
0061 G4double GetAbsorLength() { return fAbsorLength; };
0062 G4Material* GetAbsorMaterial() { return fAbsorMaterial; };
0063
0064 G4double GetContainThickness() { return fContainThickness; };
0065 G4Material* GetContainMaterial() { return fContainMaterial; };
0066
0067 void PrintParameters();
0068
0069 private:
0070 G4double fAbsorRadius = 0., fAbsorLength = 0.;
0071 G4Material* fAbsorMaterial = nullptr;
0072 G4LogicalVolume* fLAbsor = nullptr;
0073
0074 G4double fContainThickness = 0.;
0075 G4Material* fContainMaterial = nullptr;
0076 G4LogicalVolume* fLContain = nullptr;
0077
0078 G4Material* fWorldMaterial = nullptr;
0079 G4VPhysicalVolume* fPWorld = nullptr;
0080
0081 DetectorMessenger* fDetectorMessenger = nullptr;
0082
0083 private:
0084 void DefineMaterials();
0085 G4VPhysicalVolume* ConstructVolumes();
0086 };
0087
0088
0089
0090 #endif