45     G4TrackList::Watcher(), fpMainList(0), fpWaitingList(0)
 
   50     G4TrackList::Watcher(), fpMainList(0), fpWaitingList(0)
 
   57     fpMainList(right.fpMainList),
 
   58     fpWaitingList(right.fpWaitingList)
 
   78   if (__list == fpMainList)
 
   83   else if (__list == fpWaitingList)
 
   94   allMainList.
Add(__list);
 
  136     listOfAllSecondaries.
Add(&fSecondaries);
 
  143   if (fpWaitingList == 0)
 
  157   if (fpMainList == 0) fpMainList = 
new G4TrackList();
 
  163   if (fpMainList == 0) fpMainList = 
new G4TrackList();
 
  173     nTracks += fpMainList->
size();
 
  178     nTracks += fpWaitingList->
size();
 
  181   nTracks += fSecondaries.
size();
 
  205       fgMasterInstance = fgInstance;
 
  215   if (fgMasterInstance == 0)
 
  220   return fgMasterInstance;
 
  236   std::map<Key, PriorityList*>::iterator end = 
fLists.end();
 
  238   for (std::map<Key, PriorityList*>::iterator it = 
fLists.begin(); it != end;
 
  247     MapOfDelayedLists::iterator fDelayedList_i = 
fDelayedList.begin();
 
  248     MapOfDelayedLists::iterator fDelayedList_end = 
fDelayedList.end();
 
  250     for (; fDelayedList_i != fDelayedList_end; fDelayedList_i++)
 
  252       std::map<Key, G4TrackList*>::iterator it = fDelayedList_i->second.begin();
 
  253       std::map<Key, G4TrackList*>::iterator __end =
 
  254           fDelayedList_i->second.end();
 
  256       for (; it != __end; it++)
 
  258         if (it->second) 
delete (it->second);
 
  299   std::map<Key, G4TrackList*>::iterator it =
 
  301   std::map<Key, G4TrackList*>::iterator end =
 
  303   if (it == end) 
return false;
 
  306   for (; it != end; it++)
 
  310     std::map<Key, PriorityList*>::iterator it_listUnion = 
fLists.find(
 
  312     if (it_listUnion == 
fLists.end())
 
  318       if (it_listUnion->second == 0)
 
  322       right_listUnion = it_listUnion->second;
 
  325     if (it->second == 0) 
continue;
 
  361   std::map<Key, PriorityList*>::iterator it = 
fLists.begin();
 
  362   std::map<Key, PriorityList*>::iterator end = 
fLists.end();
 
  364   for (; it != end; it++)
 
  366     if (it->second->GetMainList() == 0)
 
  371     it->second->TransferSecondariesToMainList();
 
  405   std::map<Key, PriorityList*>::iterator it = 
fLists.find(moleculeID);
 
  412     fLists[moleculeID] = priorityList;
 
  416     priorityList = it->second;
 
  453         << 
"You are trying to push a non-existing track (track pointer is null)" 
  456     G4Exception(
"G4ITTrackHolder::_PushTrack", 
"ITStepManager014",
 
  474     G4cout << 
"\t"<< 
">> Pushing a track -->  ";
 
  486     if (globalTime < currentGlobalTime)
 
  490           << 
"You are trying to push a track with a global time" 
  491           << 
" inferior to the current simulation time." << 
G4endl<< 
"The time is going back : " << 
G4endl 
  492       << 
"The time in the step manager : " 
  495       << 
"The time of the track : " 
  498       << 
"(ITStepManager is not yet running)" 
  501       G4Exception(
"G4ITTrackHolder::_PushTrack", 
"ITStepManager014",
 
  515       if (globalTime == currentGlobalTime)
 
  521             G4cout << 
"\t"<< 
">> Pushing to *main* list -->  ";
 
  539             G4cout << 
"\t"<< 
">> Pushing to *delayed* list -->  ";
 
  554     double timeDifference = globalTime - currentGlobalTime;
 
  557     if (timeDifference < -1 * timeTolerance)
 
  561           << 
"You are trying to push a track with a global time" 
  562           << 
" inferior to the current simulation time." << 
G4endl<< 
"The time is going back : " 
  564       << 
"The time in the step manager : " 
  567       << 
"The time of the track : " << 
G4BestUnit(globalTime,
"Time")
 
  569       << 
"(ITStepManager is running)" 
  572       G4Exception(
"G4ITTrackHolder::_PushTrack", 
"ITStepManager015",
 
  580     if (fabs(timeDifference) < timeTolerance)
 
  588           G4cout << 
"\t"<< 
">> Pushing to *secondary* list -->  ";
 
  603           << 
"While running you cannot push a track" 
  604           << 
" with a bigger global time than the current global time" << 
G4endl<< 
"The time in the step manager : " 
  607       << 
"The time of the track : " << 
G4BestUnit(globalTime,
"Time")
 
  609       << 
"(ITStepManager is running)" 
  612       G4Exception(
"G4ITTrackHolder::_PushTrack", 
"ITStepManager016",
 
  626     G4cout << 
"\t" << 
">> Pushing a delayed track" << 
G4endl;
 
  635   std::map<double, std::map<Key, G4TrackList*> >::iterator it_delayed =
 
  645     std::map<Key, G4TrackList*>::iterator it_trackList =
 
  646     it_delayed->second.find(moleculeID);
 
  648     if (it_trackList == it_delayed->second.end())
 
  650       (it_delayed->second[moleculeID] = 
new G4TrackList())->push_back(track);
 
  654       if (it_trackList->second != 0)
 
  656         it_trackList->second->push_back(track);
 
  702     G4cout << 
"*** G4ITTrackHolder::KillTracks , step #" 
  707            << setw(25) << 
"track ID"<< 
G4endl;
 
  733   std::map<Key, PriorityList*>::iterator it = 
fLists.begin();
 
  735   for (; it != 
fLists.end(); it++)
 
  737     if (it->second) 
delete it->second;
 
  746     std::map<Key, G4TrackList*>::iterator it2 = it1->second.begin();
 
  748     for (; it2 != it1->second.end(); it2++)
 
  750       if (it2->second) 
delete it2->second;
 
  768   std::map<Key, PriorityList*>::iterator it = 
fLists.find(i);
 
  769   if (it == 
fLists.end()) 
return 0;
 
  784                                  G4TrackList::Watcher* watcher,
 
  787   std::map<Key, PriorityList*>::iterator it = 
fLists.find(
id);
 
  788   if (it == 
fLists.end()) 
return false;
 
  791   if (trackList == 0) 
return false;
 
  823   MapOfDelayedLists::iterator delayedmap_it = 
fDelayedList.begin();
 
  824   MapOfDelayedLists::iterator delayedmap_end = 
fDelayedList.end();
 
  826   for (; delayedmap_it != delayedmap_end; delayedmap_it++)
 
  828     std::map<Key, G4TrackList*>::iterator it = delayedmap_it->second.begin();
 
  829     std::map<Key, G4TrackList*>::iterator end = delayedmap_it->second.end();
 
  831     for (; it != end; it++)
 
  833       if (it->second) nTracks += it->second->size();
 
  844   MapOfPriorityLists::iterator it = 
fLists.begin();
 
  845   MapOfPriorityLists::iterator end = 
fLists.end();
 
  846   for (; it != end; it++)
 
  850       lists->SetWaitingList(lists->GetMainList());
 
  859   MapOfDelayedLists::iterator __it = 
fDelayedList.begin();
 
  861   for (; __it != __end; __it++)
 
  863     std::map<Key, G4TrackList*>& mapOfLists = __it->second;
 
  864     if (mapOfLists.empty() == 
false)
 
  866       std::map<Key, G4TrackList*>::iterator it = mapOfLists.begin();
 
  867       std::map<Key, G4TrackList*>::iterator end = mapOfLists.end();
 
  868       for (; it != end; it++)
 
  872           if (!(mainList->empty())) 
return true;
 
  883   MapOfPriorityLists::iterator it = mapOfLists.begin();
 
  884   MapOfPriorityLists::iterator end = mapOfLists.end();
 
  885   for (; it != end; it++)
 
  891         if (!(trackList->empty())) 
return true;
 
G4TrackList fToBeKilledList
 
G4TrackManyList * GetMainList()
 
virtual void Push(G4Track *)
 
void MergeSecondariesWithMainList()
 
bool CheckMapIsNOTEmpty(MapOfPriorityLists &mapOfLists, PriorityList::Type type)
 
double GetTimeTolerance() const 
 
std::ostringstream G4ExceptionDescription
 
void AddTrackID(G4Track *track)
 
std::map< Key, PriorityList * > fLists
 
double fPostActivityGlobalTime
 
static G4VScheduler * Instance()
 
void PushDelayed(G4Track *track)
 
virtual G4int GetNbSteps() const 
 
void MoveMainToWaitingList()
 
void Add(G4FastList< OBJECT > *__list)
 
G4Mutex pushToTheMasterInstance
 
G4FastListNode< G4FastList< OBJECT > > * GetListNode()
 
virtual void NotifyDeletingList(G4TrackList *__list)
 
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1 
 
virtual const G4String & GetName() const =0
 
G4TrackList * GetMainList()
 
static G4Scheduler * Instance()
 
void PushToMainList(G4Track *__track, G4TrackManyList &allMainList)
 
void PushToWaitingList(G4Track *__track)
 
void AddWatcher(Watcher *watcher)
 
void MergeWithMainList(G4TrackList *trackList)
 
G4Mutex creationOfTheMasterInstance
 
G4IT * GetIT(const G4Track *track)
 
G4GLOB_DLL std::ostream G4cout
 
void AddWatcherForMainList(G4TrackList::Watcher *)
 
void AddWatcherForKillList(G4TrackList::Watcher *)
 
void _PushTrack(G4Track *track)
 
G4FastList< G4Track > G4TrackList
 
void PushTo(G4Track *, PriorityList::Type)
 
bool MergeNextTimeToMainList(double &time)
 
G4double GetGlobalTime() const 
 
G4TrackManyList fAllMainList
 
G4bool IsMultithreadedApplication()
 
virtual size_t GetNTracks()
 
void TransferToMainList(G4TrackList *&__list, G4TrackManyList &allMainList)
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
bool DelayListsNOTEmpty()
 
static G4ITTrackHolder * MasterInstance()
 
PriorityList * GetPriorityList(Key)
 
void push_back(OBJECT *__track)
 
virtual G4ITType GetITSubType() const 
 
MapOfDelayedLists fDelayedList
 
bool fMainListHaveBeenSet
 
void transferTo(G4FastList< OBJECT > *)
 
std::map< Key, PriorityList * > MapOfPriorityLists
 
static void PushToMaster(G4Track *)
 
void PushToListOfSecondaries(G4Track *__track, G4TrackManyList &listOfAllSecondaries)
 
static G4ITTrackHolder * Instance()
 
virtual ~G4ITTrackHolder()
 
G4double GetGlobalTime() const 
 
void NewMainList(G4TrackList *__list, G4TrackManyList &allMainList)
 
void TransferSecondariesToMainList()
 
G4TrackManyList fAllSecondariesList
 
void SetTrackID(const G4int aValue)
 
bool AddWatcher(int, G4TrackList::Watcher *, PriorityList::Type=PriorityList::MainList)
 
void AddGlobalWatcher(typename G4FastList< OBJECT >::Watcher *watcher)