303 #ifdef CEXMC_USE_PERSISTENCY
304 G4bool outputDataOnly(
false );
309 if ( !
parseArgs( argc, argv, cmdLineData ) )
314 #ifdef CEXMC_USE_PERSISTENCY
320 #ifdef CEXMC_USE_CUSTOM_FILTER
326 outputDataOnly = ! cmdLineData.
outputData.empty();
336 G4cout <<
"Unknown exception caught when parsing args" <<
G4endl;
345 #ifdef CEXMC_USE_ROOT
346 CexmcHistoManager::Instance();
354 #ifdef CEXMC_USE_PERSISTENCY
355 #ifdef CEXMC_USE_CUSTOM_FILTER
356 runManager->SetCustomFilter( cmdLineData.
customFilter );
359 if ( outputDataOnly )
363 CexmcOutputDataTypeSet::const_iterator found(
366 runManager->SetUserInitialization(
369 runManager->PrintReadData( cmdLineData.
outputData );
378 uiManager->ApplyCommand(
"/control/execute " +
382 runManager->GetProductionModelType() );
388 Create( productionModelType ) );
390 dynamic_cast< CexmcPhysicsManager * >( physicsList ) );
392 physicsManager->GetProductionModel() );
394 if ( ! productionModel )
398 productionModel->GetName() <<
"' instantiated" <<
G4endl;
400 runManager->SetUserInitialization( physicsList );
403 runManager->ShouldGdmlFileBeValidated() ) );
405 runManager->SetUserInitialization( setup );
407 runManager->Initialize();
409 runManager->SetPhysicsManager( physicsManager );
416 runManager->SetUserAction(
new CexmcRunAction( physicsManager ) );
422 #ifdef CEXMC_USE_ROOT
423 CexmcHistoManager::Instance()->Initialize();
430 visManager->Initialize();
434 #ifdef CEXMC_USE_PERSISTENCY
435 if ( runManager->ProjectIsRead() )
437 runManager->ReadProject();
438 runManager->PrintReadRunData();
443 uiManager->ApplyCommand(
"/control/execute " +
447 productionModel->PrintInitialData();
456 session =
new G4UIQt( 1, argv );
457 const G4String & guiMacroName( runManager->GetGuiMacroName() );
458 if ( guiMacroName !=
"" )
459 uiManager->ApplyCommand(
"/control/execute " +
461 #ifdef CEXMC_USE_ROOTQT
462 CexmcHistoManager::Instance()->EnableLiveHistograms(
session );
479 #ifdef CEXMC_USE_PERSISTENCY
480 if ( runManager->ProjectIsSaved() )
481 runManager->SaveProject();
488 #ifdef CEXMC_USE_PERSISTENCY
489 catch ( boost::archive::archive_exception & e )
494 #ifdef CEXMC_USE_CUSTOM_FILTER
495 catch ( boost::bad_get & e )
507 #ifdef CEXMC_USE_ROOT
508 CexmcHistoManager::Destroy();
static void Destroy(void)
CexmcOutputDataTypeSet outputData
G4bool overrideExistingProject
static G4UImanager * GetUIpointer()
G4GLOB_DLL std::ostream G4cout
static G4UIterminal * session
const char * what(void) const
G4bool parseArgs(int argc, char **argv, CexmcCmdLineData &cmdLineData)
static CexmcMessenger * Instance(void)
virtual G4UIsession * SessionStart()