File indexing completed on 2026-09-16 08:29:54
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 G4VPhysicalVolume;
0037 class G4Material;
0038 class DetectorMessenger;
0039
0040
0041
0042 class DetectorConstruction : public G4VUserDetectorConstruction
0043 {
0044 public:
0045 DetectorConstruction();
0046 ~DetectorConstruction();
0047
0048 G4VPhysicalVolume* Construct();
0049
0050 void SetMaterial(const G4String name);
0051 inline G4Material* GetMaterial() const;
0052 inline void SetThickness(const G4double value);
0053 inline G4double GetThickness() const;
0054 inline void SetDiameter(const G4double value);
0055 inline G4double GetDiameter() const;
0056 void UpdateGeometry();
0057
0058 private:
0059 G4VPhysicalVolume* ConstructLayer();
0060
0061 void PrintParameters();
0062 G4Material* fMaterial;
0063 G4LogicalVolume* fExperimentalHall_log;
0064 G4VPhysicalVolume* fExperimentalHall_phys;
0065 G4LogicalVolume* fLogicLayer;
0066 G4VPhysicalVolume* fPhysiLayer;
0067 G4LogicalVolume* fLogicScoringUpDown;
0068 G4VPhysicalVolume* fPhysiScoringUpstream;
0069 G4VPhysicalVolume* fPhysiScoringDownstream;
0070 G4LogicalVolume* fLogicScoringSide;
0071 G4VPhysicalVolume* fPhysiScoringSide;
0072 DetectorMessenger* fDetectorMessenger;
0073 G4double fThickness;
0074 G4double fDiameter;
0075 const G4double fScoringThickness = 10.0;
0076 };
0077
0078 inline G4Material* DetectorConstruction::GetMaterial() const
0079 {
0080 return fMaterial;
0081 }
0082
0083 inline void DetectorConstruction::SetThickness(const G4double value)
0084 {
0085 fThickness = value;
0086 }
0087
0088 inline G4double DetectorConstruction::GetThickness() const
0089 {
0090 return fThickness;
0091 }
0092
0093 inline void DetectorConstruction::SetDiameter(const G4double value)
0094 {
0095 fDiameter = value;
0096 }
0097
0098 inline G4double DetectorConstruction::GetDiameter() const
0099 {
0100 return fDiameter;
0101 }
0102
0103
0104
0105 #endif