5#ifndef INDETPHYSVALMONITORING_INDETPHYSVALTRUTHDECORATORTOOL_H
6#define INDETPHYSVALMONITORING_INDETPHYSVALTRUTHDECORATORTOOL_H
19#include "GaudiKernel/ToolHandle.h"
27#include "GaudiKernel/EventContext.h"
44 virtual StatusCode
execute(
const EventContext &ctx)
const;
50 bool > > &float_decor,
52 const std::vector<std::array<uint16_t, kNClusterTypes> > &counts)
const;
57 {
this,
"Extrapolator",
"Trk::Extrapolator/AtlasExtrapolator",
""};
59 {
this,
"BeamSpotDecoKeys",
60 {
"EventInfo.beamPosX",
"EventInfo.beamPosY",
"EventInfo.beamPosZ"},
61 "Beamspot position decoration keys"};
68 {
this,
"TruthParticleContainerName",
"TruthParticles",
""};
71 {
this,
"Prefix",
"",
"Decoration prefix to avoid clashes."};
73 Gaudi::Property<bool>
m_decoTime{
this,
"decorateTime",
false};
77 {
this,
"PixelClusterContainerName",
"PixelClusters",
""};
80 {
this,
"SCTClusterContainerName",
"SCT_Clusters",
""};
83 {
this,
"TruthParticleIndexDecoration",
m_truthParticleName,
"origTruthIndex",
"decoration name for the original truth particle index."};
86 {
this,
"TruthEventContainerName",
"TruthEvents",
""};
89 {
this,
"TruthPileupEventContainerName",
"TruthPileupEvents",
""};
92 {
this,
"UseTruthPVAsPerigee",
false,
"Use the truth PV to calculate the perigee parameters instead of the BS"};
108 std::vector< std::pair<SG::WriteDecorHandleKey<xAOD::TruthParticleContainer>,SG::AuxElement::ConstAccessor<float> > >
m_decor;
Base class for elements of a container that can have aux data.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Handle class for adding a decoration to an object.
Define macros for attributes used to control the static checker.
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadHandleKey< xAOD::TruthEventContainer > m_truthEventName
Gaudi::Property< bool > m_useTruthPVAsPerigee
virtual StatusCode finalize()
std::atomic< bool > m_errorEmitted
virtual ~InDetPhysValTruthDecoratorAlg()
bool decorateTruth(const xAOD::TruthParticle &particle, std::vector< std::pair< SG::WriteDecorHandle< xAOD::TruthParticleContainer, float >, bool > > &float_decor, const Amg::Vector3D &perigeePos, const std::vector< std::array< uint16_t, kNClusterTypes > > &counts) const
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_truthParticleIndexDecor
PublicToolHandle< Trk::IExtrapolator > m_extrapolator
std::vector< std::pair< SG::WriteDecorHandleKey< xAOD::TruthParticleContainer >, SG::AuxElement::ConstAccessor< float > > > m_decor
virtual StatusCode initialize()
virtual StatusCode execute(const EventContext &ctx) const
SG::ReadHandleKey< xAOD::TrackMeasurementValidationContainer > m_truthPixelClusterName
TruthPixelClusterContainer and TruthSCTClusterContainer needed for truth silicon hit cut.
std::atomic< std::size_t > m_nMissingTruthParticles
InDetPhysValTruthDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< xAOD::TrackMeasurementValidationContainer > m_truthSCTClusterName
SG::ReadDecorHandleKeyArray< xAOD::EventInfo > m_beamSpotDecoKey
Gaudi::Property< std::string > m_prefix
SG::ReadHandleKey< xAOD::TruthPileupEventContainer > m_truthPileupEventName
const xAOD::TruthEvent * getTruthHSEvent() const
bool decorateTruthTime(std::vector< std::pair< SG::WriteDecorHandle< xAOD::TruthParticleContainer, float >, bool > > &float_decor) const
Gaudi::Property< bool > m_decoTime
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticleName
TruthParticle container's name needed to create decorators.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
Handle class for adding a decoration to an object.
Eigen::Matrix< double, 3, 1 > Vector3D
DecorHandleKeyArray< ReadDecorHandle< T, S >, ReadDecorHandleKey< T >, Gaudi::DataHandle::Reader > ReadDecorHandleKeyArray
TruthEvent_v1 TruthEvent
Typedef to implementation.
TruthParticle_v1 TruthParticle
Typedef to implementation.