68 fZSliceHeaderMerged(0),
134 z = 6.0, a = 12.011 *
g/
mole );
137 z = 1.0, a = 1.008 *
g/
mole );
140 z = 7.0, a = 14.007 *
g/
mole );
143 z = 8.0, a = 16.00 *
g/
mole );
146 z= 11.0, a = 22.98977*
g/
mole );
149 z = 16.0,a = 32.065*
g/
mole );
152 z = 17.0, a = 35.453*
g/
mole );
155 z = 19.0, a = 30.0983*
g/
mole );
158 z = 30.0, a = 30.973976*
g/
mole );
161 z = 26, a = 56.845*
g/
mole );
164 z = 12.0, a = 24.3050*
g/
mole );
167 z = 20.0, a = 40.078*
g/
mole );
170 G4int numberofElements;
175 numberofElements = 2 );
181 density = 0.217*
g/
cm3,
182 numberofElements = 9);
195 density = 0.508*
g/
cm3,
196 numberofElements = 9 );
209 density = 0.967*
g/
cm3,
210 numberofElements = 7);
221 density = 0.990*
g/
cm3,
222 numberofElements = 8 );
235 numberofElements = 2 );
241 density = 1.061*
g/
cm3,
242 numberofElements = 9 );
255 density = 1.071*
g/
cm3,
256 numberofElements = 9);
269 density = 1.159*
g/
cm3,
270 numberofElements = 12 );
286 density = 1.575*
g/
cm3,
287 numberofElements = 11 );
319 std::ifstream finDF(dataFile.c_str());
321 if(finDF.good() != 1 ) {
322 G4String descript =
"Problem reading data file: "+dataFile;
323 G4Exception(
" DicomDetectorConstruction::ReadPhantomData",
330 finDF >> compression;
351 G4cout <<
" DicomDetectorConstruction::ReadPhantomDataFile opening file "
354 std::ifstream fin(fname.c_str(), std::ios_base::in);
355 if( !fin.is_open() ) {
356 G4Exception(
"DicomDetectorConstruction::ReadPhantomDataFile",
359 G4String(
"File not found " + fname ).c_str());
363 char* part = getenv(
"DICOM_CHANGE_MATERIAL_DENSITY" );
366 if( densityDiff != -1. ) {
396 for(
G4int ii = 0; ii < nVoxels; ii++, voxelCopyNo++ ){
407 for(
G4int ii = 0; ii < nVoxels; ii++, voxelCopyNo++ ){
417 float densityBin = 0.;
418 if( densityDiff != -1.) {
429 if(
fMaterials[im]->GetName() == newMateName ) {
438 if( densityDiff != -1.) {
440 densityBin, newMateName ) );
445 G4Exception(
"DicomDetectorConstruction::ReadPhantomDataFile",
448 "Wrong index in material");
475 for(
G4int ii = 0; ii < nelem; ii++ ){
524 G4cout <<
" placing voxel container volume at " << posCentreVoxels <<
G4endl;
547 G4cout <<
"\n\n\n\n\t SET SCORER : " << voxel_logic->
GetName()
559 G4cout <<
"\n\n\n\n\t CONSTRUCT SD AND FIELD \n\n\n" <<
G4endl;
567 G4String concreteSDname =
"phantomSD";
568 std::vector<G4String> scorer_names;
569 scorer_names.push_back(concreteSDname);
584 for(std::set<G4LogicalVolume*>::iterator ite =
fScorers.begin();
G4bool RegisterPrimitive(G4VPrimitiveScorer *)
void SetScorer(G4LogicalVolume *voxel_logic)
Definition of the DicomDetectorConstruction class.
void MergeZSliceHeaders()
std::set< G4LogicalVolume * > fScorers
CLHEP::Hep3Vector G4ThreeVector
Definition of the DicomRunAction class.
G4LogicalVolume * fWorld_logic
const G4String & GetName() const
std::vector< DicomPhantomZSliceHeader * > fZSliceHeaders
static G4String ConvertToString(G4bool boolVal)
virtual G4VPhysicalVolume * Construct()
const G4Element * GetElement(G4int iel) const
Definition of the DicomRun class.
DicomPhantomZSliceHeader * fZSliceHeaderMerged
G4VPhysicalVolume * fWorld_phys
G4LogicalVolume * fContainer_logic
void ConstructPhantomContainer()
void InitialisationOfMaterials()
G4Material * BuildMaterialWithChangingDensity(const G4Material *origMate, float density, G4String newMateName)
G4GLOB_DLL std::ostream G4cout
virtual void ConstructSDandField()
static G4double ConvertToDouble(const char *st)
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4VPhysicalVolume * fContainer_phys
void AddElement(G4Element *element, G4int nAtoms)
size_t GetNumberOfElements() const
const G4String & GetName() const
std::vector< G4Material * > fMaterials
std::vector< G4Material * > fOriginalMaterials
void ReadPhantomDataFile(const G4String &fname)
const G4double * GetFractionVector() const
virtual void ConstructPhantom()=0
DicomDetectorConstruction()
~DicomDetectorConstruction()
G4GLOB_DLL std::ostream G4cerr
std::map< G4int, G4double > fDensityDiffs