5#ifndef ISF_SERVICES_TRUTHSVC_H
6#define ISF_SERVICES_TRUTHSVC_H 1
12#include "GaudiKernel/ToolHandle.h"
13#include "GaudiKernel/ServiceHandle.h"
50 class TruthSvc final :
public extends<AthService, ITruthSvc> {
53 friend ISFTesting::TruthSvc_test;
58 TruthSvc(
const std::string& name, ISvcLocator* pSvcLocator );
ISF interface class for TruthIncidents.
StatusCode initializeTruthCollection(int largestGeneratedParticleBC=0, int largestGeneratedVertexBC=0) override
Initialize the Truth Svc at the beginning of each event.
Gaudi::Property< bool > m_passWholeVertex
ServiceHandle< Barcode::IBarcodeSvc > m_barcodeSvc
The Barcode service.
void registerTruthIncident(ITruthIncident &truthincident, bool saveAllChildren=false) const override
Register a truth incident.
unsigned short m_numStrategies[AtlasDetDescr::fNumAtlasRegions]
virtual ~TruthSvc()=default
Destructor.
HepMC::GenVertexPtr createGenVertexFromTruthIncident(ITruthIncident &truthincident) const
Record and end vertex to the MC Truth for the parent particle.
Gaudi::Property< std::vector< unsigned int > > m_forceEndVtxRegionsVec
property containing AtlasRegions for which
StatusCode finalize() override
Athena algorithm's interface method finalize()
StatusCode releaseEvent() override
Finalize the Truth Svc at the end of each event.
TruthSvc(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Gaudi::Property< bool > m_quasiStableParticleOverwrite
should the job be overwriting QS particles
void recordIncidentToMCTruth(ITruthIncident &truthincident, bool passWholeVertex) const
Record the given truth incident to the MC Truth.
Gaudi::Property< bool > m_quasiStableParticlesIncluded
does this job simulate quasi-stable particles.
Gaudi::Property< bool > m_skipIfNoChildren
MCTruth steering.
ITruthStrategy ** m_geoStrategies[AtlasDetDescr::fNumAtlasRegions]
for faster access: using an internal pointer to the actual ITruthStrategy instances
ToolHandleArray< ITruthStrategy > m_truthStrategies
the truth strategies applied (as AthenaToolHandle Array)
Gaudi::Property< bool > m_ignoreUndefinedBarcodes
do/don't abort if retrieve an undefined barcode
std::array< bool, AtlasDetDescr::fNumAtlasRegions > m_forceEndVtx
attach end vertex to
StatusCode initialize() override
Athena algorithm's interface method initialize()
Gaudi::Property< bool > m_skipIfNoParentId
do not record if parentId == HepMC::UNDEFINED_ID
The Athena Transient Store API.
HepMC::GenVertex * GenVertexPtr
Core Athena algorithm for the Integrated Simulation Framework.