CMS 3D CMS Logo

TagProbePairMaker.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_TagAndProbe_TagProbePairMaker_h
2 #define PhysicsTools_TagAndProbe_TagProbePairMaker_h
3 
9 
11 
12 #include "TRandom2.h"
13 
14 namespace tnp {
15 
17  struct TagProbePair {
19  float mass;
22  const reco::CandidateBaseRef &tp, float m) : tag(t), probe(p), pair(tp), mass(m) {}
23  };
24  typedef std::vector<TagProbePair> TagProbePairs;
25 
27  public:
29 
30 
31  ~TagProbePairMaker() {delete randGen_;}
33  TagProbePairs run(const edm::Event &iEvent) const ;
34  private:
36  enum Arbitration { None, OneProbe, BestMass, Random2, NonDuplicate, OnePair, HighestPt };
39  void arbitrate(TagProbePairs &pairs) const ;
40  TRandom2* randGen_;
41 
42  // SCZ
44  void phiCutByEventNumber(TagProbePairs &pairs, int eventNumber) const ;
45  };
46 }
47 
48 #endif
reco::CandidateBaseRef probe
std::vector< TagProbePair > TagProbePairs
reco::CandidateBaseRef tag
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< reco::CandidateView > srcToken_
reco::CandidateBaseRef pair
TagProbePair(const reco::CandidateBaseRef &t, const reco::CandidateBaseRef &p, const reco::CandidateBaseRef &tp, float m)
a simple struct to hold tag, probe and mass