Import Geant4 8.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:55:03 +02:00
parent 216a75eeb1
commit fe73f43734
6714 changed files with 118229 additions and 68144 deletions
+18 -16
View File
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4RunManager.cc,v 1.90.2.1 2006/06/29 21:13:50 gunter Exp $
// GEANT4 tag $Name: geant4-08-01 $
// $Id: G4RunManager.cc,v 1.93 2006/12/13 15:49:34 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
//
//
@@ -71,7 +71,8 @@ G4RunManager::G4RunManager()
runAborted(false),initializedAtLeastOnce(false),
geometryToBeOptimized(true),runIDCounter(0),verboseLevel(0),DCtable(0),
currentRun(0),currentEvent(0),n_perviousEventsToBeStored(0),
numberOfEventToBeProcessed(0),storeRandomNumberStatus(false),currentWorld(0)
numberOfEventToBeProcessed(0),storeRandomNumberStatus(false),currentWorld(0),
nParallelWorlds(0)
{
if(fRunManager)
{ G4Exception("G4RunManager constructed twice."); }
@@ -94,6 +95,7 @@ G4RunManager::G4RunManager()
G4RunManager::~G4RunManager()
{
if(currentRun) delete currentRun;
delete timer;
delete runMessenger;
G4ParticleTable::GetParticleTable()->DeleteMessenger();
@@ -173,8 +175,9 @@ G4bool G4RunManager::ConfirmBeamOnCondition()
void G4RunManager::RunInitialization()
{
if(!(kernel->RunInitialization())) return;
if(currentRun) delete currentRun;
currentRun = 0;
if(userRunAction) currentRun = userRunAction->GenerateRun();
if(!currentRun) currentRun = new G4Run();
@@ -196,12 +199,6 @@ void G4RunManager::RunInitialization()
HepRandom::saveEngineStatus(fileN);
}
for(size_t itr=0;itr<previousEvents->size();itr++)
{ delete (*previousEvents)[itr]; }
previousEvents->clear();
for(G4int i_prev=0;i_prev<n_perviousEventsToBeStored;i_prev++)
{ previousEvents->push_back((G4Event*)0); }
if(userRunAction) userRunAction->BeginOfRunAction(currentRun);
runAborted = false;
@@ -284,15 +281,18 @@ void G4RunManager::AnalyzeEvent(G4Event* anEvent)
void G4RunManager::RunTermination()
{
for(size_t itr=0;itr<previousEvents->size();itr++)
{ delete (*previousEvents)[itr]; }
{
G4Event* prevEv = (*previousEvents)[itr];
if((prevEv) && !(prevEv->ToBeKept())) delete prevEv;
}
previousEvents->clear();
for(G4int i_prev=0;i_prev<n_perviousEventsToBeStored;i_prev++)
{ previousEvents->push_back((G4Event*)0); }
if(userRunAction) userRunAction->EndOfRunAction(currentRun);
G4VPersistencyManager* fPersM = G4VPersistencyManager::GetPersistencyManager();
if(fPersM) fPersM->Store(currentRun);
delete currentRun;
currentRun = 0;
runIDCounter++;
kernel->RunTermination();
@@ -300,6 +300,7 @@ void G4RunManager::RunTermination()
void G4RunManager::StackPreviousEvent(G4Event* anEvent)
{
if(anEvent->ToBeKept()) currentRun->StoreEvent(anEvent);
G4Event* evt;
if(n_perviousEventsToBeStored==0)
{ evt = anEvent; }
@@ -309,7 +310,7 @@ void G4RunManager::StackPreviousEvent(G4Event* anEvent)
evt = previousEvents->back();
previousEvents->pop_back();
}
delete evt;
if(!(evt->ToBeKept())) delete evt;
}
void G4RunManager::Initialize()
@@ -338,7 +339,7 @@ void G4RunManager::InitializeGeometry()
if(verboseLevel>1) G4cout << "userDetector->Construct() start." << G4endl;
kernel->DefineWorldVolume(userDetector->Construct(),false);
//////////////////////////////////////////////userDetector->ConstructParallelGeometries();
nParallelWorlds = userDetector->ConstructParallelGeometries();
geometryInitialized = true;
}
@@ -347,6 +348,7 @@ void G4RunManager::InitializePhysics()
if(physicsList)
{
if(verboseLevel>1) G4cout << "physicsList->Construct() start." << G4endl;
if(nParallelWorlds>0) physicsList->UseCoupledTransportation();
kernel->InitializePhysics();
}
else
@@ -401,7 +403,7 @@ void G4RunManager::DefineWorldVolume(G4VPhysicalVolume* worldVol,
void G4RunManager::rndmSaveThisRun()
{
G4int runNumber = runIDCounter;
if(currentRun == 0) runNumber--; //state Idle; decrease runNumber
/////////////if(currentRun == 0) runNumber--; //state Idle; decrease runNumber
if(!storeRandomNumberStatus || runNumber < 0) {
G4cerr << "Warning from G4RunManager::rndmSaveThisRun():"
<< " there is no currentRun or its RandomEngineStatus is not available."