Warning, file /geant4/examples/advanced/ICRP110_HumanPhantoms/include/ICRP110PhantomConstruction.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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 #ifndef ICRP110PhantomConstruction_H
0031 #define ICRP110PhantomConstruction_H 1
0032
0033 #include "ICRP110PhantomMessenger.hh"
0034 #include "G4PSDoseDeposit3D.hh"
0035 #include "G4MultiFunctionalDetector.hh"
0036 #include "G4SDManager.hh"
0037 #include "G4VPrimitiveScorer.hh"
0038 #include "G4VUserDetectorConstruction.hh"
0039 #include "globals.hh"
0040 #include <map>
0041
0042 class G4VPhysicalVolume;
0043 class ICRP110PhantomMaterial_Female;
0044 class ICRP110PhantomMaterial_Male;
0045 class G4Material;
0046
0047 class ICRP110PhantomConstruction : public G4VUserDetectorConstruction
0048 {
0049 public:
0050 explicit ICRP110PhantomConstruction();
0051 ~ICRP110PhantomConstruction();
0052 G4VPhysicalVolume* Construct()override;
0053
0054 G4VPhysicalVolume* GetMotherVolume() {return fMotherVolume;}
0055 G4VPhysicalVolume* GetPhantumContainer() {return fPhantomContainer;}
0056
0057 inline G4int GetNumberVoxelX(){return fNVoxelX;};
0058 inline G4int GetNumberVoxelY() {return fNVoxelY;};
0059 inline G4int GetNumberVoxelZ() {return fNVoxelZ;};
0060
0061 inline G4double GetVoxelHalfDimX(){return fVoxelHalfDimX;};
0062 inline G4double GetVoxelHalfDimY() {return fVoxelHalfDimY;};
0063 inline G4double GetVoxelHalfDimZ() {return fVoxelHalfDimZ;};
0064
0065 void SetPhantomSex(G4String);
0066 void SetPhantomSection(G4String);
0067
0068 private:
0069 void ReadPhantomData(const G4String& sex, const G4String& section);
0070 void ReadPhantomDataFile(const G4String& sex, const G4String& fname, G4int);
0071 ICRP110PhantomMaterial_Female* fMaterial_Female;
0072 ICRP110PhantomMaterial_Male* fMaterial_Male;
0073 ICRP110PhantomMessenger* fMessenger;
0074
0075 G4VPhysicalVolume* fMotherVolume;
0076 G4VPhysicalVolume* fPhantomContainer;
0077 G4int fNVoxelX;
0078 G4int fNVoxelY;
0079 G4int fNVoxelZ;
0080 G4double fVoxelHalfDimX;
0081 G4double fVoxelHalfDimY;
0082 G4double fVoxelHalfDimZ;
0083 G4double fMinX;
0084 G4double fMaxX;
0085 G4double fMinY;
0086 G4double fMaxY;
0087 G4double fMinZ;
0088 G4double fMaxZ;
0089 G4int fNoFiles;
0090 G4int fNVoxels;
0091 size_t* fMateIDs;
0092 G4String fSex;
0093 G4String fSection;
0094 };
0095 #endif
0096