39 std::unique_ptr<JumpingData>&& jumping)
43 std::move(jumping), nullptr))
51 <<
" index : " << fIndex <<
" action : ";
52 if(std::get<0>(fData) ==
nullptr)
55 << std::get<1>(fData)->GetReactant2()->GetName() <<
" -> "
56 << std::get<1>(fData)->GetProducts()->size() <<
G4endl;
61 << std::get<0>(fData)->second <<
G4endl;
66 std::unique_ptr<Event>
const& lhs)
const
68 if(rhs->GetTime() == lhs->GetTime())
70 return rhs->GetIndex() < lhs->GetIndex();
72 return rhs->GetTime() < lhs->GetTime();
82 auto pEvent = std::make_unique<Event>(time, index, pReactionData);
87 std::unique_ptr<Event::JumpingData> jum)
89 auto pEvent = std::make_unique<Event>(time, index, std::move(jum));
95 auto it = fEventMap.find(key);
96 if(it != fEventMap.end())
98 fEventSet.erase(it->second);
105 auto index = (*iter)->GetIndex();
112 auto key = pEvent->GetIndex();
114 auto it = fEventSet.emplace(std::move(pEvent));
115 fEventMap[key] = std::get<0>(it);
125 G4cout <<
"*****************************************************" <<
G4endl;
126 G4cout <<
"G4DNAEventSet::PrintEventSet() of : "<< this->
size()<<
" events "<< G4endl;
127 for(
const auto& it : fEventSet)
132 G4cout <<
"*****************************************************" <<
G4endl;
G4GLOB_DLL std::ostream G4cout
Event(const G4double &time, const Index &index, ReactionData *)
std::pair< MolType, Index > JumpingData
const G4DNAMolecularReactionData ReactionData
void RemoveEventOfVoxel(const Index &key)
void AddEvent(std::unique_ptr< Event > pEvent)
void CreateEvent(const G4double &time, const Index &index, Event::ReactionData *pReactionData)
void RemoveEvent(EventSet::iterator iter)
G4bool operator()(std::unique_ptr< Event > const &rhs, std::unique_ptr< Event > const &lhs) const