Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4DNAEventSet Class Reference

#include <G4DNAEventSet.hh>

Inheritance diagram for G4DNAEventSet:

Public Types

using Index = G4VDNAMesh::Index
using EventSet = std::set<std::unique_ptr<Event>, comparatorEventSet>
using EventMap = std::unordered_map<Index, EventSet::iterator,G4VDNAMesh::hashFunc>

Public Member Functions

 G4DNAEventSet ()
virtual ~G4DNAEventSet ()
void CreateEvent (const G4double &time, const Index &index, Event::ReactionData *pReactionData)
void CreateEvent (const G4double &time, const Index &index, std::unique_ptr< Event::JumpingData > jum)
void AddEvent (std::unique_ptr< Event > pEvent)
void RemoveEventSet ()
void RemoveEventOfVoxel (const Index &key)
EventSet::iterator end ()
EventSet::iterator begin ()
EventSet::reverse_iterator rend ()
EventSet::reverse_iterator rbegin ()
EventSet::const_iterator end () const
EventSet::const_iterator begin () const
size_t size ()
G4bool Empty ()
void RemoveEvent (EventSet::iterator iter)
void PrintEventSet ()
Public Member Functions inherited from IEventSet
 IEventSet ()=default
 ~IEventSet ()=default

Detailed Description

Definition at line 78 of file G4DNAEventSet.hh.

Member Typedef Documentation

◆ EventMap

using G4DNAEventSet::EventMap = std::unordered_map<Index, EventSet::iterator,G4VDNAMesh::hashFunc>

Definition at line 83 of file G4DNAEventSet.hh.

◆ EventSet

using G4DNAEventSet::EventSet = std::set<std::unique_ptr<Event>, comparatorEventSet>

Definition at line 82 of file G4DNAEventSet.hh.

◆ Index

Definition at line 81 of file G4DNAEventSet.hh.

Constructor & Destructor Documentation

◆ G4DNAEventSet()

G4DNAEventSet::G4DNAEventSet ( )

Definition at line 75 of file G4DNAEventSet.cc.

76 : fEventSet(comparatorEventSet())
77{}

◆ ~G4DNAEventSet()

G4DNAEventSet::~G4DNAEventSet ( )
virtual

Definition at line 120 of file G4DNAEventSet.cc.

120{ RemoveEventSet(); }
void RemoveEventSet()

Member Function Documentation

◆ AddEvent()

void G4DNAEventSet::AddEvent ( std::unique_ptr< Event > pEvent)

Definition at line 109 of file G4DNAEventSet.cc.

110{
111 // idea is no 2 events in one key (or index)
112 auto key = pEvent->GetIndex();
114 auto it = fEventSet.emplace(std::move(pEvent));
115 fEventMap[key] = std::get<0>(it);
116}
void RemoveEventOfVoxel(const Index &key)

Referenced by CreateEvent(), and CreateEvent().

◆ begin() [1/2]

EventSet::iterator G4DNAEventSet::begin ( )
inline

Definition at line 101 of file G4DNAEventSet.hh.

101{ return fEventSet.begin(); }

◆ begin() [2/2]

EventSet::const_iterator G4DNAEventSet::begin ( ) const
inline

Definition at line 106 of file G4DNAEventSet.hh.

106{ return fEventSet.begin(); }

◆ CreateEvent() [1/2]

void G4DNAEventSet::CreateEvent ( const G4double & time,
const Index & index,
Event::ReactionData * pReactionData )

Definition at line 79 of file G4DNAEventSet.cc.

81{
82 auto pEvent = std::make_unique<Event>(time, index, pReactionData);
83 AddEvent(std::move(pEvent));
84}
void AddEvent(std::unique_ptr< Event > pEvent)

◆ CreateEvent() [2/2]

void G4DNAEventSet::CreateEvent ( const G4double & time,
const Index & index,
std::unique_ptr< Event::JumpingData > jum )

Definition at line 86 of file G4DNAEventSet.cc.

88{
89 auto pEvent = std::make_unique<Event>(time, index, std::move(jum));
90 AddEvent(std::move(pEvent));
91}

◆ Empty()

G4bool G4DNAEventSet::Empty ( )
inline

Definition at line 108 of file G4DNAEventSet.hh.

108{ return fEventSet.empty(); }

◆ end() [1/2]

EventSet::iterator G4DNAEventSet::end ( )
inline

Definition at line 100 of file G4DNAEventSet.hh.

100{ return fEventSet.end(); }

◆ end() [2/2]

EventSet::const_iterator G4DNAEventSet::end ( ) const
inline

Definition at line 105 of file G4DNAEventSet.hh.

105{ return fEventSet.end(); }

◆ PrintEventSet()

void G4DNAEventSet::PrintEventSet ( )

Definition at line 122 of file G4DNAEventSet.cc.

123{
124 G4cout<<G4endl;
125 G4cout << "*****************************************************" << G4endl;
126 G4cout << "G4DNAEventSet::PrintEventSet() of : "<< this->size()<<" events "<< G4endl;
127 for(const auto& it : fEventSet)
128 {
129 (*it).PrintEvent();
130 }
131 G4cout << "End PrintEventSet()" << G4endl;
132 G4cout << "*****************************************************" << G4endl;
133 G4cout << G4endl;
134}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

◆ rbegin()

EventSet::reverse_iterator G4DNAEventSet::rbegin ( )
inline

Definition at line 104 of file G4DNAEventSet.hh.

104{ return fEventSet.rbegin(); }

◆ RemoveEvent()

void G4DNAEventSet::RemoveEvent ( EventSet::iterator iter)

Definition at line 103 of file G4DNAEventSet.cc.

104{
105 auto index = (*iter)->GetIndex();
106 RemoveEventOfVoxel(index);
107}

◆ RemoveEventOfVoxel()

void G4DNAEventSet::RemoveEventOfVoxel ( const Index & key)

Definition at line 93 of file G4DNAEventSet.cc.

94{
95 auto it = fEventMap.find(key);
96 if(it != fEventMap.end())
97 {
98 fEventSet.erase(it->second);
99 fEventMap.erase(it);
100 }
101}

Referenced by AddEvent(), and RemoveEvent().

◆ RemoveEventSet()

void G4DNAEventSet::RemoveEventSet ( )
inline

Definition at line 93 of file G4DNAEventSet.hh.

94 {
95 fEventSet.clear();
96 fEventMap.clear();
97 }

Referenced by ~G4DNAEventSet().

◆ rend()

EventSet::reverse_iterator G4DNAEventSet::rend ( )
inline

Definition at line 103 of file G4DNAEventSet.hh.

103{ return fEventSet.rend(); }

◆ size()

size_t G4DNAEventSet::size ( )
inline

Definition at line 107 of file G4DNAEventSet.hh.

107{ return fEventSet.size(); }

Referenced by PrintEventSet().


The documentation for this class was generated from the following files: