SLIC  6.1.1
Simulation for the Linear Collider (SLIC) - Geant4 simulation application
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MCParticleManager Class Reference

Management of global MCParticle information. More...

#include <MCParticleManager.hh>

Inheritance diagram for MCParticleManager:
Singleton< MCParticleManager > Module

Public Member Functions

 MCParticleManager ()
 
virtual ~MCParticleManager ()
 
void addMCParticleTrackID (G4int trackId, MCParticle *particle)
 
void applyLorentzTransformation (LCCollection *mcparticles, const G4double angle)
 
void createMCParticleCollection ()
 
std::set< G4PrimaryParticle * > createPrimary (G4PrimaryParticle *parent, MCParticle *mcp)
 
G4PrimaryVertex * createVertex (MCParticle *mcp)
 
MCParticle * findMCParticle (G4int trackId)
 
void generateEvent (LCCollectionVec *mcparticles, G4Event *event)
 
LCCollectionVec * getMCParticleCollection ()
 
PrimaryParticleMap * getPrimaryParticleMap ()
 
int indexOf (G4PrimaryParticle *primary)
 
int indexOf (MCParticle *particle)
 
bool isDaughter (G4PrimaryParticle *particle, const std::set< G4PrimaryParticle * > &primaries)
 
void reset ()
 
G4double smearZPosition (const G4double rms)
 
- Public Member Functions inherited from Singleton< MCParticleManager >
 Singleton ()
 
 ~Singleton ()
 
void release ()
 

Private Member Functions

void setMCParticleCollection (LCCollectionVec *mcpVec)
 
- Private Member Functions inherited from Module
virtual ~Module ()
 
virtual void beginEvent (const G4Event *)
 
virtual void beginRun (const G4Run *)
 
virtual void cleanup ()
 
bool deleteOnExit ()
 
virtual void endEvent (const G4Event *)
 
virtual void endRun (const G4Run *)
 
const std::string & getName () const
 
ModuleStatus getStatus () const
 
virtual void initialize ()
 
LogStream & log ()
 
virtual void postTracking (const G4Track *)
 
virtual void preTracking (const G4Track *)
 
virtual void stepping (const G4Step *)
 
 Module (const std::string &name, bool deleteOnExit=true, bool autoRegister=true)
 

Private Attributes

LCCollectionVec * _inputVec
 
MCParticleMap _mcpMap
 
LCCollectionVec * _mcpVec
 
PrimaryParticleMap _primaryMap
 
std::vector< G4PrimaryParticle * > _primaryVec
 
TrackIDMap _trackIDMap
 
- Private Attributes inherited from Module
bool m_deleteOnExit
 
LogStream * m_log
 
std::string m_name
 
ModuleStatus m_status
 

Additional Inherited Members

- Static Public Member Functions inherited from Singleton< MCParticleManager >
static MCParticleManager * instance ()
 
- Private Types inherited from Module
enum  ModuleStatus { eOkay = 0 , eNotInitialized = 1 , eBadState = 2 , eFatalError = 3 }
 

Detailed Description

Management of global MCParticle information.

Note
This class is responsible for management of MCParticle information and provides central utilities for use by event generation classes such as the MCParticleGenerator and StdHepGenerator.

Definition at line 48 of file MCParticleManager.hh.

Constructor & Destructor Documentation

◆ MCParticleManager()

MCParticleManager ( )
inline

Class constructor.

Definition at line 55 of file MCParticleManager.hh.

◆ ~MCParticleManager()

virtual ~MCParticleManager ( )
inlinevirtual

Class destructor.

Definition at line 62 of file MCParticleManager.hh.

Member Function Documentation

◆ addMCParticleTrackID()

void addMCParticleTrackID ( G4int  trackId,
MCParticle *  particle 
)
inline

Add an MCParticle associated with a track ID.

Parameters
[in]trackIdThe track ID.
[in]particleThe MCParticle object.

Definition at line 77 of file MCParticleManager.hh.

References MCParticleManager::_trackIDMap.

◆ applyLorentzTransformation()

void applyLorentzTransformation ( LCCollection *  mcparticles,
const G4double  angle 
)

Apply a Lorentz Transformation angle to a collection of MCParticles.

Parameters
[in]mcparticlesThe MCParticle collection.
[in]angleThe Lorentz Transformation angle.

Definition at line 320 of file MCParticleManager.cc.

Referenced by MCParticleManager::generateEvent().

◆ createMCParticleCollection()

void createMCParticleCollection ( )
inline

Create an empty MCParticle collection.

Definition at line 114 of file MCParticleManager.hh.

References MCParticleManager::_mcpVec.

◆ createPrimary()

std::set< G4PrimaryParticle * > createPrimary ( G4PrimaryParticle *  parent,
MCParticle *  mcp 
)

Create a primary particle from an MCParticle and recursively create primaries for all its daughters.

Parameters
[in]mcpthe input MCParticle
Returns
the primary particle converted from the MCParticle

Definition at line 177 of file MCParticleManager.cc.

References MCParticleManager::_mcpMap, MCParticleManager::_primaryMap, MCParticleManager::_primaryVec, LOG::debug, LOG::done, LOG::endl, LogStream::getOutputStream(), MCParticleManager::indexOf(), and Module::log().

Referenced by MCParticleManager::generateEvent().

◆ createVertex()

G4PrimaryVertex * createVertex ( MCParticle *  mcp)

Create a primary vertex from an MCParticle.

Parameters
[in]mcpthe input MCParticle
Returns
the primary vertex converted from the MCParticle

Definition at line 285 of file MCParticleManager.cc.

References LOG::debug, LOG::done, LOG::endl, MCParticleManager::indexOf(), and Module::log().

Referenced by MCParticleManager::generateEvent().

◆ findMCParticle()

MCParticle* findMCParticle ( G4int  trackId)
inline

Find an MCParticle from a track ID.

Parameters
[in]trackIdThe track ID.
Returns
The found MCParticle or NULL if not found.

Definition at line 89 of file MCParticleManager.hh.

References MCParticleManager::_trackIDMap.

◆ generateEvent()

void generateEvent ( LCCollectionVec *  mcparticles,
G4Event *  event 
)

◆ getMCParticleCollection()

LCCollectionVec* getMCParticleCollection ( )
inline

Get the current MCParticle collection.

Definition at line 68 of file MCParticleManager.hh.

References MCParticleManager::_mcpVec.

◆ getPrimaryParticleMap()

PrimaryParticleMap* getPrimaryParticleMap ( )
inline

Get the map of MCParticles to G4PrimaryParticles.

Returns
The current PrimaryParticleMap.

Definition at line 97 of file MCParticleManager.hh.

References MCParticleManager::_primaryMap.

◆ indexOf() [1/2]

int indexOf ( G4PrimaryParticle *  primary)
inline

Find index of a primary particle matching an MCParticle index.

Returns
The index of the primary particle.

Definition at line 132 of file MCParticleManager.hh.

References MCParticleManager::_primaryVec.

◆ indexOf() [2/2]

int indexOf ( MCParticle *  particle)
inline

Find index of an MCParticle in a collection.

Returns
The index of the particle in the collection.

Definition at line 124 of file MCParticleManager.hh.

References MCParticleManager::_inputVec.

Referenced by MCParticleManager::createPrimary(), MCParticleManager::createVertex(), and MCParticleManager::generateEvent().

◆ isDaughter()

bool isDaughter ( G4PrimaryParticle *  particle,
const std::set< G4PrimaryParticle * > &  primaries 
)

Return true if particle is a daughter of another primary.

Returns
true if particle is a daughter

Definition at line 370 of file MCParticleManager.cc.

Referenced by MCParticleManager::generateEvent().

◆ reset()

void reset ( )
inlinevirtual

◆ setMCParticleCollection()

void setMCParticleCollection ( LCCollectionVec *  mcpVec)
inlineprivate

Set the MCParticle collection.

Parameters
[in]mcpVecThe MCParticle collection.

Definition at line 183 of file MCParticleManager.hh.

References MCParticleManager::_mcpVec.

Referenced by MCParticleManager::generateEvent().

◆ smearZPosition()

G4double smearZPosition ( const G4double  rms)

Get the next smeared Z position.

Parameters
[in]TheRMS of the smearing algorithm.
Returns
The smeared Z position.

Definition at line 360 of file MCParticleManager.cc.

Referenced by MCParticleManager::generateEvent().

Member Data Documentation

◆ _inputVec

LCCollectionVec* _inputVec
private

◆ _mcpMap

MCParticleMap _mcpMap
private

Reverse map of G4PrimaryParticle to MCParticle.

Definition at line 197 of file MCParticleManager.hh.

Referenced by MCParticleManager::createPrimary(), MCParticleManager::generateEvent(), and MCParticleManager::reset().

◆ _mcpVec

LCCollectionVec* _mcpVec
private

The output MCParticle collection. This pointer is "taken" from the input reader, because it is added to the output event, which then automatically deletes it once the event is written (I think?).

Definition at line 211 of file MCParticleManager.hh.

Referenced by MCParticleManager::createMCParticleCollection(), MCParticleManager::getMCParticleCollection(), MCParticleManager::reset(), and MCParticleManager::setMCParticleCollection().

◆ _primaryMap

PrimaryParticleMap _primaryMap
private

Map of MCParticle to G4PrimaryParticle.

Definition at line 192 of file MCParticleManager.hh.

Referenced by MCParticleManager::createPrimary(), MCParticleManager::getPrimaryParticleMap(), and MCParticleManager::reset().

◆ _primaryVec

std::vector<G4PrimaryParticle*> _primaryVec
private

◆ _trackIDMap

TrackIDMap _trackIDMap
private

Map of MCParticle to track ID.

Definition at line 202 of file MCParticleManager.hh.

Referenced by MCParticleManager::addMCParticleTrackID(), MCParticleManager::findMCParticle(), and MCParticleManager::reset().


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