11#include <mdst/dataobjects/MCParticleGraph.h>
12#include <simulation/dataobjects/MCParticleTrajectory.h>
13#include <framework/datastore/StoreArray.h>
14#include <framework/datastore/RelationArray.h>
16#include <G4UserTrackingAction.hh>
24 namespace Simulation {
Class to build, validate and sort a particle decay chain.
Low-level class to create/modify relations between StoreArrays.
virtual ~TrackingAction()
Destructor.
void setIgnorePairConversions(bool ignore=true)
Set ignore flag for e+ or e- coming from gamma conversions into a pair if set to true,...
double m_regionZBackward
Region backward z limit.
void setIgnoreBremsstrahlungPhotons(bool ignore=true)
Set ignore flag for low energy breamsstrahlung photons if set to true, breamsstrahlung photons with k...
bool m_ignoreSecondaries
do not store secondaries in MCParticles
bool m_doNotStoreNuclei
use is Nuclei check
MCParticleGraph & m_mcParticleGraph
Reference to the MCParticle graph which is updated by the tracking action.
void setUseSeenInECL(bool use)
Set whether to check if particle is seen in ECL for ignoring secondaries.
bool m_doNotStoreEMParticles
use is EM check
void setDistanceThreshold(double threshold)
Set the distance threshold for ignoring secondaries.
void setRegionZForward(double z)
Set the forward z limit for improved matching region.
void setKineticEnergyThreshold(double threshold)
Set the kinetic energy threshold for ignoring secondaries.
TrackingAction(MCParticleGraph &mcParticleGraph)
Constructor.
double m_distanceThreshold
distance threshold
double m_pairConversionsEnergyCut
kinetic energy cut for stored e+ or e- from pair conversions [MeV]
void setSecondariesEnergyCut(double cut_MeV)
Set kinetic energy cut for secondaries.
void setStoreTrajectories(int store, double distanceTolerance)
Sets the trajectory option to enable storing of the simulated particle trajectories.
RelationArray m_relMCTrajectories
RelationArry for the relation between MCParticles and Trajectories.
bool m_useDetailedParticleMatching
use detailed particle matching logic to filter secondaries
void setBremsstrahlungPhotonsEnergyCut(double cut_MeV)
Set kinetic energy cut for bremsstrahlung photons.
void setRegionRho(double rho)
Set the rho limit for improved matching region.
bool m_useSeenInECL
use seen in ECL check
StoreArray< MCParticleTrajectory > m_storeMCTrajectories
Store array for the Trajectories.
double m_distanceTolerance
distance tolerance to merge trajectory points
void setUseDetailedParticleMatching(bool use)
Set whether to use detailed particle matching.
void PreUserTrackingAction(const G4Track *track)
Checks if the particle associated to the track is already in the MCParticle list.
void setRegionZBackward(double z)
Set the backward z limit for improved matching region.
double m_secondariesEnergyCut
kinetic energy cut for stored secondaries [MeV]
double m_kineticEnergyThreshold
kinetic energy threshold
void setPairConversionsEnergyCut(double cut_MeV)
Set kinetic energy cut for e+ e- pair conversions.
void setIgnoreSecondaries(bool ignore=true)
Set ignore flag for low energy Geant-produced secondary particles if set to true, secondaries with ki...
double m_regionRho
Region rho limit.
void setDoNotStoreNuclei(bool value)
Set whether to check if particle is Nuclei for ignoring secondaries.
void setDoNotStoreEMParticles(bool value)
Set whether to check if particle is EM for ignoring secondaries.
void PostUserTrackingAction(const G4Track *track)
Updates the data of the MCParticle associated with the Geant4 track.
bool m_ignorePairConversions
do not store e+ or e- from pair conversions in MCparticles
bool m_ignoreBremsstrahlungPhotons
do not store bremsstrahlung photons in MCParticles
bool m_ignoreOpticalPhotons
do not store optical photons in MCParticles
void setIgnoreOpticalPhotons(bool ignore=true)
Set ignore flag for optical photons if set to true, optical photons will not be stored in MCParticles...
double m_bremsstrahlungPhotonsEnergyCut
kinetic energy cut for stored bremsstrahlung photons [MeV]
double m_regionZForward
Region forward z limit.
int m_storeTrajectories
Store trajectories for 0=none, 1=primary or 2=all particles.
Accessor to arrays stored in the data store.
Abstract base class for different kinds of events.