File indexing completed on 2025-12-16 09:31:10
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
0030
0031
0032
0033
0034 #ifndef DetectorConstruction_h
0035 #define DetectorConstruction_h 1
0036
0037 #include "G4LogicalVolume.hh"
0038 #include "G4VUserDetectorConstruction.hh"
0039 #include "globals.hh"
0040
0041 class G4VPhysicalVolume;
0042 class G4Material;
0043 class G4MultiFunctionalDetector;
0044 class DetectorMessenger;
0045
0046
0047
0048 class DetectorConstruction : public G4VUserDetectorConstruction
0049 {
0050 public:
0051 DetectorConstruction();
0052 ~DetectorConstruction();
0053
0054 public:
0055 void SetNReplicaR(G4int);
0056 void SetNReplicaAzm(G4int);
0057 void SetAbsRadius(G4double);
0058 void SetAbsMaterial(G4String);
0059 void SetNPRadius(G4double);
0060 void SetNPMaterial(G4String);
0061 void SetTrackingCut(G4double);
0062 virtual G4VPhysicalVolume* Construct();
0063
0064 inline G4double GetNReplicaR() const { return fNreplicaR; }
0065 inline G4double GetNReplicaAzm() const { return fNreplicaAzm; }
0066 inline G4double GetAbsRadius() const { return fAbsRadius; }
0067 inline G4double GetNPRadius() const { return fNPRadius; }
0068 inline G4Material* GetNPMaterial() const { return fNPMaterial; }
0069 inline G4double GetTrackingCut() const { return fTrackingCut; }
0070 inline G4double GetNPMass() const { return fLogicalNP->GetMass(); }
0071
0072 inline G4MultiFunctionalDetector* GetMFDetector() const { return fMFD; }
0073 void PrintParameters() const;
0074 G4Region* GetTargetRegion() { return fRegion; }
0075
0076 private:
0077 void DefineMaterials();
0078 G4VPhysicalVolume* ConstructVolumes();
0079
0080 G4int fNreplicaR;
0081 G4int fNreplicaAzm;
0082 G4double fTrackingCut;
0083 G4double fNPRadius;
0084 G4double fAbsRadius;
0085 G4Material* fNPMaterial;
0086 G4Material* fAbsMaterial;
0087 G4VPhysicalVolume* pWorld;
0088 G4VPhysicalVolume* fNP;
0089 G4VPhysicalVolume* fAbs;
0090 G4LogicalVolume* fLogicalNP;
0091 G4LogicalVolume* fLogicalAbs;
0092 DetectorMessenger* fDetectorMessenger;
0093 G4MultiFunctionalDetector* fMFD;
0094 G4Region* fRegion;
0095 };
0096
0097
0098
0099 #endif