![]() |
ATLAS Offline Software
|
Interface for extending Particles with calo intersections. More...
#include <IParticleCaloExtensionTool.h>
Public Types | |
| typedef std::unordered_map< size_t, std::unique_ptr< Trk::CaloExtension > > | Cache |
Public Member Functions | |
| 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. | |
Static Public Member Functions | |
| static const InterfaceID & | interfaceID () |
Interface for extending Particles with calo intersections.
Definition at line 94 of file IParticleCaloExtensionTool.h.
| typedef std::unordered_map<size_t, std::unique_ptr<Trk::CaloExtension> > Trk::IParticleCaloExtensionTool::Cache |
Definition at line 97 of file IParticleCaloExtensionTool.h.
|
pure virtual |
Method returning a unique_ptr to the caloExtension given the relevant starting point parameters , direction and particle hypothesis.
| ctx | event context needed for multithreading |
| startPars | the starting track parameters |
| propDir | extrapolation direction |
| particleType | type of particle |
Implemented in Trk::ParticleCaloExtensionTool.
|
pure virtual |
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.
| ctx | event context needed for multithreading |
| particle | reference to the Particle |
Implemented in Trk::ParticleCaloExtensionTool.
|
pure virtual |
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.
| ctx | event context needed for multithreading |
| particle | reference to the Particle |
| cache | the look-up table cache |
Implemented in Trk::ParticleCaloExtensionTool.
|
pure virtual |
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.
In this case, the CaloExtensionCollection (DataVector<CaloExtension>) owns the caloExtension.
| particle | reference to the Particle |
| cache | The CaloExtensionCollections |
Implemented in Trk::ParticleCaloExtensionTool.
|
pure virtual |
Method that can be used by algorithms that : A.
Have an IParticleCollection B. Define a mask of the size of that collection C. Want back a Calo Extension Collection alligned with the input collection i.e 1 to 1 correspondance with the input collection. The Collection can then be used as such to retrieve the extensions or manipulated and written to StoreGate.
| ctx | event context needed for multithreading |
| particles | The input collection |
| mask | contains true for the elements for which to permorm an extension, false otherwise |
Implemented in Trk::ParticleCaloExtensionTool.
|
pure virtual |
Method returning a vector of calo surfaces give calo layers/samplings.
| ctx | event context needed for multithreading |
| clusterLayers | the layers (should be ordered) we aim to |
| eta | eta used for the depth |
Implemented in Trk::ParticleCaloExtensionTool.
|
inlinestatic |
Definition at line 246 of file IParticleCaloExtensionTool.h.
|
pure virtual |
Method returning a vector of the Track Parameters at layers/samplings.
| ctx | event context needed for multithreading |
| startPars | the starting track parameters |
| clusterLayers | the layers (should be ordered) we aim to |
| eta | eta used for the depth |
| particleType | type of particle |
Implemented in Trk::ParticleCaloExtensionTool.
|
pure virtual |
Method returning a vector of the Track Parameters at layers/samplings.
| ctx | event context needed for multithreading |
| startPars | the starting track parameters |
| clusterLayers | the layers (should be ordered) we aim to |
| clusterSurfaces | the surfaces for each layer |
| particleType | type of particle |
The clusterLayers and clusterSurfaces need to be 1-1 this can be done via the caloSurfacesFromLayers method above.
Implemented in Trk::ParticleCaloExtensionTool.