Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 23:31:13

0001 #ifndef SimDataFormats_Associations_LayerClusterToSimClusterAssociatorBaseImpl_h
0002 #define SimDataFormats_Associations_LayerClusterToSimClusterAssociatorBaseImpl_h
0003 
0004 /** \class LayerClusterToSimClusterAssociatorBaseImpl
0005  *
0006  * Base class for LayerClusterToSimClusterAssociators.  Methods take as input
0007  * the handle of LayerClusters and the SimCluster collections and return an
0008  * AssociationMap (oneToManyWithQuality)
0009  *
0010  *  \author Marco Rovere
0011  */
0012 
0013 #include "DataFormats/Common/interface/Handle.h"
0014 #include "DataFormats/Common/interface/AssociationMap.h"
0015 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
0016 
0017 #include "SimDataFormats/CaloAnalysis/interface/SimClusterFwd.h"
0018 
0019 namespace hgcal {
0020 
0021   typedef edm::AssociationMap<
0022       edm::OneToManyWithQualityGeneric<SimClusterCollection, reco::CaloClusterCollection, std::pair<float, float>>>
0023       SimToRecoCollectionWithSimClusters;
0024   typedef edm::AssociationMap<edm::OneToManyWithQualityGeneric<reco::CaloClusterCollection, SimClusterCollection, float>>
0025       RecoToSimCollectionWithSimClusters;
0026 
0027   class LayerClusterToSimClusterAssociatorBaseImpl {
0028   public:
0029     /// Constructor
0030     LayerClusterToSimClusterAssociatorBaseImpl();
0031     /// Destructor
0032     virtual ~LayerClusterToSimClusterAssociatorBaseImpl();
0033 
0034     /// Associate a LayerCluster to SimClusters
0035     virtual hgcal::RecoToSimCollectionWithSimClusters associateRecoToSim(
0036         const edm::Handle<reco::CaloClusterCollection> &cCH, const edm::Handle<SimClusterCollection> &sCCH) const;
0037 
0038     /// Associate a SimCluster to LayerClusters
0039     virtual hgcal::SimToRecoCollectionWithSimClusters associateSimToReco(
0040         const edm::Handle<reco::CaloClusterCollection> &cCH, const edm::Handle<SimClusterCollection> &sCCH) const;
0041   };
0042 }  // namespace hgcal
0043 
0044 #endif