Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SimDataFormats_Associations_MultiClusterToCaloParticleAssociatorBaseImpl_h
0002 #define SimDataFormats_Associations_MultiClusterToCaloParticleAssociatorBaseImpl_h
0003 
0004 /** \class MultiClusterToCaloParticleAssociatorBaseImpl
0005  *
0006  * Base class for MultiClusterToCaloParticleAssociators. Methods take as input
0007  * the handle of MultiClusters and the CaloParticle collections and return an
0008  * AssociationMap (oneToManyWithQuality)
0009  *
0010  *  \author Leonardo Cristella
0011  */
0012 
0013 #include "DataFormats/Common/interface/Handle.h"
0014 #include "DataFormats/Common/interface/AssociationMap.h"
0015 #include "DataFormats/ParticleFlowReco/interface/HGCalMultiCluster.h"
0016 
0017 #include "SimDataFormats/CaloAnalysis/interface/CaloParticleFwd.h"
0018 
0019 namespace hgcal {
0020 
0021   typedef edm::AssociationMap<
0022       edm::OneToManyWithQualityGeneric<CaloParticleCollection, reco::HGCalMultiClusterCollection, std::pair<float, float>>>
0023       SimToRecoCollectionWithMultiClusters;
0024   typedef edm::AssociationMap<
0025       edm::OneToManyWithQualityGeneric<reco::HGCalMultiClusterCollection, CaloParticleCollection, float>>
0026       RecoToSimCollectionWithMultiClusters;
0027 
0028   class MultiClusterToCaloParticleAssociatorBaseImpl {
0029   public:
0030     /// Constructor
0031     MultiClusterToCaloParticleAssociatorBaseImpl();
0032     /// Destructor
0033     virtual ~MultiClusterToCaloParticleAssociatorBaseImpl();
0034 
0035     /// Associate a MultiCluster to CaloParticles
0036     virtual hgcal::RecoToSimCollectionWithMultiClusters associateRecoToSim(
0037         const edm::Handle<reco::HGCalMultiClusterCollection> &cCH,
0038         const edm::Handle<CaloParticleCollection> &cPCH) const;
0039 
0040     /// Associate a CaloParticle to MultiClusters
0041     virtual hgcal::SimToRecoCollectionWithMultiClusters associateSimToReco(
0042         const edm::Handle<reco::HGCalMultiClusterCollection> &cCH,
0043         const edm::Handle<CaloParticleCollection> &cPCH) const;
0044   };
0045 }  // namespace hgcal
0046 
0047 #endif