5#ifndef EGAMMATOOLS_EMTRACKMATCHBUILDER_H
6#define EGAMMATOOLS_EMTRACKMATCHBUILDER_H
24#include "GaudiKernel/EventContext.h"
25#include "GaudiKernel/ToolHandle.h"
47 const std::string& name,
48 const IInterface* parent);
57 const EventContext& ctx,
64 const xAOD::TrackParticleContainer* trackPC,
97 std::vector<TrackMatch>& trackMatches,
112 "TrackParticlesName",
114 "Name of the input track particle container"
119 "CaloDetDescrManager",
120 "CaloDetDescrManager",
121 "SG Key for CaloDetDescrManager in the Condition Store"
128 "Value of broad cut for delta eta" };
134 "Value of broad cut for delta phi" };
141 "Value of narrow cut for delta eta"
149 "Value of the narrowd cut for delta phi"
155 "narrowDeltaPhiBrem",
157 "Value of the narrow cut for delta phi Brem"
163 "narrowDeltaPhiRescale",
165 "Value of the narrow cut for delta phi Rescale"
171 "narrowDeltaPhiRescaleBrem",
173 "Value of the narrow cut for delta phi Rescale Brem"
179 "MaxDeltaPhiRescale",
181 "Maximum Value of the deltaPhi rescale"
189 "Boolean to use candidate matching"
197 "Boolean to apply heuristic when tracks have close deltaR"
204 "Use Rescale Metric" };
210 "Do second pass with rescale" };
214 "DeltaEtaResolution",
216 "The deltaEta resolution" };
219 "DeltaPhiResolution",
221 "The deltaPhi resolution" };
225 "DeltaPhiRescaleResolution",
227 "The deltaPhiRescale resolution"
239 "The distance from which one goes from using better deltaR to using score."
245 "EMExtrapolationTools",
246 "Name of the extrapolation tool"
253 "Boolean for use of cosmics" };
Property holding a SG store/key/clid from which a ReadHandle is made.
This class provides the client interface for accessing the detector description information common to...
function object to sort track matches based on quality
bool operator()(const TrackMatch &match1, const TrackMatch &match2) const
TrackMatchSorter(double distance=0.0)
EMTrackMatchBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
Gaudi::Property< bool > m_useScoring
Boolean to apply heuristic when tracks have close deltaR.
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
virtual ~EMTrackMatchBuilder()=default
Destructor.
double m_deltaPhiRescaleWeight
StatusCode initialize() override final
Gaudi algorithm hooks.
Gaudi::Property< double > m_narrowDeltaPhi
narrow cut on deltaPhiRescale
virtual StatusCode executeRec(const EventContext &ctx, EgammaRecContainer *egammas) const override final
execute method
Gaudi::Property< float > m_distanceForScore
The distance from which one goes from using better deltaR to using score.
ToolHandle< IEMExtrapolationTools > m_extrapolationTool
Gaudi::Property< double > m_MaxDeltaPhiRescale
@Maximum deltaPhi (Res) allowed for a match
bool isCandidateMatch(const xAOD::CaloCluster *cluster, const xAOD::TrackParticle *track, bool flip) const
Loose track-cluster matching.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackParticlesKey
name of TrackParticle container in TDS
Gaudi::Property< double > m_narrowDeltaPhiRescale
narrow cut on deltaPhiRescale
Gaudi::Property< bool > m_useCandidateMatch
flag to turn on/off use of isCandidateMatch
bool inBroadWindow(const EventContext &ctx, std::vector< TrackMatch > &trackMatches, const xAOD::CaloCluster &cluster, int trackNumber, const xAOD::TrackParticle &trkPB, const CaloDetDescrManager &caloDD) const
Compute for tracks passing the loose matching the distance between track extrapolated to 2nd sampling...
Gaudi::Property< double > m_narrowDeltaPhiRescaleBrem
narrow cut on deltaPhiRescale for electrons
Gaudi::Property< float > m_deltaPhiRescaleResolution
Gaudi::Property< float > m_deltaPhiResolution
Gaudi::Property< bool > m_useRescaleMetric
Boolean to use Rescale in the metric.
Gaudi::Property< bool > m_isCosmics
StatusCode trackExecute(const EventContext &ctx, egammaRec *eg, const xAOD::TrackParticleContainer *trackPC, const CaloDetDescrManager &caloDD) const
execute method
Gaudi::Property< double > m_narrowDeltaEta
narrow cut on deltaEta
Gaudi::Property< bool > m_SecondPassRescale
Boolean to do second pass with Rescale.
Gaudi::Property< double > m_broadDeltaEta
broad cut on deltaEta
Gaudi::Property< double > m_broadDeltaPhi
broad cut on deltaPhi
Gaudi::Property< float > m_deltaEtaResolution
The resolutions: might be good to split in barrel/end-cap in the future.
Gaudi::Property< double > m_narrowDeltaPhiBrem
narrow cut on deltaPhi for electrons
TrackMatchSorter m_sorter
Interface for the Reconstruction/egamma/egammaTools/EMTrackMatchBuilder.
Interface class for the TrackToVertex AlgTool, for more detailed information, take a look at the head...
Property holding a SG store/key/clid from which a ReadHandle is made.
Represent an egamma object for internal egamma usage during reconstruction.
DataVector< egammaRec > EgammaRecContainer
The container is a simple typedef for now.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
A structure for keeping track match information.
std::array< double, 4 > deltaPhiRescaled
std::array< double, 4 > deltaEta
std::array< double, 4 > deltaPhi