![]() |
![]() |
00001 #ifndef SimTracker_VertexAssociatorBase_h 00002 #define SimTracker_VertexAssociatorBase_h 00003 00004 #include "DataFormats/Common/interface/AssociationMap.h" 00005 #include "DataFormats/Common/interface/Handle.h" 00006 #include "DataFormats/Common/interface/OneToManyWithQuality.h" 00007 #include "DataFormats/TrackReco/interface/Track.h" 00008 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00009 #include "DataFormats/VertexReco/interface/Vertex.h" 00010 00011 #include "FWCore/Framework/interface/Event.h" 00012 00013 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticleFwd.h" 00014 #include "SimDataFormats/TrackingAnalysis/interface/TrackingVertexContainer.h" 00015 00016 #include "SimTracker/TrackAssociation/interface/TrackAssociatorBase.h" 00017 00018 namespace reco { 00019 typedef edm::AssociationMap<edm::OneToManyWithQuality <TrackingVertexCollection, reco::VertexCollection, double> > 00020 VertexSimToRecoCollection; 00021 typedef edm::AssociationMap<edm::OneToManyWithQuality <reco::VertexCollection, TrackingVertexCollection, double> > 00022 VertexRecoToSimCollection; 00023 } 00024 00025 class VertexAssociatorBase { 00026 public: 00027 VertexAssociatorBase() {;} 00028 virtual ~VertexAssociatorBase() {;} 00029 00030 virtual reco::VertexRecoToSimCollection 00031 associateRecoToSim (edm::Handle<reco::VertexCollection>& vc, 00032 edm::Handle<TrackingVertexCollection>& tvc, 00033 const edm::Event& event, 00034 reco::RecoToSimCollection& trackAssocResult) const = 0; 00035 00036 virtual reco::VertexSimToRecoCollection 00037 associateSimToReco (edm::Handle<reco::VertexCollection>& vc, 00038 edm::Handle<TrackingVertexCollection>& tvc , 00039 const edm::Event& event, 00040 reco::SimToRecoCollection& trackAssocResult) const = 0; 00041 }; 00042 00043 #endif