ATLAS Offline Software
IParticleCaloCellAssociationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3  */
4 
6 // IParticleCaloCellAssociationTool.h, (c) ATLAS Detector software
8 #ifndef ITRKTRACKPARTICLECALOCELLASSOCIATIONTOOL_H
9 #define ITRKTRACKPARTICLECALOCELLASSOCIATIONTOOL_H
10 
11 #include "GaudiKernel/IAlgTool.h"
12 #include "xAODBase/IParticle.h"
15 #include <memory>
16 class CaloCellContainer;
17 
18 namespace Rec
19 {
20 
21 static const InterfaceID IID_IParticleCaloCellAssociationTool("Rec::IParticleCaloCellAssociationTool", 1, 0);
22 
24 class IParticleCaloCellAssociationTool : virtual public IAlgTool {
25 public:
26 
34  virtual std::unique_ptr< ParticleCellAssociation > particleCellAssociation( const xAOD::IParticle& particle, float dr,
35  const CaloCellContainer* container = nullptr,
36  const CaloExtensionCollection* extensionCache = nullptr) const = 0;
37 
56  typedef std::unordered_map<size_t,std::unique_ptr< ParticleCellAssociation >> Cache;
58  const CaloCellContainer* container = nullptr,
59  const CaloExtensionCollection* extensionCache = nullptr) const = 0;
60 
61 
62  static const InterfaceID& interfaceID( ) ;
63 };
64 
65 inline const InterfaceID& IParticleCaloCellAssociationTool::interfaceID() {
66  return IID_IParticleCaloCellAssociationTool;
67 }
68 
69 } // end of namespace
70 
71 #endif
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
IParticle.h
Rec::IParticleCaloCellAssociationTool
Interface for extending Particles with calo cells.
Definition: IParticleCaloCellAssociationTool.h:24
python.TurnDataReader.dr
dr
Definition: TurnDataReader.py:112
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
Rec::IParticleCaloCellAssociationTool::Cache
std::unordered_map< size_t, std::unique_ptr< ParticleCellAssociation > > Cache
Method to get the ParticleCellAssociation for a given Particle.
Definition: IParticleCaloCellAssociationTool.h:56
Rec::IParticleCaloCellAssociationTool::particleCellAssociation
virtual ParticleCellAssociation * particleCellAssociation(const xAOD::IParticle &particle, float dr, Cache &cache, const CaloCellContainer *container=nullptr, const CaloExtensionCollection *extensionCache=nullptr) const =0
Rec
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
Definition: FakeTrackBuilder.h:10
Rec::IParticleCaloCellAssociationTool::interfaceID
static const InterfaceID & interfaceID()
Definition: IParticleCaloCellAssociationTool.h:65
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ParticleCellAssociation.h
Rec::IParticleCaloCellAssociationTool::particleCellAssociation
virtual std::unique_ptr< ParticleCellAssociation > particleCellAssociation(const xAOD::IParticle &particle, float dr, const CaloCellContainer *container=nullptr, const CaloExtensionCollection *extensionCache=nullptr) const =0
Method to get the ParticleCellAssociation for a given Particle.
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
CaloExtensionCollection.h
Rec::ParticleCellAssociation
class storing calorimeter cell association with IParticle objects
Definition: ParticleCellAssociation.h:19