Geant4  10.02.p02
G4ITTrackHolder Class Reference

#include <G4ITTrackHolder.hh>

+ Inheritance diagram for G4ITTrackHolder:
+ Collaboration diagram for G4ITTrackHolder:

Public Types

typedef int Key
 
typedef std::map< Key,
PriorityList * > 
MapOfPriorityLists
 
typedef std::map< double,
std::map< Key, G4TrackList * > > 
MapOfDelayedLists
 

Public Member Functions

 G4ITTrackHolder ()
 
virtual ~G4ITTrackHolder ()
 
double GetNextTime ()
 
virtual void Push (G4Track *)
 
void PushToKill (G4Track *track)
 
bool MergeNextTimeToMainList (double &time)
 
void MergeSecondariesWithMainList ()
 
void MoveMainToWaitingList ()
 
void KillTracks ()
 
void Clear ()
 
bool AddWatcher (int, G4TrackList::Watcher *, PriorityList::Type=PriorityList::MainList)
 
void AddWatcherForMainList (G4TrackList::Watcher *)
 
void AddWatcherForKillList (G4TrackList::Watcher *)
 
MapOfPriorityListsGetLists ()
 
PriorityListGetPriorityList (Key)
 
G4TrackListGetMainList (Key)
 
G4TrackManyListGetMainList ()
 
G4TrackManyListGetSecondariesList ()
 
MapOfDelayedListsGetDelayedLists ()
 
virtual size_t GetNTracks ()
 
bool MainListsNOTEmpty ()
 
bool SecondaryListsNOTEmpty ()
 
bool DelayListsNOTEmpty ()
 
bool CheckMapIsNOTEmpty (MapOfPriorityLists &mapOfLists, PriorityList::Type type)
 
void SetVerbose (int verbose)
 
G4TrackListGetKillList ()
 

Static Public Member Functions

static G4ITTrackHolderInstance ()
 
static G4ITTrackHolderMasterInstance ()
 
static void PushToMaster (G4Track *)
 
- Static Public Member Functions inherited from G4VITTrackHolder
static G4VITTrackHolderInstance ()
 

Protected Member Functions

void AddTrackID (G4Track *track)
 
void _PushTrack (G4Track *track)
 
void PushTo (G4Track *, PriorityList::Type)
 
void PushDelayed (G4Track *track)
 
- Protected Member Functions inherited from G4VITTrackHolder
 G4VITTrackHolder ()
 
virtual ~G4VITTrackHolder ()
 

Protected Attributes

std::map< Key, PriorityList * > fLists
 
MapOfDelayedLists fDelayedList
 
G4TrackList fToBeKilledList
 
bool fMainListHaveBeenSet
 
int fVerbose
 
int fNbTracks
 
double fPostActivityGlobalTime
 
G4TrackManyList fAllMainList
 
G4TrackManyList fAllSecondariesList
 

Static Private Attributes

static G4ThreadLocal
G4ITTrackHolder
fgInstance
 
static G4ITTrackHolderfgMasterInstance
 

Friends

class G4Scheduler
 
class G4ITStepProcessor
 
class G4ITModelProcessor
 

Additional Inherited Members

- Static Protected Attributes inherited from G4VITTrackHolder
static G4ThreadLocal
G4VITTrackHolder
fInstance
 

Detailed Description

Definition at line 121 of file G4ITTrackHolder.hh.

Member Typedef Documentation

typedef int G4ITTrackHolder::Key

Definition at line 138 of file G4ITTrackHolder.hh.

typedef std::map<double, std::map<Key, G4TrackList*> > G4ITTrackHolder::MapOfDelayedLists

Definition at line 140 of file G4ITTrackHolder.hh.

Definition at line 139 of file G4ITTrackHolder.hh.

Constructor & Destructor Documentation

G4ITTrackHolder::G4ITTrackHolder ( )

Definition at line 223 of file G4ITTrackHolder.cc.

References fMainListHaveBeenSet, fNbTracks, fPostActivityGlobalTime, and fVerbose.

Referenced by Instance(), and MasterInstance().

+ Here is the caller graph for this function:

G4ITTrackHolder::~G4ITTrackHolder ( )
virtual

Definition at line 234 of file G4ITTrackHolder.cc.

References fAllMainList, fAllSecondariesList, fDelayedList, fLists, fNbTracks, and G4ManyFastLists< OBJECT >::RemoveLists().

+ Here is the call graph for this function:

Member Function Documentation

void G4ITTrackHolder::_PushTrack ( G4Track track)
protected

Definition at line 447 of file G4ITTrackHolder.cc.

References AddTrackID(), FatalErrorInArgument, fMainListHaveBeenSet, fVerbose, G4BestUnit, G4cout, G4endl, G4Exception(), G4Track::GetGlobalTime(), G4Scheduler::GetGlobalTime(), GetIT(), G4IT::GetName(), G4Scheduler::GetTimeTolerance(), G4Track::GetTrackID(), G4Scheduler::Instance(), G4Scheduler::IsRunning(), PriorityList::MainList, PushDelayed(), PushTo(), and PriorityList::SecondariesList.

Referenced by Push().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ITTrackHolder::AddTrackID ( G4Track track)
protected

Definition at line 377 of file G4ITTrackHolder.cc.

References fNbTracks, and G4Track::SetTrackID().

Referenced by _PushTrack().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool G4ITTrackHolder::AddWatcher ( int  id,
G4TrackList::Watcher *  watcher,
PriorityList::Type  type = PriorityList::MainList 
)

Definition at line 783 of file G4ITTrackHolder.cc.

References G4FastList< OBJECT >::AddWatcher(), and fLists.

+ Here is the call graph for this function:

void G4ITTrackHolder::AddWatcherForKillList ( G4TrackList::Watcher *  watcher)

Definition at line 801 of file G4ITTrackHolder.cc.

References fToBeKilledList.

void G4ITTrackHolder::AddWatcherForMainList ( G4TrackList::Watcher *  watcher)

Definition at line 796 of file G4ITTrackHolder.cc.

References G4ManyFastLists< OBJECT >::AddGlobalWatcher(), and fAllMainList.

+ Here is the call graph for this function:

bool G4ITTrackHolder::CheckMapIsNOTEmpty ( MapOfPriorityLists mapOfLists,
PriorityList::Type  type 
)

Definition at line 880 of file G4ITTrackHolder.cc.

Referenced by MainListsNOTEmpty(), and SecondaryListsNOTEmpty().

+ Here is the caller graph for this function:

void G4ITTrackHolder::Clear ( )

Definition at line 726 of file G4ITTrackHolder.cc.

References G4ManyFastLists< OBJECT >::ClearLists(), fAllMainList, fAllSecondariesList, fDelayedList, fLists, fNbTracks, KillTracks(), and G4ManyFastLists< OBJECT >::RemoveLists().

Referenced by G4Scheduler::ClearList().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool G4ITTrackHolder::DelayListsNOTEmpty ( )

Definition at line 857 of file G4ITTrackHolder.cc.

References fDelayedList.

Referenced by G4Scheduler::Process().

+ Here is the caller graph for this function:

MapOfDelayedLists& G4ITTrackHolder::GetDelayedLists ( )
inline

Definition at line 201 of file G4ITTrackHolder.hh.

References fDelayedList.

G4TrackList* G4ITTrackHolder::GetKillList ( )
inline

Definition at line 230 of file G4ITTrackHolder.hh.

References fToBeKilledList.

MapOfPriorityLists& G4ITTrackHolder::GetLists ( )
inline

Definition at line 187 of file G4ITTrackHolder.hh.

References fLists.

G4TrackList * G4ITTrackHolder::GetMainList ( Key  i)

Definition at line 773 of file G4ITTrackHolder.cc.

References PriorityList::GetMainList(), and GetPriorityList().

Referenced by G4ITStepProcessor::ComputeInteractionLength(), and G4Scheduler::EndTracking().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4TrackManyList* G4ITTrackHolder::GetMainList ( )
inline

Definition at line 191 of file G4ITTrackHolder.hh.

References fAllMainList.

double G4ITTrackHolder::GetNextTime ( )
inline

Definition at line 152 of file G4ITTrackHolder.hh.

References DBL_MAX, and fDelayedList.

Referenced by G4Scheduler::Process(), and G4Scheduler::SynchronizeTracks().

+ Here is the caller graph for this function:

size_t G4ITTrackHolder::GetNTracks ( )
virtual

Reimplemented from G4VITTrackHolder.

Definition at line 815 of file G4ITTrackHolder.cc.

References fAllMainList, fAllSecondariesList, fDelayedList, and G4ManyFastLists< OBJECT >::size().

Referenced by G4Scheduler::GetNTracks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

PriorityList * G4ITTrackHolder::GetPriorityList ( Key  i)

Definition at line 766 of file G4ITTrackHolder.cc.

References fLists.

Referenced by GetMainList().

+ Here is the caller graph for this function:

G4TrackManyList* G4ITTrackHolder::GetSecondariesList ( )
inline

Definition at line 196 of file G4ITTrackHolder.hh.

References fAllSecondariesList.

Referenced by G4Scheduler::EndTracking().

+ Here is the caller graph for this function:

G4ITTrackHolder * G4ITTrackHolder::Instance ( void  )
static

Definition at line 196 of file G4ITTrackHolder.cc.

References fgInstance, fgMasterInstance, G4ITTrackHolder(), G4Threading::IsMasterThread(), and G4Threading::IsMultithreadedApplication().

Referenced by G4ITTrackingManager::EndTracking(), G4ITModelProcessor::Initialize(), and G4ITStepProcessor::Initialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ITTrackHolder::KillTracks ( )

Definition at line 696 of file G4ITTrackHolder.cc.

References G4FastList< OBJECT >::begin(), G4FastList< OBJECT >::end(), G4FastList< OBJECT >::erase(), fToBeKilledList, fVerbose, G4cout, G4endl, GetIT(), G4IT::GetName(), G4VScheduler::GetNbSteps(), G4Track::GetTrackID(), G4VScheduler::Instance(), left, and G4FastList< OBJECT >::size().

Referenced by Clear().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool G4ITTrackHolder::MainListsNOTEmpty ( )
inline

Definition at line 210 of file G4ITTrackHolder.hh.

References CheckMapIsNOTEmpty(), fLists, and PriorityList::MainList.

Referenced by G4Scheduler::DoProcess(), G4Scheduler::EndTracking(), and G4Scheduler::PrintWhyDoYouStop().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ITTrackHolder * G4ITTrackHolder::MasterInstance ( )
static

Definition at line 212 of file G4ITTrackHolder.cc.

References creationOfTheMasterInstance, fgMasterInstance, G4ITTrackHolder(), and G4TemplateAutoLock< M, L, U >::unlock().

Referenced by PushToMaster().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool G4ITTrackHolder::MergeNextTimeToMainList ( double &  time)

Definition at line 289 of file G4ITTrackHolder.cc.

References fAllMainList, fDelayedList, fLists, PriorityList::GetMainList(), G4FastList< OBJECT >::size(), and PriorityList::TransferToMainList().

Referenced by G4Scheduler::SynchronizeTracks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ITTrackHolder::MergeSecondariesWithMainList ( )

Definition at line 359 of file G4ITTrackHolder.cc.

References fAllMainList, and fLists.

Referenced by G4Scheduler::EndTracking().

+ Here is the caller graph for this function:

void G4ITTrackHolder::MoveMainToWaitingList ( )

Definition at line 842 of file G4ITTrackHolder.cc.

References fAllMainList, fLists, and G4ManyFastLists< OBJECT >::RemoveLists().

+ Here is the call graph for this function:

void G4ITTrackHolder::Push ( G4Track track)
virtual

Reimplemented from G4VITTrackHolder.

Definition at line 386 of file G4ITTrackHolder.cc.

References _PushTrack().

+ Here is the call graph for this function:

void G4ITTrackHolder::PushDelayed ( G4Track track)
protected

Definition at line 621 of file G4ITTrackHolder.cc.

References fDelayedList, fVerbose, G4cout, G4endl, G4Track::GetGlobalTime(), GetIT(), and G4IT::GetITSubType().

Referenced by _PushTrack(), and PushToMaster().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ITTrackHolder::PushTo ( G4Track track,
PriorityList::Type  type 
)
protected

Definition at line 402 of file G4ITTrackHolder.cc.

References fAllMainList, fAllSecondariesList, fLists, GetIT(), G4IT::GetITSubType(), PriorityList::MainList, PriorityList::PushToListOfSecondaries(), PriorityList::PushToMainList(), PriorityList::PushToWaitingList(), PriorityList::SecondariesList, and PriorityList::WaitingList.

Referenced by _PushTrack().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ITTrackHolder::PushToKill ( G4Track track)
inline

Definition at line 164 of file G4ITTrackHolder.hh.

References fToBeKilledList, and G4FastList< OBJECT >::push_back().

Referenced by G4ITTrackingManager::EndTracking().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ITTrackHolder::PushToMaster ( G4Track track)
static

Definition at line 806 of file G4ITTrackHolder.cc.

References MasterInstance(), PushDelayed(), pushToTheMasterInstance, and G4TemplateAutoLock< M, L, U >::unlock().

+ Here is the call graph for this function:

bool G4ITTrackHolder::SecondaryListsNOTEmpty ( )
inline

Definition at line 215 of file G4ITTrackHolder.hh.

References CheckMapIsNOTEmpty(), fLists, and PriorityList::SecondariesList.

Referenced by G4Scheduler::EndTracking().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ITTrackHolder::SetVerbose ( int  verbose)
inline

Definition at line 225 of file G4ITTrackHolder.hh.

References fVerbose.

Friends And Related Function Documentation

friend class G4ITModelProcessor
friend

Definition at line 134 of file G4ITTrackHolder.hh.

friend class G4ITStepProcessor
friend

Definition at line 133 of file G4ITTrackHolder.hh.

friend class G4Scheduler
friend

Definition at line 132 of file G4ITTrackHolder.hh.

Member Data Documentation

G4TrackManyList G4ITTrackHolder::fAllSecondariesList
protected

Definition at line 253 of file G4ITTrackHolder.hh.

Referenced by Clear(), GetNTracks(), GetSecondariesList(), PushTo(), and ~G4ITTrackHolder().

G4ThreadLocal G4ITTrackHolder * G4ITTrackHolder::fgInstance
staticprivate

Definition at line 130 of file G4ITTrackHolder.hh.

Referenced by Instance().

G4ITTrackHolder * G4ITTrackHolder::fgMasterInstance
staticprivate

Definition at line 131 of file G4ITTrackHolder.hh.

Referenced by Instance(), and MasterInstance().

bool G4ITTrackHolder::fMainListHaveBeenSet
protected

Definition at line 245 of file G4ITTrackHolder.hh.

Referenced by _PushTrack(), and G4ITTrackHolder().

int G4ITTrackHolder::fNbTracks
protected

Definition at line 247 of file G4ITTrackHolder.hh.

Referenced by AddTrackID(), Clear(), G4ITTrackHolder(), and ~G4ITTrackHolder().

double G4ITTrackHolder::fPostActivityGlobalTime
protected

Definition at line 249 of file G4ITTrackHolder.hh.

Referenced by G4ITTrackHolder().

G4TrackList G4ITTrackHolder::fToBeKilledList
protected

Definition at line 244 of file G4ITTrackHolder.hh.

Referenced by AddWatcherForKillList(), GetKillList(), KillTracks(), and PushToKill().

int G4ITTrackHolder::fVerbose
protected

Definition at line 246 of file G4ITTrackHolder.hh.

Referenced by _PushTrack(), G4ITTrackHolder(), KillTracks(), PushDelayed(), and SetVerbose().


The documentation for this class was generated from the following files: