Main program of the medical/DICOM example.
More...
#include "G4RunManager.hh"
#include "globals.hh"
#include "G4UImanager.hh"
#include "Randomize.hh"
#include "G4GenericPhysicsList.hh"
#include "DicomRegularDetectorConstruction.hh"
#include "DicomNestedParamDetectorConstruction.hh"
#include "DicomPartialDetectorConstruction.hh"
#include "DicomActionInitialization.hh"
#include "DicomHandler.hh"
#include "DicomIntersectVolume.hh"
#include "QGSP_BIC.hh"
#include "G4tgrMessenger.hh"
#include "Shielding.hh"
Go to the source code of this file.
|
int | main (int argc, char **argv) |
|
Main program of the medical/DICOM example.
Definition in file DICOM.cc.
int main |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Definition at line 86 of file DICOM.cc.
References part.
90 char*
part = getenv(
"DICOM_PARTIAL_PARAM" );
91 G4bool bPartial = FALSE;
92 if( part &&
G4String(part) ==
"1" ) {
96 CLHEP::HepRandom::setTheEngine(
new CLHEP::RanecuEngine);
97 CLHEP::HepRandom::setTheSeed(24534575684783);
99 seeds[0] = 534524575674523;
100 seeds[1] = 526345623452457;
101 CLHEP::HepRandom::setTheSeeds(seeds);
104 #ifdef G4MULTITHREADED 105 char* nthread_c = getenv(
"DICOM_NTHREADS");
107 unsigned nthreads = 4;
108 unsigned env_threads = 0;
110 if(nthread_c) { env_threads = G4UIcommand::ConvertToDouble(nthread_c); }
111 if(env_threads > 0) { nthreads = env_threads; }
113 G4MTRunManager* runManager =
new G4MTRunManager;
114 runManager->SetNumberOfThreads(nthreads);
116 G4cout <<
"\n\n\tDICOM running in multithreaded mode with " << nthreads
117 <<
" threads\n\n" << G4endl;
121 G4RunManager* runManager =
new G4RunManager;
122 G4cout <<
"\n\n\tDICOM running in serial mode\n\n" << G4endl;
126 DicomDetectorConstruction* theGeometry = 0;
129 DicomFileMgr* theFileMgr = 0;
131 DicomHandler* dcmHandler = 0;
137 theFileMgr = DicomFileMgr::GetInstance();
138 theFileMgr->Convert(
"Data.dat");
142 dcmHandler =
new DicomHandler;
143 dcmHandler->CheckFileFormat();
147 char* nest = getenv(
"DICOM_NESTED_PARAM" );
148 if( nest &&
G4String(nest) ==
"1" ) {
149 theGeometry =
new DicomNestedParamDetectorConstruction();
151 theGeometry =
new DicomRegularDetectorConstruction();
154 theGeometry =
new DicomPartialDetectorConstruction();
156 runManager->SetUserInitialization(theGeometry);
161 G4VModularPhysicsList* phys =
new Shielding();
162 runManager->SetUserInitialization(phys);
165 runManager->SetUserInitialization(
new DicomActionInitialization());
167 runManager->Initialize();
169 new DicomIntersectVolume();
173 G4VisManager* visManager =
new G4VisExecutive;
174 visManager->Initialize();
178 G4UImanager* UImanager = G4UImanager::GetUIpointer();
184 G4UIExecutive* ui =
new G4UIExecutive(argc, argv);
186 UImanager->ApplyCommand(
"/control/execute vis.mac");
194 G4String command =
"/control/execute ";
196 UImanager->ApplyCommand(command+fileName);