|
| 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 neutral/TruthParticle The memory ownership is handled by the unique_ptr.
|
| 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 itself if it is neutral/TruthParticle.
|
| 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 itself if it is neutral/TruthParticle It returns the result stored in the CaloExtensionCollection created by the caloExtensionCollection method below.
|
| 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 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 , direction and particle hypothesis.
|
| 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.
|
| 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 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.
|
Interface for extending Particles with calo intersections.
Definition at line 95 of file IParticleCaloExtensionTool.h.
Method to return the calo layers crossed (CaloExtension) by the IParticle track or the IParticle itself if it is neutral/TruthParticle.
An alg looping over a single collection of IParticles re-using them multiple times can use a local cache of the form std::unordered_map<size_t,std::unique_ptr<Trk::CaloExtension>>. The key is the value of IParticle::index()
This method adds the relevant extension to the cache look-up table which retains ownership.
- Parameters
-
| ctx | event context needed for multithreading |
| particle | reference to the Particle |
| cache | the look-up table cache |
- Returns
- ptr to a const CaloExtension (owned by the cache)
Implemented in Trk::ParticleCaloExtensionTool.