#ifndef DetectorConstruction_H #define DetectorConstruction_H 1 class G4LogicalVolume; class G4VPhysicalVolume; #include "G4VUserDetectorConstruction.hh" #include "G4ThreeVector.hh" #include "globals.hh" class Materials; class DetectorConstructionMessenger; class GeSD; class GePD; class GeDD; class SourceNo62; class SourceHolder20210510A; class DetectorConstruction : public G4VUserDetectorConstruction { public: DetectorConstruction(); virtual ~DetectorConstruction(); virtual G4VPhysicalVolume* Construct(); G4LogicalVolume* GetSensitiveDetector(G4VPhysicalVolume* aVolume,G4int depth=0); G4LogicalVolume* GetScoringVolume() const { return fScoringVolume; } void SetSourcePos(G4ThreeVector fSourcePos) {SourcePos = fSourcePos;}; void SetGePDPos(G4ThreeVector fGePDPos) {GePDPos = fGePDPos;}; void SetGeDDPos(G4ThreeVector fGeDDPos) {GeDDPos = fGeDDPos;}; void SetMaxStep(G4double fMaxStep) {MaxStep = fMaxStep;}; void SetPhysics(G4String fPhysics) {Physics = fPhysics;}; void SetSourceHolder(G4String fSourceHolder) {SourceHolder = fSourceHolder;}; G4ThreeVector GetSourcePos(); G4String GetPhysics(); G4String GetSourceHolder(); protected: G4LogicalVolume* fScoringVolume; private: void DumpGeometricalTree(G4VPhysicalVolume* aVolume,G4int depth=0); Materials* materials; DetectorConstructionMessenger* detectorConstructionMessenger; G4LogicalVolume* SensitiveLogicalVolume; G4ThreeVector SourcePos; G4ThreeVector GePDPos; G4ThreeVector GeDDPos; G4double MaxStep; G4String Physics; G4String SourceHolder; GePD* AGePD; GeDD* AGeDD; }; #endif