78{
79
81 if ( argc == 1 ) {
83 }
84
86 char* part = std::getenv( "DICOM_PARTIAL_PARAM" );
87 G4bool bPartial = FALSE;
88 if( part &&
G4String(part) ==
"1" ) {
89 bPartial = TRUE;
90 }
91
93 CLHEP::HepRandom::setTheSeed(G4long(24534575684783));
94 G4long seeds[2];
95 seeds[0] = G4long(534524575674523);
96 seeds[1] = G4long(526345623452457);
97 CLHEP::HepRandom::setTheSeeds(seeds);
98
99
100 char* nthread_c = std::getenv("DICOM_NTHREADS");
101
102 unsigned nthreads = 4;
103 unsigned env_threads = 0;
104
105 if(nthread_c) {env_threads=unsigned(G4UIcommand::ConvertToDouble(nthread_c));}
106 if(env_threads > 0) {nthreads=env_threads;}
107
108 auto* runManager = G4RunManagerFactory::CreateRunManager();
109 runManager->SetNumberOfThreads(nthreads);
110
112
113#ifdef G4_DCMTK
115#else
117#endif
118
119 if( !bPartial ){
120#ifdef G4_DCMTK
121
123 theFileMgr->
Convert(
"Data.dat");
124
125#else
126
129#endif
130
131
132 char* nest = std::getenv( "DICOM_NESTED_PARAM" );
133 if( nest &&
G4String(nest) ==
"1" ) {
135 } else {
137 }
138 } else {
140 }
141 runManager->SetUserInitialization(theGeometry);
142
143
144
145
147 runManager->SetUserInitialization(phys);
148
149
151
152 runManager->Initialize();
153
155
156
158 visManager->Initialize();
159
160 G4UImanager* UImanager = G4UImanager::GetUIpointer();
161
162 if (ui)
163 {
164 UImanager->ApplyCommand("/control/execute vis.mac");
165 ui->SessionStart();
166 delete ui;
167 }
168 else
169 {
170 G4String command =
"/control/execute ";
172 UImanager->ApplyCommand(command+fileName);
173 }
174
175 delete visManager;
176 delete runManager;
177
178 if( !bPartial ) {
179#ifdef G4_DCMTK
180 delete theFileMgr;
181#endif
182 }
183
184 return 0;
185}
static DicomFileMgr * GetInstance()
void Convert(G4String fFileName)
static DicomHandler * Instance()
Manages intersections of DICOM files with volumes.
Construct the phantom using DicomPhantomParameterisationColour.
Construct a DICOM Geant4 geometry produced from the intersetion of a DICOM file and a volume.
DicomRegularDetectorConstruction class.