Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SimDataFormats_Associations_LayerClusterToSimTracksterAssociator_h
0002 #define SimDataFormats_Associations_LayerClusterToSimTracksterAssociator_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/LayerClusterToSimTracksterAssociatorBaseImpl.h"
0011 
0012 // forward declarations
0013 
0014 namespace hgcal {
0015 
0016   class LayerClusterToSimTracksterAssociator {
0017   public:
0018     LayerClusterToSimTracksterAssociator(std::unique_ptr<hgcal::LayerClusterToSimTracksterAssociatorBaseImpl>);
0019     LayerClusterToSimTracksterAssociator() = default;
0020     LayerClusterToSimTracksterAssociator(LayerClusterToSimTracksterAssociator &&) = default;
0021     LayerClusterToSimTracksterAssociator &operator=(LayerClusterToSimTracksterAssociator &&) = default;
0022     LayerClusterToSimTracksterAssociator(const LayerClusterToSimTracksterAssociator &) = delete;  // stop default
0023     const LayerClusterToSimTracksterAssociator &operator=(const LayerClusterToSimTracksterAssociator &) =
0024         delete;  // stop default
0025 
0026     ~LayerClusterToSimTracksterAssociator() = default;
0027 
0028     // ---------- const member functions ---------------------
0029     /// Associate a LayerCluster to SimTracksters
0030     hgcal::RecoToSimTracksterCollection associateRecoToSim(
0031         const edm::Handle<reco::CaloClusterCollection> &cCCH,
0032         const edm::Handle<ticl::TracksterCollection> &stCH,
0033         const edm::Handle<CaloParticleCollection> &cPCH,
0034         const hgcal::RecoToSimCollection &lCToCPs,
0035         const edm::Handle<SimClusterCollection> &sCCH,
0036         const hgcal::RecoToSimCollectionWithSimClusters &lCToSCs) const {
0037       return m_impl->associateRecoToSim(cCCH, stCH, cPCH, lCToCPs, sCCH, lCToSCs);
0038     };
0039 
0040     /// Associate a SimTrackster to LayerClusters
0041     hgcal::SimTracksterToRecoCollection associateSimToReco(
0042         const edm::Handle<reco::CaloClusterCollection> &cCCH,
0043         const edm::Handle<ticl::TracksterCollection> &sTCH,
0044         const edm::Handle<CaloParticleCollection> &cPCH,
0045         const hgcal::SimToRecoCollection &cpToLCs,
0046         const edm::Handle<SimClusterCollection> &sCCH,
0047         const hgcal::SimToRecoCollectionWithSimClusters &sCToLCs) const {
0048       return m_impl->associateSimToReco(cCCH, sTCH, cPCH, cpToLCs, sCCH, sCToLCs);
0049     }
0050 
0051   private:
0052     // ---------- member data --------------------------------
0053     std::unique_ptr<LayerClusterToSimTracksterAssociatorBaseImpl> m_impl;
0054   };
0055 }  // namespace hgcal
0056 
0057 #endif