Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:39

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