47 lines
1.6 KiB
C++
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
|