Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-08-04 02:02:57

0001 #ifndef SimDataFormats_Associations_LayerClusterToCaloParticleAssociator_h
0002 #define SimDataFormats_Associations_LayerClusterToCaloParticleAssociator_h
0003 // Original Author:  Marco Rovere
0004 
0005 // system include files
0006 #include <memory>
0007 
0008 // user include files
0009 
0010 #include "SimDataFormats/Associations/interface/LayerClusterToCaloParticleAssociatorBaseImpl.h"
0011 
0012 // forward declarations
0013 
0014 namespace hgcal {
0015 
0016   class LayerClusterToCaloParticleAssociator {
0017   public:
0018     LayerClusterToCaloParticleAssociator(std::unique_ptr<hgcal::LayerClusterToCaloParticleAssociatorBaseImpl>);
0019     LayerClusterToCaloParticleAssociator() = default;
0020     LayerClusterToCaloParticleAssociator(LayerClusterToCaloParticleAssociator &&) = default;
0021     LayerClusterToCaloParticleAssociator &operator=(LayerClusterToCaloParticleAssociator &&) = default;
0022     LayerClusterToCaloParticleAssociator(const LayerClusterToCaloParticleAssociator &) = delete;  // stop default
0023     const LayerClusterToCaloParticleAssociator &operator=(const LayerClusterToCaloParticleAssociator &) =
0024         delete;  // stop default
0025 
0026     ~LayerClusterToCaloParticleAssociator() = default;
0027 
0028     // ---------- const member functions ---------------------
0029     /// Associate a LayerCluster to CaloParticles
0030     hgcal::RecoToSimCollection associateRecoToSim(const edm::Handle<reco::CaloClusterCollection> &cCCH,
0031                                                   const edm::Handle<CaloParticleCollection> &cPCH) const {
0032       return m_impl->associateRecoToSim(cCCH, cPCH);
0033     };
0034 
0035     /// Associate a CaloParticle to LayerClusters
0036     hgcal::SimToRecoCollection associateSimToReco(const edm::Handle<reco::CaloClusterCollection> &cCCH,
0037                                                   const edm::Handle<CaloParticleCollection> &cPCH) const {
0038       return m_impl->associateSimToReco(cCCH, cPCH);
0039     }
0040 
0041   private:
0042     // ---------- member data --------------------------------
0043     std::unique_ptr<LayerClusterToCaloParticleAssociatorBaseImpl> m_impl;
0044   };
0045 }  // namespace hgcal
0046 
0047 #endif