15 #ifndef DD4HEP_GEANT4PRIMARY_H
16 #define DD4HEP_GEANT4PRIMARY_H
30 class G4PrimaryParticle;
36 namespace Simulation {
67 typedef std::map<const G4PrimaryParticle*,Geant4Particle*>
Primaries;
82 const Geant4Particle*
get(
const G4PrimaryParticle* particle)
const;
176 std::vector<Geant4PrimaryInteraction*>
interactions()
const;
181 #endif // DD4HEP_GEANT4PRIMARY_H
VertexMap vertices
The map of primary vertices for the particles.
int nextPID()
Access a new particle identifier within the interaction.
void setNextPID(int value)
Set the next PID value.
Data structure to store the MC particle information.
Geant4PrimaryInteraction Interaction
std::map< const G4PrimaryParticle *, Geant4Particle * > Primaries
Geant4PrimaryInteraction & operator=(const Geant4PrimaryInteraction &c)=delete
Assignment operator.
int next_particle_identifier
Next PID indentifier.
Geant4PrimaryEvent & operator=(const Geant4PrimaryEvent &c)=delete
Assignment operator.
virtual ~Geant4PrimaryMap()
Default destructor.
Class modelling a single interaction with multiple primary vertices and particles.
dd4hep_ptr< PrimaryExtension > ExtensionHandle
dd4hep_ptr< PrimaryExtension > ExtensionHandle
Class modelling a complete primary event with multiple interactions.
Data structure to map primaries to particles.
Data structure to store the MC vertex information.
ExtensionHandle extension
User data extension if required.
Base structure to extend primary information with user data.
std::map< int, Interaction * > Interactions
Interactions m_interactions
Set of primary interactions.
bool applyMask()
Apply mask to all contained vertices (max. 1) and particles.
ParticleMap particles
The map of particles participating in this primary interaction.
size_t size() const
Number of interaction contained in the primary event.
Geant4PrimaryInteraction()=default
Default constructor.
Primaries & primaries()
Access primary map directly.
Primaries m_primaryMap
Mapping of primary particles of this event.
virtual ~Geant4PrimaryEvent()
Default destructor.
std::vector< Geant4PrimaryInteraction * > interactions() const
Retrieve all interactions.
void insert(G4PrimaryParticle *g4_particle, Geant4Particle *particle)
Add a new object pair (G4 primary particle, DDG4 particle) into the maps.
int mask
User mask to flag the interaction. Also unique identifier.
int locked
Flag that the event is locked for G4 native generators.
const Primaries & primaries() const
Access primary map directly (const)
std::map< int, Vertex * > VertexMap
Geant4PrimaryEvent()=default
Default constructor.
std::map< int, Particle * > ParticleMap
void add(int id, Geant4PrimaryInteraction *interaction)
Add a new interaction object to the event.
ExtensionHandle extension
User data extension if required.
virtual ~Geant4PrimaryInteraction()
Default destructor.
PrimaryExtension()=default
Default constructor.
virtual ~PrimaryExtension()
Default destructor.
Geant4PrimaryMap()=default
not persistent