Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SimDataFormats_Associations_TrackToTrackingParticleAssociatorBaseImpl_h
0002 #define SimDataFormats_Associations_TrackToTrackingParticleAssociatorBaseImpl_h
0003 
0004 /** \class TrackToTrackingParticleAssociatorBaseImpl
0005  *  Base class for TrackToTrackingParticleAssociators. Methods take as input the
0006  * handle of Track and TrackingPArticle collections and return an AssociationMap
0007  * (oneToManyWithQuality)
0008  *
0009  *  \author magni, cerati
0010  */
0011 
0012 #include "DataFormats/Common/interface/Handle.h"
0013 #include "SimDataFormats/Associations/interface/TrackAssociation.h"
0014 
0015 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
0016 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0017 
0018 namespace reco {
0019   class TrackToTrackingParticleAssociatorBaseImpl {
0020   public:
0021     /// Constructor
0022     TrackToTrackingParticleAssociatorBaseImpl();
0023     /// Destructor
0024     virtual ~TrackToTrackingParticleAssociatorBaseImpl();
0025 
0026     /// compare reco to sim the handle of reco::Track and TrackingParticle
0027     /// collections
0028     virtual reco::RecoToSimCollection associateRecoToSim(const edm::Handle<edm::View<reco::Track>> &tCH,
0029                                                          const edm::Handle<TrackingParticleCollection> &tPCH) const;
0030 
0031     /// compare reco to sim the handle of reco::Track and TrackingParticle
0032     /// collections
0033     virtual reco::SimToRecoCollection associateSimToReco(const edm::Handle<edm::View<reco::Track>> &tCH,
0034                                                          const edm::Handle<TrackingParticleCollection> &tPCH) const;
0035 
0036     /// Association Reco To Sim with Collections
0037     virtual reco::RecoToSimCollection associateRecoToSim(
0038         const edm::RefToBaseVector<reco::Track> &tc, const edm::RefVector<TrackingParticleCollection> &tpc) const = 0;
0039     /// Association Sim To Reco with Collections
0040     virtual reco::SimToRecoCollection associateSimToReco(
0041         const edm::RefToBaseVector<reco::Track> &tc, const edm::RefVector<TrackingParticleCollection> &tpc) const = 0;
0042 
0043     // TrajectorySeed
0044     virtual reco::RecoToSimCollectionSeed associateRecoToSim(const edm::Handle<edm::View<TrajectorySeed>> &,
0045                                                              const edm::Handle<TrackingParticleCollection> &) const;
0046 
0047     virtual reco::SimToRecoCollectionSeed associateSimToReco(const edm::Handle<edm::View<TrajectorySeed>> &,
0048                                                              const edm::Handle<TrackingParticleCollection> &) const;
0049 
0050     // TrackCandidate
0051     virtual reco::RecoToSimCollectionTCandidate associateRecoToSim(
0052         const edm::Handle<TrackCandidateCollection> &, const edm::RefVector<TrackingParticleCollection> &) const;
0053 
0054     virtual reco::SimToRecoCollectionTCandidate associateSimToReco(
0055         const edm::Handle<TrackCandidateCollection> &, const edm::RefVector<TrackingParticleCollection> &) const;
0056   };
0057 }  // namespace reco
0058 
0059 #endif