File indexing completed on 2026-06-23 07:53:52
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 GB03DetectorConstruction_h
0030 #define GB03DetectorConstruction_h 1
0031
0032 #include "G4VUserDetectorConstruction.hh"
0033 #include "globals.hh"
0034
0035 class G4LogicalVolume;
0036 class G4VPhysicalVolume;
0037 class G4PVReplica;
0038 class G4Material;
0039 class G4Box;
0040 class G4GenericMessenger;
0041
0042 class GB03DetectorConstruction : public G4VUserDetectorConstruction
0043 {
0044 public:
0045 GB03DetectorConstruction(G4bool bf);
0046 ~GB03DetectorConstruction() override;
0047
0048 G4VPhysicalVolume* Construct() override;
0049 void ConstructSDandField() override;
0050
0051 void PrintCalorParameters() const;
0052 void SetAbsorberMaterial(G4String materialChoice);
0053 G4String GetAbsorberMaterial() const;
0054 void SetGapMaterial(G4String materialChoice);
0055 G4String GetGapMaterial() const;
0056 void SetNumberOfLayers(G4int nl);
0057 static G4int GetNumberOfLayers() { return fNumberOfLayers; }
0058
0059 G4int GetVerboseLevel() const { return fVerboseLevel; }
0060 void SetVerboseLevel(G4int val) { fVerboseLevel = val; }
0061
0062 private:
0063 void DefineMaterials();
0064 void SetupGeometry();
0065 void SetupDetectors();
0066 void SetupBiasing();
0067
0068
0069 static G4int fNumberOfLayers;
0070
0071 G4double fTotalThickness;
0072 G4double fLayerThickness;
0073
0074 G4bool fConstructed;
0075 static G4ThreadLocal G4bool fConstructedSDandField;
0076
0077 G4String fCalName;
0078
0079 G4Material* fWorldMaterial;
0080 G4Material* fAbsorberMaterial;
0081 G4Material* fGapMaterial;
0082 G4Material* fHodoMaterial;
0083
0084 G4Box* fLayerSolid;
0085 G4Box* fGapSolid;
0086
0087 G4LogicalVolume* fCalorLogical;
0088 G4LogicalVolume* fLayerLogical;
0089 G4LogicalVolume* fGapLogical;
0090 G4LogicalVolume* fHodoLogical;
0091
0092 G4VPhysicalVolume* fWorldPhysical;
0093 G4PVReplica* fLayerPhysical;
0094 G4VPhysicalVolume* fGapPhysical;
0095
0096 G4GenericMessenger* fDetectorMessenger;
0097
0098 G4int fVerboseLevel;
0099 G4bool fBiasingFlag;
0100 };
0101
0102 #endif