12#ifndef TRKPARTICLECREATOR_PARTICLECALOEXTENSIONTOOL_H
13#define TRKPARTICLECREATOR_PARTICLECALOEXTENSIONTOOL_H
15#include "GaudiKernel/ServiceHandle.h"
16#include "GaudiKernel/ToolHandle.h"
54 virtual StatusCode
initialize() override final;
62 const EventContext& ctx,
66 const EventContext& ctx,
75 const EventContext& ctx,
81 const EventContext& ctx,
94 const EventContext& ctx,
103 const EventContext& ctx,
115 const EventContext& ctx,
118 const EventContext& ctx,
121 const EventContext& ctx,
129 "CaloSurfaceBuilder",
131 "Tool to build calorimeter layer surfaces"
135 this,
"ParticleType",
"muon",
136 "The particle type used during extrapolation when not passed via the "
138 ": muon, pion, nonInteracting"};
143 "Start from Perigee" };
149 "ExtrapolationDetectorID",
151 "The detector this tool should extrapolate through. Expects a "
152 "Trk::GeometrySignature enum value."
156 ToolHandle<GenericMonitoringTool>
m_monTool{
this,
"MonTool",
"",
"Monitoring tool"};
Scalar eta() const
pseudorapidity method
CaloCell_ID::CaloSample CaloSample
DataVector< Trk::CaloExtension > CaloExtensionCollection
Header file to be included by clients of the Monitored infrastructure.
DataVector< IParticle > IParticleContainer
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
This class provides the client interface for accessing the detector description information common to...
provides Calorimeter Sampling enum
Tracking class to hold the extrapolation through calorimeter Layers Both the caloEntryLayerIntersecti...
Interface for extending Particles with calo intersections.
std::unordered_map< size_t, std::unique_ptr< Trk::CaloExtension > > Cache
virtual std::unique_ptr< Trk::CaloExtension > caloExtension(const EventContext &ctx, const xAOD::IParticle &particle) const override final
Method returning the calo layers crossed by the IParticle track or the IParticle itself if it is neut...
Gaudi::Property< bool > m_startFromPerigee
std::vector< std::unique_ptr< Trk::Surface > > caloSurfacesFromLayers(const std::vector< CaloSampling::CaloSample > &clusterLayers, double eta, const CaloDetDescrManager &caloDD) const override final
Method returning a vector of calo surfaces give calo layers/samplings.
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 override final
Method returning a vector of the Track Parameters at layers/samplings.
ParticleHypothesis m_particleStrategy
ToolHandle< ICaloSurfaceBuilder > m_calosurf
Tool to build calorimeter layer surfaces.
virtual ~ParticleCaloExtensionTool()
ParticleCaloExtensionTool(const std::string &, const std::string &, const IInterface *)
virtual StatusCode caloExtensionCollection(const EventContext &ctx, const xAOD::IParticleContainer &particles, const std::vector< bool > &mask, CaloExtensionCollection &caloextensions) const override final
Method that can be used by algorithms that : A.
ToolHandle< Trk::IExtrapolator > m_extrapolator
virtual StatusCode initialize() override final
Gaudi::Property< unsigned int > m_extrapolDetectorID
Gaudi::Property< std::string > m_particleTypeName
const AtlasDetectorID * m_detID
ToolHandle< GenericMonitoringTool > m_monTool
Monitoring tool for recording histograms of the alg in action.
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) const override final
Method returning a vector of the Track Parameters at layers/samplings.
Abstract Base Class for tracking surfaces.
(HepMC) Monte Carlo particle.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.