34#ifndef G4ITREACTIONINFO_HH_
35#define G4ITREACTIONINFO_HH_
46#ifndef compTrackPerID__
47#define compTrackPerID__
106 G4ITReactionList::iterator it)
142 reaction->AddIterator(this->shared_from_this(), it);
155 G4ITReactionList::iterator next;
216 reaction->AddIterator(it);
232 reactionPerTrack = it_track->second;
233 auto list = reactionPerTrack->GetReactionList();
235 for(
const auto& it_list:list)
237 if ((*it_list).GetReactant(trackA)->GetTrackID() == trackB->
GetTrackID())
248 auto it = reactants->begin();
249 for(;it != reactants->end() ; ++it)
261 backItUp->RemoveMe();
273 reaction->RemoveMe();
286 reactionPerTrack->GetListOfIterators().begin() ;
287 it != reactionPerTrack->GetListOfIterators().end() ;
292 reactionPerTrack->GetListOfIterators().clear();
293 reactionPerTrack->GetReactionList().clear();
302 it->second->RemoveMe();
332 std::pair< G4ITReactionPerTrackMap::iterator,bool> pos =
334 reactionPerTrack->AddIterator(pos.first);
338 reactionPerTrack = it->second;
341 reactionPerTrack->AddReaction(reaction);
G4shared_ptr< G4ITReactionPerTrack > G4ITReactionPerTrackPtr
std::list< G4ITReactionPtr > G4ITReactionList
G4shared_ptr< G4ITReaction > G4ITReactionPtr
G4shared_ptr< std::vector< G4Track * > > G4TrackVectorHandle
std::multiset< G4ITReactionPtr, compReactionPerTime > G4ITReactionPerTime
std::map< G4Track *, G4ITReactionPerTrackPtr, compTrackPerID > G4ITReactionPerTrackMap
std::list< std::pair< G4ITReactionPerTrackPtr, G4ITReactionList::iterator > > G4ReactionPerTrackIt
std::multiset< G4ITReactionPtr, compReactionPerTime >::iterator G4ITReactionPerTimeIt
#define G4enable_shared_from_this
void AddIterator(G4ITReactionPerTrackMap::iterator it)
G4ITReactionList fReactions
G4bool RemoveThisReaction(G4ITReactionList::iterator it)
std::list< G4ITReactionPerTrackMap::iterator > & GetListOfIterators()
void AddReaction(G4ITReactionPtr reaction)
G4ITReactionList & GetReactionList()
std::list< G4ITReactionPerTrackMap::iterator > fReactionSetIt
virtual ~G4ITReactionPerTrack()
static G4ITReactionPerTrackPtr New()
void AddReaction(G4double time, G4Track *trackA, G4Track *trackB)
void AddReaction(G4Track *track, G4ITReactionPtr reaction)
static G4ThreadLocal G4ITReactionSet * fpInstance
void RemoveReactionSet(G4Track *track)
virtual ~G4ITReactionSet()
G4bool CanAddThisReaction(G4Track *trackA, G4Track *trackB)
void RemoveReactionPerTrack(G4ITReactionPerTrackPtr reactionPerTrack)
static G4ITReactionSet * Instance()
void SelectThisReaction(G4ITReactionPtr reaction)
void AddReactions(G4double time, G4Track *trackA, G4TrackVectorHandle reactants)
G4ITReactionPerTime fReactionPerTime
G4ITReactionPerTrackMap & GetReactionMap()
G4ITReactionPerTrackMap fReactionPerTrack
G4ITReactionPerTime & GetReactionsPerTime()
std::pair< G4Track *, G4Track * > GetReactants() const
std::pair< G4Track *, G4Track * > fReactants
G4ReactionPerTrackIt fReactionPerTrack
G4ITReactionPerTimeIt * fReactionPerTimeIt
void AddIterator(G4ITReactionPerTrackPtr reactionPerTrack, G4ITReactionList::iterator it)
std::size_t GetHash() const
static G4ITReactionPtr New(G4double time, G4Track *trackA, G4Track *trackB)
void AddIterator(G4ITReactionPerTimeIt it)
G4Track * GetReactant(G4Track *trackA) const
G4bool operator()(G4ITReactionPtr rhs, G4ITReactionPtr lhs) const
G4bool operator()(G4Track *rhs, G4Track *lhs) const