9 #include "lcdd/hits/TrackerHit.hh"
12 #include "EVENT/LCIO.h"
13 #include "EVENT/LCEvent.h"
17 using IMPL::LCCollectionVec;
18 using EVENT::LCCollection;
26 G4bool geant4Generator =
false;
30 geant4Generator =
true;
36 if (it->second == 0) {
37 G4Exception(
"",
"", FatalException,
"MCParticle was mapped to null G4PrimaryParticle.");
39 if (it->second->GetTrackID() < 0)
42 if (
_trackSummaries->operator[](j)->getTrackID() == it->second->GetTrackID()) {
44 _trackSummaries->operator[](j)->setMCParticle(
dynamic_cast<MCParticleImpl*
>(it->first));
65 ((*_trackSummaries)[k])->setParentToBeSaved();
78 trackSummary = (*_trackSummaries)[l];
96 if (trackSummary->
getMCParticle()->getGeneratorStatus() == 0 || geant4Generator) {
113 mcpVec->setFlag(0xe0000000);
116 lcEvent->addCollection((LCCollection*) mcpVec,
"MCParticle");
126 while (parent != 0) {
static MCParticleManager * instance()
TrackSummary * findFirstSavedAncestor(TrackSummary *trackSummary)
TrackSummaryVector * _trackSummaries
void saveTrackSummaries(const G4Event *event, LCEvent *lcevent)
Container for all information from G4Track that may be persisted to MCParticle output collection.
MCParticleImpl * getMCParticle()
G4bool getToBeSaved() const
TrackSummary * findParent() const
map< MCParticle *, G4PrimaryParticle * > PrimaryParticleMap
PrimaryParticleMap::iterator PrimaryParticleMapIterator