Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:28:47

0001 #ifndef SimDataFormats_Associations_LayerClusterToCaloParticleAssociatorBaseImpl_h
0002 #define SimDataFormats_Associations_LayerClusterToCaloParticleAssociatorBaseImpl_h
0003 
0004 /** \class LayerClusterToCaloParticleAssociatorBaseImpl
0005  *
0006  * Base class for LayerClusterToCaloParticleAssociators.  Methods take as input
0007  * the handle of LayerClusters and the CaloParticle 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/CaloParticleFwd.h"
0018 
0019 namespace hgcal {
0020 
0021   typedef edm::AssociationMap<
0022       edm::OneToManyWithQualityGeneric<CaloParticleCollection, reco::CaloClusterCollection, std::pair<float, float>>>
0023       SimToRecoCollection;
0024   typedef edm::AssociationMap<
0025       edm::OneToManyWithQualityGeneric<reco::CaloClusterCollection, CaloParticleCollection, float>>
0026       RecoToSimCollection;
0027 
0028   class LayerClusterToCaloParticleAssociatorBaseImpl {
0029   public:
0030     /// Constructor
0031     LayerClusterToCaloParticleAssociatorBaseImpl();
0032     /// Destructor
0033     virtual ~LayerClusterToCaloParticleAssociatorBaseImpl();
0034 
0035     /// Associate a LayerCluster to CaloParticles
0036     virtual hgcal::RecoToSimCollection associateRecoToSim(const edm::Handle<reco::CaloClusterCollection> &cCH,
0037                                                           const edm::Handle<CaloParticleCollection> &cPCH) const;
0038 
0039     /// Associate a CaloParticle to LayerClusters
0040     virtual hgcal::SimToRecoCollection associateSimToReco(const edm::Handle<reco::CaloClusterCollection> &cCH,
0041                                                           const edm::Handle<CaloParticleCollection> &cPCH) const;
0042   };
0043 }  // namespace hgcal
0044 
0045 #endif