CMS 3D CMS Logo

MatchStruct.cc
Go to the documentation of this file.
1 #ifndef HLTRIGGEROFFLINE_HIGGS_MATCHSTRUCT_CC
2 #define HLTRIGGEROFFLINE_HIGGS_MATCHSTRUCT_CC
3 
15 
16 #include "TLorentzVector.h"
18 
19 #include <vector>
20 
21 // Matching structure: helper structure to match gen/reco candidates with
22 // hlt trigger objects
23 struct MatchStruct {
24  unsigned int objType;
25  float pt;
26  float eta;
27  float phi;
28  float bTag;
30  const void* thepointer;
31  MatchStruct() : objType(0), pt(0), eta(0), phi(0), bTag(0), lorentzVector(0, 0, 0, 0), thepointer(nullptr) {}
32  MatchStruct(const reco::Candidate* cand, const unsigned int& obj)
33  : objType(obj),
34  pt(cand->pt()),
35  eta(cand->eta()),
36  phi(cand->phi()),
38 
39  {}
40  MatchStruct(const reco::Candidate* cand, const unsigned int& obj, const float& bTagVal)
41  : objType(obj),
42  pt(cand->pt()),
43  eta(cand->eta()),
44  phi(cand->phi()),
45  bTag(bTagVal),
46  lorentzVector(cand->p4()),
48 
49  {}
50  // FIXME: If finally the track is disappeared, then recover the last code...
51  MatchStruct(const reco::Track* cand, const unsigned int& obj)
52  : objType(obj), pt(cand->pt()), eta(cand->eta()), phi(cand->phi()), thepointer(cand) {}
53  bool operator<(MatchStruct match) { return this->pt < match.pt; }
54  bool operator>(MatchStruct match) { return this->pt > match.pt; }
55 };
56 
59  bool operator()(MatchStruct a, MatchStruct b) { return a.pt > b.pt; }
60 };
62  bool operator()(MatchStruct a, MatchStruct b) { return a.bTag > b.bTag; }
63 };
64 #endif
MatchStruct::objType
unsigned int objType
Definition: MatchStruct.cc:24
matchesByDescendingPt
Helper structure to order MatchStruct.
Definition: MatchStruct.cc:58
MatchStruct::phi
float phi
Definition: MatchStruct.cc:27
Track.h
reco::Track
Definition: Track.h:27
MatchStruct::pt
float pt
Definition: MatchStruct.cc:25
MatchStruct::MatchStruct
MatchStruct()
Definition: MatchStruct.cc:31
matchesByDescendingPt::operator()
bool operator()(MatchStruct a, MatchStruct b)
Definition: MatchStruct.cc:59
MatchStruct::MatchStruct
MatchStruct(const reco::Candidate *cand, const unsigned int &obj, const float &bTagVal)
Definition: MatchStruct.cc:40
b
double b
Definition: hdecay.h:118
getGTfromDQMFile.obj
obj
Definition: getGTfromDQMFile.py:32
MatchStruct
Definition: MatchStruct.cc:23
a
double a
Definition: hdecay.h:119
lorentzVector
reco::Particle::LorentzVector lorentzVector
Definition: GenMuonPair.h:9
MatchStruct::thepointer
const void * thepointer
Definition: MatchStruct.cc:30
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
cand
Definition: decayParser.h:32
matchesByDescendingBtag::operator()
bool operator()(MatchStruct a, MatchStruct b)
Definition: MatchStruct.cc:62
MatchStruct::lorentzVector
math::XYZTLorentzVector lorentzVector
Definition: MatchStruct.cc:29
p4
double p4[4]
Definition: TauolaWrapper.h:92
matchesByDescendingBtag
Definition: MatchStruct.cc:61
reco::Candidate
Definition: Candidate.h:27
MatchStruct::operator<
bool operator<(MatchStruct match)
Definition: MatchStruct.cc:53
MatchStruct::bTag
float bTag
Definition: MatchStruct.cc:28
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
MatchStruct::eta
float eta
Definition: MatchStruct.cc:26
MatchStruct::MatchStruct
MatchStruct(const reco::Candidate *cand, const unsigned int &obj)
Definition: MatchStruct.cc:32
Candidate.h
MatchStruct::operator>
bool operator>(MatchStruct match)
Definition: MatchStruct.cc:54
Vector3D.h
MatchStruct::MatchStruct
MatchStruct(const reco::Track *cand, const unsigned int &obj)
Definition: MatchStruct.cc:51