CMS 3D CMS Logo

MuonToSimAssociatorBase.h
Go to the documentation of this file.
1 #ifndef MuonToSimAssociatorBase_h
2 #define MuonToSimAssociatorBase_h
3 
12 
13 
14 class TrackerTopology;
15 
17 
18  public:
19 
21  virtual ~MuonToSimAssociatorBase();
22 
24 
25  struct RefToBaseSort {
26  template<typename T> bool operator()(const edm::RefToBase<T> &r1, const edm::RefToBase<T> &r2) const {
27  return (r1.id() == r2.id() ? r1.key() < r2.key() : r1.id() < r2.id());
28  }
29  };
30  typedef std::map<edm::RefToBase<reco::Muon>, std::vector<std::pair<TrackingParticleRef, double> >, RefToBaseSort> MuonToSimCollection;
31  typedef std::map<TrackingParticleRef, std::vector<std::pair<edm::RefToBase<reco::Muon>, double> > > SimToMuonCollection;
32 
33 
34  virtual void associateMuons(MuonToSimCollection & recoToSim, SimToMuonCollection & simToReco,
37  const edm::Event * event = nullptr, const edm::EventSetup * setup = nullptr) const = 0;
38 
39  virtual void associateMuons(MuonToSimCollection & recoToSim, SimToMuonCollection & simToReco,
42  const edm::Event * event = nullptr, const edm::EventSetup * setup = nullptr) const = 0;
43 
44 };
45 
46 #endif
std::map< edm::RefToBase< reco::Muon >, std::vector< std::pair< TrackingParticleRef, double > >, RefToBaseSort > MuonToSimCollection
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:2
ProductID id() const
Definition: RefToBase.h:242
virtual void associateMuons(MuonToSimCollection &recoToSim, SimToMuonCollection &simToReco, const edm::RefToBaseVector< reco::Muon > &, MuonTrackType, const edm::RefVector< TrackingParticleCollection > &, const edm::Event *event=0, const edm::EventSetup *setup=0) const =0
size_t key() const
Definition: RefToBase.h:250
bool operator()(const edm::RefToBase< T > &r1, const edm::RefToBase< T > &r2) const
std::map< TrackingParticleRef, std::vector< std::pair< edm::RefToBase< reco::Muon >, double > > > SimToMuonCollection
Definition: event.py:1