5#ifndef HGTDTRACKEXTENSIONALG_TRUTHDECORATION_H
6#define HGTDTRACKEXTENSIONALG_TRUTHDECORATION_H
17#include "Identifier/Identifier.h"
46 using AthReentrantAlgorithm::AthReentrantAlgorithm;
50 virtual StatusCode
execute(
const EventContext&)
const override;
106 const typename ActsTrk::TrackContainer::ConstTrackProxy trackProxy,
121 std::vector<char> &isPrimaryExistsVec)
const;
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.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerName
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterShadowedKey
SG::ReadHandleKey< MeasurementToTruthParticleAssociation > m_hgtdClustersToTruth
SG::ReadHandleKey< xAOD::UncalibratedMeasurementContainer > m_uncalibratedMeasurementContainerKey_HGTD
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterMergedKey
StatusCode isPrimaryExpected(const xAOD::TruthParticle *truthParticle, const xAOD::UncalibratedMeasurementContainer measurementContainer, const ActsTrk::MeasurementToTruthParticleAssociation *association_map, std::vector< char > &isPrimaryExistsVec) const
Checks if truth particle produced hits at each one of the HGTD layers.
virtual StatusCode execute(const EventContext &) const override
virtual StatusCode initialize() override
SG::ReadHandleKey< ActsTrk::TrackContainer > m_trackContainerKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_truthParticleLinkKey
ActsTrk::detail::xAODUncalibMeasSurfAcc m_surfAcc
std::unique_ptr< SG::AuxElement::Accessor< int > > m_acc_nHgtdHits
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerPrimaryExpectedKey
TruthTrackExtensionData createTruthDecoration(const xAOD::TruthParticle *truthParticle, const typename ActsTrk::TrackContainer::ConstTrackProxy trackProxy, const ActsTrk::MeasurementToTruthParticleAssociation *association_map) const
Generate TruthTrackExtensionData from extension.
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_hgtdTrackLinkKey
std::size_t getHGTDLayerIndex(const Acts::GeometryIdentifier &geoID) const
returns the index of HGTD layer where surfaces lies.
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_layerClusterTruthClassKey
virtual ~HGTDTruthTrackDecorationAlg()=default
Helper class to access the Acts::surface associated with an Uncalibrated xAOD measurement.
An algorithm that can be simultaneously executed in multiple threads.
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.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
GenUncalibSourceLinkAccessor< MeasurementRangeList > UncalibSourceLinkAccessor
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
detail::UncalibSourceLinkAccessor AtlUncalibSourceLinkAccessor
TruthParticle_v1 TruthParticle
Typedef to implementation.
UncalibratedMeasurementContainer_v1 UncalibratedMeasurementContainer
Define the version of the uncalibrated measurement container.
bool is_merged
A cluster is considered to be merged if more than one particle deposited energy in a given pad.
bool is_shadowed
Shadowing means that a deposit was left by the truth particle, but it was not the first deposit and i...
ClusterTruthOrigin origin
Data structure to hold truth information about the HGTD track extension.
std::vector< int > truthClassVec
Truth classification per HGTD layer.
std::vector< char > isShadowedVec
Whether cluster is shadowed per layer.
std::vector< char > primaryExistsVec
Whether primary is expected per layer.
std::vector< char > isMergedVec
Whether cluster is merged per layer.