Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-04-14 02:23:01

0001 #ifndef SimDataFormats_Associations_TracksterToSimClusterAssociatorBaseImpl_h
0002 #define SimDataFormats_Associations_TracksterToSimClusterAssociatorBaseImpl_h
0003 
0004 /** \class TracksterToSimClusterAssociatorBaseImpl
0005  *
0006  * Base class for TracksterToSimClusterAssociator. Methods take as input
0007  * the handles of Tracksters, LayerClusters and SimClusters 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/HGCalReco/interface/Trackster.h"
0016 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
0017 
0018 #include "SimDataFormats/CaloAnalysis/interface/SimClusterFwd.h"
0019 
0020 namespace hgcal {
0021 
0022   typedef edm::AssociationMap<
0023       edm::OneToManyWithQualityGeneric<SimClusterCollection, ticl::TracksterCollection, std::pair<float, float>>>
0024       SimToRecoCollectionTracksters;
0025   typedef edm::AssociationMap<edm::OneToManyWithQualityGeneric<ticl::TracksterCollection, SimClusterCollection, float>>
0026       RecoToSimCollectionTracksters;
0027 
0028   class TracksterToSimClusterAssociatorBaseImpl {
0029   public:
0030     /// Constructor
0031     TracksterToSimClusterAssociatorBaseImpl();
0032     /// Destructor
0033     virtual ~TracksterToSimClusterAssociatorBaseImpl();
0034 
0035     /// Associate a Trackster to SimClusters
0036     virtual hgcal::RecoToSimCollectionTracksters associateRecoToSim(
0037         const edm::Handle<ticl::TracksterCollection> &tCH,
0038         const edm::Handle<reco::CaloClusterCollection> &lCCH,
0039         const edm::Handle<SimClusterCollection> &sCCH) const;
0040 
0041     /// Associate a SimCluster to Tracksters
0042     virtual hgcal::SimToRecoCollectionTracksters associateSimToReco(
0043         const edm::Handle<ticl::TracksterCollection> &tCH,
0044         const edm::Handle<reco::CaloClusterCollection> &lCCH,
0045         const edm::Handle<SimClusterCollection> &sCCH) const;
0046   };
0047 }  // namespace hgcal
0048 
0049 #endif