G4-DESCSS/include/DetectorConstruction.h

47 lines
1.6 KiB
C
Raw Normal View History

#ifndef DESCSS_DetectorConstruction_h
#define DESCSS_DetectorConstruction_h
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
class G4VPhysicalVolume;
class G4LogicalVolume;
2022-05-17 19:36:50 +08:00
class G4HumanPhantomMaterial;
2022-05-17 21:14:44 +08:00
class G4HumanPhantomMessenger;
class DetectorConstruction : public G4VUserDetectorConstruction {
public:
DetectorConstruction();
~DetectorConstruction() override;
G4VPhysicalVolume* Construct() override;
2022-05-17 19:36:50 +08:00
2022-05-17 21:14:44 +08:00
public:
void SetBodyPartSensitivity(G4String, G4bool);
void SetPhantomSex(G4String);
void SetPhantomModel(G4String);
2022-05-18 22:28:11 +08:00
void SetParticleType(G4String s) { particleType = s; };
2022-05-17 21:14:44 +08:00
void ConstructSDandField();
2022-05-19 15:41:19 +08:00
G4String GetParticleType() { return particleType; };
2022-05-19 11:47:35 +08:00
std::vector<G4String> GetSensitiveList() const { return sensitiveList; };
2022-05-17 21:14:44 +08:00
2022-05-17 19:36:50 +08:00
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:
2022-05-17 21:14:44 +08:00
G4String sex = "Male";
G4String model = "MIRD";
2022-05-19 15:41:19 +08:00
G4String particleType = "TE";
2022-05-19 11:47:35 +08:00
std::vector<G4String> sensitiveList;
2022-05-17 19:36:50 +08:00
std::map<std::string, G4bool> sensitivities;
2022-05-17 21:14:44 +08:00
G4HumanPhantomMaterial* material;
G4HumanPhantomMessenger* messenger;
};
#endif