34#ifndef G4ITREACTIONINFO_HH_
35#define G4ITREACTIONINFO_HH_
46#ifndef compTrackPerID__
47#define compTrackPerID__
69 G4ITReactionList::iterator> >;
106 G4ITReactionList::iterator it)
142 reaction->AddIterator(this->shared_from_this(), it);
155 G4ITReactionList::iterator next;
216 reaction->AddIterator(it);
231 reactionPerTrack = it_track->second;
232 auto list = reactionPerTrack->GetReactionList();
234 for(
const auto& it_list:list)
236 if ((*it_list).GetReactant(trackA)->GetTrackID() == trackB->
GetTrackID())
246 auto it = reactants->begin();
247 for(;it != reactants->end() ; ++it)
259 backItUp->RemoveMe();
271 reaction->RemoveMe();
283 for(
auto & it : reactionPerTrack->GetListOfIterators())
287 reactionPerTrack->GetListOfIterators().clear();
288 reactionPerTrack->GetReactionList().clear();
297 it->second->RemoveMe();
327 std::pair< G4ITReactionPerTrackMap::iterator,bool> pos =
329 reactionPerTrack->AddIterator(pos.first);
333 reactionPerTrack = it->second;
336 reactionPerTrack->AddReaction(reaction);
std::list< std::pair< G4ITReactionPerTrackPtr, G4ITReactionList::iterator > > G4ReactionPerTrackIt
std::map< G4Track *, G4ITReactionPerTrackPtr, compTrackPerID > G4ITReactionPerTrackMap
std::multiset< G4ITReactionPtr, compReactionPerTime > G4ITReactionPerTime
G4shared_ptr< G4ITReaction > G4ITReactionPtr
std::list< G4ITReactionPtr > G4ITReactionList
G4shared_ptr< std::vector< G4Track * > > G4TrackVectorHandle
G4shared_ptr< G4ITReactionPerTrack > G4ITReactionPerTrackPtr
std::multiset< G4ITReactionPtr, compReactionPerTime >::iterator G4ITReactionPerTimeIt
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