CMS 3D CMS Logo

MuonToSimAssociatorBase.h
Go to the documentation of this file.
1 #ifndef MuonToSimAssociatorBase_h
2 #define MuonToSimAssociatorBase_h
3 
12 
13 class TrackerTopology;
14 
16 public:
18  virtual ~MuonToSimAssociatorBase();
19 
21 
22  struct RefToBaseSort {
23  template <typename T>
24  bool operator()(const edm::RefToBase<T> &r1, const edm::RefToBase<T> &r2) const {
25  return (r1.id() == r2.id() ? r1.key() < r2.key() : r1.id() < r2.id());
26  }
27  };
28  typedef std::map<edm::RefToBase<reco::Muon>, std::vector<std::pair<TrackingParticleRef, double>>, RefToBaseSort>
30  typedef std::map<TrackingParticleRef, std::vector<std::pair<edm::RefToBase<reco::Muon>, double>>> SimToMuonCollection;
31 
32  virtual void associateMuons(MuonToSimCollection &recoToSim,
33  SimToMuonCollection &simToReco,
37  const edm::Event *event = nullptr,
38  const edm::EventSetup *setup = nullptr) const = 0;
39 
40  virtual void associateMuons(MuonToSimCollection &recoToSim,
41  SimToMuonCollection &simToReco,
45  const edm::Event *event = nullptr,
46  const edm::EventSetup *setup = nullptr) const = 0;
47 };
48 
49 #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