Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-06-16 03:20:16

0001 #ifndef SimDataFormats_Associations_LayerClusterToSimTracksterAssociatorBaseImpl_h
0002 #define SimDataFormats_Associations_LayerClusterToSimTracksterAssociatorBaseImpl_h
0003 
0004 /** \class LayerClusterToSimTracksterAssociatorBaseImpl
0005  *
0006  * Base class for LayerClusterToSimTracksterAssociators. Methods take as input
0007  * the handle of LayerClusters and the SimTrackster 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/CaloRecHit/interface/CaloClusterFwd.h"
0016 #include "DataFormats/HGCalReco/interface/Trackster.h"
0017 
0018 #include "SimDataFormats/CaloAnalysis/interface/CaloParticleFwd.h"
0019 #include "LayerClusterToCaloParticleAssociatorBaseImpl.h"
0020 #include "SimDataFormats/CaloAnalysis/interface/SimClusterFwd.h"
0021 #include "LayerClusterToSimClusterAssociatorBaseImpl.h"
0022 
0023 namespace hgcal {
0024 
0025   typedef edm::AssociationMap<
0026       edm::OneToManyWithQualityGeneric<ticl::TracksterCollection, reco::CaloClusterCollection, std::pair<float, float>>>
0027       SimTracksterToRecoCollection;
0028   typedef edm::AssociationMap<
0029       edm::OneToManyWithQualityGeneric<reco::CaloClusterCollection, ticl::TracksterCollection, float>>
0030       RecoToSimTracksterCollection;
0031 
0032   class LayerClusterToSimTracksterAssociatorBaseImpl {
0033   public:
0034     /// Constructor
0035     LayerClusterToSimTracksterAssociatorBaseImpl();
0036     /// Destructor
0037     virtual ~LayerClusterToSimTracksterAssociatorBaseImpl();
0038 
0039     /// Associate a LayerCluster to SimTracksters
0040     virtual hgcal::RecoToSimTracksterCollection associateRecoToSim(
0041         const edm::Handle<reco::CaloClusterCollection> &cCH,
0042         const edm::Handle<ticl::TracksterCollection> &sTCH,
0043         const edm::Handle<CaloParticleCollection> &cPCH,
0044         const hgcal::RecoToSimCollection &lCToCPs,
0045         const edm::Handle<SimClusterCollection> &sCCH,
0046         const hgcal::RecoToSimCollectionWithSimClusters &lCToSCs) const;
0047 
0048     /// Associate a SimTrackster to LayerClusters
0049     virtual hgcal::SimTracksterToRecoCollection associateSimToReco(
0050         const edm::Handle<reco::CaloClusterCollection> &cCH,
0051         const edm::Handle<ticl::TracksterCollection> &sTCH,
0052         const edm::Handle<CaloParticleCollection> &cPCH,
0053         const hgcal::SimToRecoCollection &cPToLCs,
0054         const edm::Handle<SimClusterCollection> &sCCH,
0055         const hgcal::SimToRecoCollectionWithSimClusters &sCToLCs) const;
0056   };
0057 }  // namespace hgcal
0058 
0059 #endif