G4-DESCSS/include/DetectorConstruction.h

47 lines
1.6 KiB
C++

#ifndef DESCSS_DetectorConstruction_h
#define DESCSS_DetectorConstruction_h
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
class G4VPhysicalVolume;
class G4LogicalVolume;
class G4HumanPhantomMaterial;
class G4HumanPhantomMessenger;
class DetectorConstruction : public G4VUserDetectorConstruction {
public:
DetectorConstruction();
~DetectorConstruction() override;
G4VPhysicalVolume* Construct() override;
public:
void SetBodyPartSensitivity(G4String, G4bool);
void SetPhantomSex(G4String);
void SetPhantomModel(G4String);
void SetParticleType(G4String s) { particleType = s; };
void ConstructSDandField();
G4String GetParticleType() { return particleType; };
std::vector<G4String> GetSensitiveList() const { return sensitiveList; };
private:
void ConstructSectionSphere(G4LogicalVolume* fMotherLogical, G4double zBias);
void ConstructSectionCons(G4String name, G4LogicalVolume* fMotherLogical, G4double zBias, G4double pRmax1,
G4double pRmin1, G4double pRmax2, G4double pRmin2, G4double hz);
void ConstructSectionSmall(G4LogicalVolume* fMotherLogical, G4double zBias);
void ConstructSectionBig(G4LogicalVolume* fMotherLogical, G4double zBias);
void ConstructHumanPhantom(G4VPhysicalVolume* fMotherPhysics);
private:
G4String sex = "Male";
G4String model = "MIRD";
G4String particleType = "TE";
std::vector<G4String> sensitiveList;
std::map<std::string, G4bool> sensitivities;
G4HumanPhantomMaterial* material;
G4HumanPhantomMessenger* messenger;
};
#endif