5#ifndef JET_HIT_ASSOCIATION_ALG_HH
6#define JET_HIT_ASSOCIATION_ALG_HH
24#include "AthLinks/ElementLink.h"
37 ISvcLocator* pSvcLocator);
40 virtual StatusCode
execute(
const EventContext&)
const override;
46 this,
"jetContainer",
"tempEmtopoJets",
"Key for particle collection"};
49 this,
"hitAssociation",
m_jetCollectionKey,
"hitsAssociatedWithJet",
"Key for decorating hit links"};
54 this,
"hitContainer",
"PixelClusters",
"Key for input hits"};
57 this,
"hitReaderX",
m_inputHitCollectionKey,
"HitsXRelToBeamspot",
"Key for hits x coordinate relative to vertex"};
60 this,
"hitReaderY",
m_inputHitCollectionKey,
"HitsYRelToBeamspot",
"Key for hits x coordinate relative to vertex"};
63 this,
"hitReaderZ",
m_inputHitCollectionKey,
"HitsZRelToBeamspot",
"Key for hits x coordinate relative to vertex"};
68 this,
"dphiHitToJet", 0.2,
"Phi difference between the hit and jet/RoiDescriptor vertex; -1 to disable if using jets selection"};
71 this,
"detaHitToJet", 0.2,
"Eta difference between the hit and the RoiDescriptor vertex, if using a wedge selection"};
74 this,
"dzHitToVertex", 180,
"Z difference between the hit and the RoiDescriptor vertex, if using a wedge selection"};
77 this,
"useWedgeSelection",
false,
"Use an RoIDescriptor wedge selection"};
80 this,
"includeBarrelHits",
true,
"Include barrel hits"};
83 this,
"includeEndcapHits",
true,
"Include endcap hits"};
86 this,
"maxHits", 200,
"Maximum number of total hits"};
89 this,
"removeBadIDPixelHits",
false,
"Flag for removing bad ID Pixel hits (only valid if running over the ID PixelClusters collection)"};
93 const std::vector<std::pair<float, const xAOD::TrackMeasurementValidation*>>
95 const std::vector<std::pair<TLorentzVector, const xAOD::TrackMeasurementValidation*>>& hits)
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.
An algorithm that can be simultaneously executed in multiple threads.
virtual StatusCode execute(const EventContext &) const override
Gaudi::Property< bool > m_includeBarrel
Gaudi::Property< int > m_maxHits
Gaudi::Property< float > m_dEtaHitToVertex
Gaudi::Property< bool > m_includeEndcap
bool isGoodIDPixelHit(const xAOD::TrackMeasurementValidation *hit) const
SG::ReadDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_hitsYRelToVertexKey
Gaudi::Property< float > m_dZHitToVertex
SG::ReadHandleKey< xAOD::TrackMeasurementValidationContainer > m_inputHitCollectionKey
Gaudi::Property< bool > m_removeBadIDPixelHits
SG::ReadHandleKey< xAOD::IParticleContainer > m_jetCollectionKey
Gaudi::Property< bool > m_useWedgeSelection
JetHitAssociationAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< float > m_dPhiHitToJet
SG::ReadDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_hitsXRelToVertexKey
const std::vector< std::pair< float, const xAOD::TrackMeasurementValidation * > > getJetHits(const xAOD::IParticle *jet, const std::vector< std::pair< TLorentzVector, const xAOD::TrackMeasurementValidation * > > &hits) const
SG::WriteDecorHandleKey< xAOD::IParticleContainer > m_hitAssociationKey
virtual StatusCode initialize() override
SG::ReadDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_hitsZRelToVertexKey
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.
Class providing the definition of the 4-vector interface.
TrackMeasurementValidation_v1 TrackMeasurementValidation
Reference the current persistent version: