47 { 
return fpEventManager; }
 
   50 :currentEvent(0),trajectoryContainer(0),
 
   51  verboseLevel(0),tracking(false),abortRequested(false),
 
   52  storetRandomNumberStatusToG4Event(false)
 
   57   "G4EventManager::G4EventManager() has already been made.");
 
   67   fpEventManager = 
this;
 
   69   userStackingAction = 0;
 
   70   userTrackingAction = 0;
 
   71   userSteppingAction = 0;
 
   82    delete trackContainer;
 
   86    if(userEventAction) 
delete userEventAction;
 
   99 void G4EventManager::DoProcessing(
G4Event* anEvent)
 
  101   abortRequested = 
false;
 
  107                 "IllegalApplicationState -- Geometry is not closed : cannot process an event.");
 
  110   currentEvent = anEvent;
 
  112   if(storetRandomNumberStatusToG4Event>1)
 
  114     std::ostringstream oss;
 
  116     randomNumberStatusToG4Event = oss.str();
 
  131   if ( verboseLevel > 0 )
 
  133     G4cout << 
"=====================================" << 
G4endl;
 
  134     G4cout << 
"  G4EventManager::ProcessOneEvent()  " << 
G4endl;
 
  135     G4cout << 
"=====================================" << 
G4endl;
 
  141 #ifdef G4_STORE_TRAJECTORY 
  142   trajectoryContainer = 0;
 
  152   if ( verboseLevel > 1 )
 
  155          << 
" vertices passed from G4Event." << 
G4endl;
 
  160   { StackTracks( transformer->
GimmePrimaries( currentEvent, trackIDCounter ),true ); }
 
  163   if ( verboseLevel > 0 )
 
  166          << 
"are passed from G4EventTransformer." << 
G4endl;
 
  167     G4cout << 
"!!!!!!! Now start processing an event !!!!!!!" << 
G4endl;
 
  172   while( ( track = trackContainer->
PopNextTrack(&previousTrajectory) ) != 0 )
 
  176     if ( verboseLevel > 1 )
 
  180      << 
") is passed to G4TrackingManager." << 
G4endl;
 
  190     if ( verboseLevel > 0 )
 
  194          << 
") is processed with stopping code " << istop << 
G4endl;
 
  199 #ifdef G4_STORE_TRAJECTORY 
  202     if(previousTrajectory)
 
  206       aTrajectory = previousTrajectory;
 
  210       if(!trajectoryContainer)
 
  213       trajectoryContainer->
insert(aTrajectory);
 
  223         StackTracks( secondaries );
 
  228         StackTracks( secondaries );
 
  232         StackTracks( secondaries );
 
  237         G4cout << 
"Illeagal TrackStatus returned from G4TrackingManager!" 
  243           for(
size_t i=0;i<secondaries->size();i++)
 
  244           { 
delete (*secondaries)[i]; }
 
  245           secondaries->clear();
 
  253   if ( verboseLevel > 0 )
 
  255     G4cout << 
"NULL returned from G4StackManager." << 
G4endl;
 
  256     G4cout << 
"Terminate current event processing." << 
G4endl;
 
  267   abortRequested = 
false;
 
  277     size_t n_passedTrack = trackVector->size();
 
  278     if( n_passedTrack == 0 ) 
return;
 
  279     for( 
size_t i = 0; i < n_passedTrack; i++ )
 
  281       newTrack = (*trackVector)[ i ];
 
  296       if ( verboseLevel > 1 )
 
  298         G4cout << 
"A new track " << newTrack 
 
  301          << 
") is passed to G4StackManager." << 
G4endl;
 
  305     trackVector->clear();
 
  311   userEventAction = userAction;
 
  317   userStackingAction = userAction;
 
  323   userTrackingAction = userAction;
 
  329   userSteppingAction = userAction;
 
  336   DoProcessing(anEvent);
 
  342   if (!randStat) randStat = 
new G4String;
 
  350   if(storetRandomNumberStatusToG4Event==1 || storetRandomNumberStatusToG4Event==3)
 
  352     std::ostringstream oss;
 
  356   StackTracks(trackVector,
false);
 
  357   DoProcessing(anEvent);
 
  369                 "G4VUserEventInformation cannot be set because of ansense of G4Event.");
 
  390   abortRequested = 
true;
 
  391   trackContainer->
clear();
 
G4int GetParentID() const 
 
G4VTrajectory * GimmeTrajectory() const 
 
G4VUserEventInformation * GetUserInformation() const 
 
void ProcessOneTrack(G4Track *apValueG4Track)
 
void SetOriginTouchableHandle(const G4TouchableHandle &apValue)
 
const G4DynamicParticle * GetDynamicParticle() const 
 
virtual void EndOfEventAction(const G4Event *anEvent)
 
G4int GetNumberOfPrimaryVertex() const 
 
G4int GetNTotalTrack() const 
 
G4TrackStatus GetTrackStatus() const 
 
G4Navigator * GetNavigatorForTracking() const 
 
void SetRandomNumberStatusForProcessing(G4String &st)
 
void SetHCofThisEvent(G4HCofThisEvent *value)
 
virtual void BeginOfEventAction(const G4Event *anEvent)
 
G4Track * PopNextTrack(G4VTrajectory **newTrajectory)
 
void TerminateCurrentEvent(G4HCofThisEvent *HCE)
 
virtual void MergeTrajectory(G4VTrajectory *secondTrajectory)=0
 
static G4StateManager * GetStateManager()
 
void SetUserInformation(G4VUserEventInformation *anInfo)
 
void SetUserStackingAction(G4UserStackingAction *value)
 
G4GLOB_DLL std::ostream G4cout
 
G4bool SetNewState(G4ApplicationState requestedState)
 
G4TrackVector * GimmeSecondaries() const 
 
void SetUserInformation(G4VUserEventInformation *anInfo)
 
void SetEventManager(G4EventManager *value)
 
void SetTrackID(G4int id)
 
G4int PushOneTrack(G4Track *newTrack, G4VTrajectory *newTrajectory=0)
 
G4ApplicationState GetCurrentState() const 
 
G4PrimaryParticle * GetPrimaryParticle() const 
 
const G4TouchableHandle & GetTouchableHandle() const 
 
void SetUserAction(G4UserTrackingAction *apAction)
 
G4bool insert(G4VTrajectory *p)
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
void SetRandomNumberStatus(G4String &st)
 
static G4TransportationManager * GetTransportationManager()
 
G4HCofThisEvent * PrepareNewEvent()
 
std::vector< G4Track * > G4TrackVector
 
void SetUserAction(G4UserEventAction *userAction)
 
static G4EventManager * GetEventManager()
 
virtual G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
 
void ProcessOneEvent(G4Event *anEvent)
 
static std::ostream & saveFullState(std::ostream &os)
 
G4HCofThisEvent * GetHCofThisEvent() const 
 
void SetTrajectoryContainer(G4TrajectoryContainer *value)
 
void KeepTheEvent(G4bool vl=true)
 
void KeepTheCurrentEvent()
 
void SetTrackID(const G4int aValue)
 
static G4SDManager * GetSDMpointerIfExist()
 
G4VUserEventInformation * GetUserInformation()