46 {
return fpNode->GetTrack(); }
50 {
return fpNode->GetTrack(); }
54 {
return fpNode->GetTrack(); }
58 {
return fpNode->GetTrack(); }
102 if (
this == &other)
return *
this;
115 while( __stackedTrack && __stackedTrack != &(
fBoundary) )
117 __nextStackedTrack = __stackedTrack->
GetNext();
120 delete __stackedTrack;
131 __stackedTrack = __nextStackedTrack;
147 if(__trackListNode != 0)
153 exceptionDescription <<
"This track "<< __iTrack->
GetName() ;
154 exceptionDescription <<
" is already attached to a TrackList ";
167 return __trackListNode;
173 return __trackListNode;
201 else if( __position ==
fpStart )
278 <<
" is not correctly linked to a TrackList."
280 <<
"You are probably trying to withdraw this track "
281 <<
"from the list but it probably does not belong to "
282 <<
"this track list." <<
G4endl;
283 G4Exception(
"G4TrackList::CheckFlag",
"G4TrackList002",
293 if(__trackListNode == 0)
296 exceptionDescription <<
"This track "<<
GetIT(__track)->
GetName() ;
297 exceptionDescription <<
" was not connected to any trackList ";
298 G4Exception(
"G4TrackList::Unflag",
"G4TrackList003",
305 return __trackListNode;
312 Unhook( __aStackedTrack );
359 this->
erase(__track);
367 while (__first != __last)
370 __first =
pop(*__first);
381 while (__first != __last)
384 __first =
erase(*__first);
G4IT is a interface which allows the inheriting object :
G4TrackListNode is the entity actually stored by the G4TrackList.
G4TrackList_iterator iterator
bool Holds(const G4Track *) const
return an iterator that contains an empty node use for boundary checking only
G4TrackListNode * Flag(G4Track *)
std::ostringstream G4ExceptionDescription
G4ReferenceCountedHandle< _ListRef > fListRef
void DeleteSecondaryVector()
G4TrackListNode * EraseTrackListNode(G4Track *)
virtual const G4String & GetName() const =0
G4TrackList & operator=(const G4TrackList &right)
const G4Step * GetStep() const
void DeleteTrack(G4Track *)
G4TrackListNode * CreateNode(G4Track *)
Complexity = constant.
G4ReferenceCountedHandle< _ListRef > fListRef
G4TrackList_iterator enables to go through the tracks contained by a list.
G4IT * GetIT(const G4Track *track)
G4TrackListNode * GetTrackListNode()
iterator insert(iterator, G4Track *)
void SetTrackListNode(G4TrackListNode *node)
void transferTo(G4TrackList *)
Complexity = linear in size between __first and __last.
void SetNext(G4TrackListNode *node)
void SetPrevious(G4TrackListNode *node)
G4TrackListNode(G4Track *track=0)
Default constructor.
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4TrackListNode * fpFinish
G4TrackListNode * GetPrevious()
G4TrackVector * GetfSecondary()
void CheckFlag(G4TrackListNode *)
void Unhook(G4TrackListNode *)
iterator erase(G4Track *)
void Hook(G4TrackListNode *, G4TrackListNode *)
G4TrackList is used by G4ITStepManager to save G4IT tracks only.
G4TrackList * fpTrackList
G4TrackListNode fBoundary
G4TrackListNode * fpStart
G4TrackListNode * GetNext()
G4TrackListNode * Unflag(G4Track *)
~G4TrackListNode()
Default destructor.