Import Geant4 8.3.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.106 2006/11/17 17:52:57 flei Exp $
|
||||
$Id: History,v 1.108 2007/03/08 23:56:12 asaim Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -16,6 +16,14 @@ committal in the CVS repository !
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
March 8, 2007, M.Asai (event-V08-02-01)
|
||||
- Consolidation of previous tag with a new flag in G4EventManager.
|
||||
|
||||
March 5, 2007, M.Asai (event-V08-02-00)
|
||||
- Prevent from unnecessary creation of G4String objects in G4Event, which were
|
||||
default for random number status.
|
||||
|
||||
November 17, 2006, F.Lei (event-V08-01-03)
|
||||
- Improved implementation of flat_sampling (biasing) for multiple sources in GPS.
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Event.hh,v 1.13 2006/11/03 03:11:13 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// $Id: G4Event.hh,v 1.17 2007/03/08 23:56:12 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
//
|
||||
|
||||
#ifndef G4Event_h
|
||||
@@ -95,11 +95,11 @@ class G4Event
|
||||
G4VUserEventInformation* userInfo;
|
||||
|
||||
// Initial random number engine status before primary particle generation
|
||||
G4String randomNumberStatus;
|
||||
G4String* randomNumberStatus;
|
||||
G4bool validRandomNumberStatus;
|
||||
|
||||
// Initial random number engine status before event processing
|
||||
G4String randomNumberStatusForProcessing;
|
||||
G4String* randomNumberStatusForProcessing;
|
||||
G4bool validRandomNumberStatusForProcessing;
|
||||
|
||||
// Flag to keep the event until the end of run
|
||||
@@ -116,14 +116,14 @@ class G4Event
|
||||
{ trajectoryContainer = value; }
|
||||
inline void SetEventAborted()
|
||||
{ eventAborted = true; }
|
||||
inline void SetRandomNumberStatus(G4String st)
|
||||
inline void SetRandomNumberStatus(G4String& st)
|
||||
{
|
||||
randomNumberStatus = st;
|
||||
randomNumberStatus = new G4String(st);
|
||||
validRandomNumberStatus = true;
|
||||
}
|
||||
inline void SetRandomNumberStatusForProcessing(G4String st)
|
||||
inline void SetRandomNumberStatusForProcessing(G4String& st)
|
||||
{
|
||||
randomNumberStatusForProcessing = st;
|
||||
randomNumberStatusForProcessing = new G4String(st);
|
||||
validRandomNumberStatusForProcessing = true;
|
||||
}
|
||||
inline void KeepTheEvent(G4bool vl=true)
|
||||
@@ -186,13 +186,13 @@ class G4Event
|
||||
{
|
||||
if(!validRandomNumberStatus)
|
||||
{ G4Exception("Random number status is not available for this event."); }
|
||||
return randomNumberStatus;
|
||||
return *randomNumberStatus;
|
||||
}
|
||||
inline const G4String& GetRandomNumberStatusForProcessing() const
|
||||
{
|
||||
if(!validRandomNumberStatusForProcessing)
|
||||
{ G4Exception("Random number status is not available for this event."); }
|
||||
return randomNumberStatusForProcessing;
|
||||
return *randomNumberStatusForProcessing;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EventManager.hh,v 1.18 2006/11/03 03:11:13 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// $Id: G4EventManager.hh,v 1.22 2007/03/08 23:56:12 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -137,6 +137,9 @@ class G4EventManager
|
||||
G4UserTrackingAction* userTrackingAction;
|
||||
G4UserSteppingAction* userSteppingAction;
|
||||
|
||||
G4int storetRandomNumberStatusToG4Event;
|
||||
G4String randomNumberStatusToG4Event;
|
||||
|
||||
public: // with description
|
||||
inline const G4Event* GetConstCurrentEvent()
|
||||
{ return currentEvent; }
|
||||
@@ -206,7 +209,8 @@ class G4EventManager
|
||||
{ return transformer; }
|
||||
inline void SetPrimaryTransformer(G4PrimaryTransformer* tf)
|
||||
{ transformer = tf; }
|
||||
|
||||
inline void StoreRandomNumberStatusToG4Event(G4int vl)
|
||||
{ storetRandomNumberStatusToG4Event = vl; }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Event.cc,v 1.11 2006/11/03 03:11:13 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// $Id: G4Event.cc,v 1.14 2007/03/07 02:44:16 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
//
|
||||
|
||||
// G4Event
|
||||
@@ -44,14 +44,18 @@ G4Event::G4Event()
|
||||
:eventID(0),
|
||||
thePrimaryVertex(0),numberOfPrimaryVertex(0),
|
||||
HC(0),DC(0),trajectoryContainer(0),eventAborted(false),userInfo(0),
|
||||
validRandomNumberStatus(false),keepTheEvent(false)
|
||||
randomNumberStatus(0),validRandomNumberStatus(false),
|
||||
randomNumberStatusForProcessing(0),validRandomNumberStatusForProcessing(false),
|
||||
keepTheEvent(false)
|
||||
{;}
|
||||
|
||||
G4Event::G4Event(G4int evID)
|
||||
:eventID(evID),
|
||||
thePrimaryVertex(0),numberOfPrimaryVertex(0),
|
||||
HC(0),DC(0),trajectoryContainer(0),eventAborted(false),userInfo(0),
|
||||
validRandomNumberStatus(false),keepTheEvent(false)
|
||||
randomNumberStatus(0),validRandomNumberStatus(false),
|
||||
randomNumberStatusForProcessing(0),validRandomNumberStatusForProcessing(false),
|
||||
keepTheEvent(false)
|
||||
{;}
|
||||
|
||||
G4Event::~G4Event()
|
||||
@@ -65,6 +69,8 @@ G4Event::~G4Event()
|
||||
delete trajectoryContainer;
|
||||
}
|
||||
if(userInfo) delete userInfo;
|
||||
if(validRandomNumberStatus) delete randomNumberStatus;
|
||||
if(validRandomNumberStatusForProcessing) delete randomNumberStatusForProcessing;
|
||||
}
|
||||
|
||||
G4int G4Event::operator==(const G4Event &right) const
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EventManager.cc,v 1.26 2006/11/03 03:11:13 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// $Id: G4EventManager.cc,v 1.30 2007/03/08 23:56:12 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
//
|
||||
//
|
||||
//
|
||||
@@ -49,7 +49,8 @@ G4EventManager* G4EventManager::GetEventManager()
|
||||
|
||||
G4EventManager::G4EventManager()
|
||||
:currentEvent(0),trajectoryContainer(0),
|
||||
verboseLevel(0),tracking(false),abortRequested(false)
|
||||
verboseLevel(0),tracking(false),abortRequested(false),
|
||||
storetRandomNumberStatusToG4Event(false)
|
||||
{
|
||||
if(fpEventManager)
|
||||
{
|
||||
@@ -108,9 +109,13 @@ void G4EventManager::DoProcessing(G4Event* anEvent)
|
||||
}
|
||||
currentEvent = anEvent;
|
||||
stateManager->SetNewState(G4State_EventProc);
|
||||
std::ostringstream oss;
|
||||
CLHEP::HepRandom::saveFullState(oss);
|
||||
currentEvent->SetRandomNumberStatusForProcessing(oss.str());
|
||||
if(storetRandomNumberStatusToG4Event>1)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
CLHEP::HepRandom::saveFullState(oss);
|
||||
randomNumberStatusToG4Event = oss.str();
|
||||
currentEvent->SetRandomNumberStatusForProcessing(randomNumberStatusToG4Event);
|
||||
}
|
||||
|
||||
// Reseting Navigator has been moved to G4Eventmanager, so that resetting
|
||||
// is now done for every event.
|
||||
@@ -334,15 +339,19 @@ void G4EventManager::ProcessOneEvent(G4Event* anEvent)
|
||||
#include "G4HepMCInterface.hh"
|
||||
void G4EventManager::ProcessOneEvent(const HepMC::GenEvent* hepmcevt,G4Event* anEvent)
|
||||
{
|
||||
static G4String randStat;
|
||||
trackIDCounter = 0;
|
||||
G4bool tempEvent = false;
|
||||
if(!anEvent)
|
||||
{
|
||||
anEvent = new G4Event();
|
||||
tempEvent = true;
|
||||
}
|
||||
if(storetRandomNumberStatusToG4Event==1 || storetRandomNumberStatusToG4Event==3)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
CLHEP::HepRandom::saveFullState(oss);
|
||||
anEvent->SetRandomNumberStatus(oss.str());
|
||||
anEvent->SetRandomNumberStatus(randStat=oss.str());
|
||||
}
|
||||
G4HepMCInterface::HepMC2G4(hepmcevt,anEvent);
|
||||
DoProcessing(anEvent);
|
||||
@@ -353,15 +362,19 @@ void G4EventManager::ProcessOneEvent(const HepMC::GenEvent* hepmcevt,G4Event* an
|
||||
|
||||
void G4EventManager::ProcessOneEvent(G4TrackVector* trackVector,G4Event* anEvent)
|
||||
{
|
||||
static G4String randStat;
|
||||
trackIDCounter = 0;
|
||||
G4bool tempEvent = false;
|
||||
if(!anEvent)
|
||||
{
|
||||
anEvent = new G4Event();
|
||||
tempEvent = true;
|
||||
}
|
||||
if(storetRandomNumberStatusToG4Event==1 || storetRandomNumberStatusToG4Event==3)
|
||||
{
|
||||
std::ostringstream oss;
|
||||
CLHEP::HepRandom::saveFullState(oss);
|
||||
anEvent->SetRandomNumberStatus(oss.str());
|
||||
anEvent->SetRandomNumberStatus(randStat=oss.str());
|
||||
}
|
||||
StackTracks(trackVector,false);
|
||||
DoProcessing(anEvent);
|
||||
|
||||
Reference in New Issue
Block a user