73#ifndef ITRKTRACKPARTICLECALOEXTENSIONTOOL_H
74#define ITRKTRACKPARTICLECALOEXTENSIONTOOL_H
76#include "GaudiKernel/EventContext.h"
77#include "GaudiKernel/IAlgTool.h"
85#include <unordered_map>
90static const InterfaceID
97 typedef std::unordered_map<size_t, std::unique_ptr<Trk::CaloExtension>>
Cache;
108 const EventContext& ctx,
130 const EventContext& ctx,
167 const EventContext& ctx,
169 const std::vector<bool>& mask,
182 const EventContext& ctx,
195 const std::vector<CaloSampling::CaloSample>& clusterLayers,
214 std::unique_ptr<const Trk::TrackParameters>>>
216 const EventContext& ctx,
218 const std::vector<CaloSampling::CaloSample>& clusterLayers,
219 const std::vector<std::unique_ptr<Trk::Surface>>& caloSurfaces,
233 std::unique_ptr<const Trk::TrackParameters>>>
235 const EventContext& ctx,
237 const std::vector<CaloSampling::CaloSample>& clusterLayers,
245inline 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
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.