Go to the documentation of this file.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/Common/interface/View.h"
00008 #include "DataFormats/TrackReco/interface/Track.h"
00009 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00010 #include "DataFormats/VertexReco/interface/Vertex.h"
00011
00012 #include "FWCore/Framework/interface/Event.h"
00013
00014 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticleFwd.h"
00015 #include "SimDataFormats/TrackingAnalysis/interface/TrackingVertexContainer.h"
00016
00017 #include "SimTracker/TrackAssociation/interface/TrackAssociatorBase.h"
00018
00019 namespace reco
00020 {
00021 typedef edm::RefToBase<reco::Vertex> VertexBaseRef;
00022 typedef edm::AssociationMap<edm::OneToManyWithQuality <TrackingVertexCollection, edm::View<reco::Vertex>, double> > VertexSimToRecoCollection;
00023 typedef edm::AssociationMap<edm::OneToManyWithQuality <edm::View<reco::Vertex>, TrackingVertexCollection, double> > VertexRecoToSimCollection;
00024 }
00025
00026 class VertexAssociatorBase
00027 {
00028
00029 public:
00030
00031 VertexAssociatorBase(){}
00032 virtual ~VertexAssociatorBase(){}
00033
00034 virtual reco::VertexRecoToSimCollection
00035 associateRecoToSim (edm::Handle<edm::View<reco::Vertex> >&,
00036 edm::Handle<TrackingVertexCollection>&,
00037 const edm::Event&,
00038 reco::RecoToSimCollection&) const = 0;
00039
00040 virtual reco::VertexSimToRecoCollection
00041 associateSimToReco (edm::Handle<edm::View<reco::Vertex> >&,
00042 edm::Handle<TrackingVertexCollection>&,
00043 const edm::Event&,
00044 reco::SimToRecoCollection&) const = 0;
00045 };
00046
00047 #endif