73#ifndef ITRKTRACKPARTICLECALOEXTENSIONTOOL_H
74#define ITRKTRACKPARTICLECALOEXTENSIONTOOL_H
76#include "GaudiKernel/EventContext.h"
77#include "GaudiKernel/IAlgTool.h"
78#include "GaudiKernel/ThreadLocalContext.h"
86#include <unordered_map>
91static const InterfaceID
98 typedef std::unordered_map<size_t, std::unique_ptr<Trk::CaloExtension>>
Cache;
109 const EventContext& ctx,
131 const EventContext& ctx,
133 Cache& cache)
const = 0;
168 const EventContext& ctx,
170 const std::vector<bool>& mask,
183 const EventContext& ctx,
196 const std::vector<CaloSampling::CaloSample>& clusterLayers,
215 std::unique_ptr<const Trk::TrackParameters>>>
217 const EventContext& ctx,
219 const std::vector<CaloSampling::CaloSample>& clusterLayers,
220 const std::vector<std::unique_ptr<Trk::Surface>>& caloSurfaces,
234 std::unique_ptr<const Trk::TrackParameters>>>
236 const EventContext& ctx,
238 const std::vector<CaloSampling::CaloSample>& clusterLayers,
246inline const InterfaceID&
Scalar eta() const
pseudorapidity method
DataVector< Trk::CaloExtension > CaloExtensionCollection
This class provides the client interface for accessing the detector description information common to...
Tracking class to hold the extrapolation through calorimeter Layers Both the caloEntryLayerIntersecti...
Interface for extending Particles with calo intersections.
virtual std::unique_ptr< Trk::CaloExtension > caloExtension(const EventContext &ctx, const xAOD::IParticle &particle) const =0
Method returning the calo layers crossed by the IParticle track or the IParticle itself if it is neut...
virtual std::vector< std::pair< CaloSampling::CaloSample, std::unique_ptr< const Trk::TrackParameters > > > layersCaloExtension(const EventContext &ctx, const TrackParameters &startPars, const std::vector< CaloSampling::CaloSample > &clusterLayers, double eta, const CaloDetDescrManager &caloDD, ParticleHypothesis particleType=Trk::nonInteracting) const =0
Method returning a vector of the Track Parameters at layers/samplings.
virtual std::unique_ptr< Trk::CaloExtension > caloExtension(const EventContext &ctx, const TrackParameters &startPars, PropDirection propDir, ParticleHypothesis particleType) const =0
Method returning a unique_ptr to the caloExtension given the relevant starting point parameters ,...
virtual std::vector< std::pair< CaloSampling::CaloSample, std::unique_ptr< const Trk::TrackParameters > > > surfaceCaloExtension(const EventContext &ctx, const TrackParameters &startPars, const std::vector< CaloSampling::CaloSample > &clusterLayers, const std::vector< std::unique_ptr< Trk::Surface > > &caloSurfaces, ParticleHypothesis particleType) const =0
Method returning a vector of the Track Parameters at layers/samplings.
virtual const Trk::CaloExtension * caloExtension(const EventContext &ctx, const xAOD::IParticle &particle, Cache &cache) const =0
Method to return the calo layers crossed (CaloExtension) by the IParticle track or the IParticle itse...
virtual std::vector< std::unique_ptr< Trk::Surface > > caloSurfacesFromLayers(const std::vector< CaloSampling::CaloSample > &clusterLayers, double eta, const CaloDetDescrManager &caloDD) const =0
Method returning a vector of calo surfaces give calo layers/samplings.
std::unordered_map< size_t, std::unique_ptr< Trk::CaloExtension > > Cache
virtual StatusCode caloExtensionCollection(const EventContext &ctx, const xAOD::IParticleContainer &particles, const std::vector< bool > &mask, CaloExtensionCollection &caloextensions) const =0
Method that can be used by algorithms that : A.
virtual const Trk::CaloExtension * caloExtension(const xAOD::IParticle &particle, const CaloExtensionCollection &cache) const =0
Method to return the calo layers crossed (CaloExtension) by the IParticle track or the IParticle itse...
static const InterfaceID & interfaceID()
Class providing the definition of the 4-vector interface.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
static const InterfaceID IID_IParticleCaloExtensionTool("Trk::IParticleCaloExtensionTool", 1, 0)
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.