CMS 3D CMS Logo

TopDQMHelpers.h
Go to the documentation of this file.
1 #ifndef TOPDQMHELPERS
2 #define TOPDQMHELPERS
3 
4 #include <string>
5 #include <vector>
6 #include <iostream>
15 
20 
30 inline bool accept(const edm::Event& event, const edm::TriggerResults& triggerTable, const std::string& triggerPath) {
31  bool passed = false;
32  const edm::TriggerNames& triggerNames = event.triggerNames(triggerTable);
33  for (unsigned int i = 0; i < triggerNames.triggerNames().size(); ++i) {
34  if (triggerNames.triggerNames()[i] == triggerPath) {
35  if (triggerTable.accept(i)) {
36  passed = true;
37  break;
38  }
39  }
40  }
41  return passed;
42 }
43 
44 inline bool accept(const edm::Event& event,
45  const edm::TriggerResults& triggerTable,
46  const std::vector<std::string>& triggerPaths) {
47  bool passed = false;
48  for (unsigned int j = 0; j < triggerPaths.size(); ++j) {
49  if (accept(event, triggerTable, triggerPaths[j])) {
50  passed = true;
51  break;
52  }
53  }
54  return passed;
55 }
56 
59 
71 public:
73  Calculate_miniAOD(int maxNJets, double wMass);
76 
78  double massWBoson(const std::vector<pat::Jet>& jets);
80  double massTopQuark(const std::vector<pat::Jet>& jets);
82  // double massBTopQuark(const std::vector<reco::Jet>& jets, std::vector<bool>
83  // bjet);
84  double massBTopQuark(const std::vector<pat::Jet>& jets, std::vector<double> VbtagWP, double btagWP_);
85 
87  double tmassWBoson(pat::Muon* lep, const pat::MET& met, const pat::Jet& b);
89  double tmassTopQuark(pat::Muon* lep, const pat::MET& met, const pat::Jet& b);
90 
92  double tmassWBoson(pat::Electron* lep, const pat::MET& met, const pat::Jet& b);
94  double tmassTopQuark(pat::Electron* lep, const pat::MET& met, const pat::Jet& b);
95 
96 private:
100  void operator()(const std::vector<pat::Jet>& jets);
102  void operator2(const std::vector<pat::Jet>&, std::vector<double>, double);
104  void operator()(const pat::Jet& bJet, pat::Electron* lepton, const pat::MET& met);
105 
106  void operator()(const pat::Jet& bJet, pat::Muon* lepton, const pat::MET& met);
107 
108 private:
110  bool failed_;
114  double wMass_;
116  double massWBoson_;
122  double tmassWBoson_;
125 };
126 
127 class Calculate {
128 public:
130  Calculate(int maxNJets, double wMass);
133 
135  double massWBoson(const std::vector<reco::Jet>& jets);
137  double massTopQuark(const std::vector<reco::Jet>& jets);
139  // double massBTopQuark(const std::vector<reco::Jet>& jets, std::vector<bool>
140  // bjet);
141  double massBTopQuark(const std::vector<reco::Jet>& jets, std::vector<double> VbtagWP, double btagWP_);
142 
144  double tmassWBoson(reco::RecoCandidate* lep, const reco::MET& met, const reco::Jet& b);
146  double tmassTopQuark(reco::RecoCandidate* lep, const reco::MET& met, const reco::Jet& b);
147 
148 private:
152  void operator()(const std::vector<reco::Jet>& jets);
154  void operator2(const std::vector<reco::Jet>&, std::vector<double>, double);
156  void operator()(const reco::Jet& bJet, reco::RecoCandidate* lepton, const reco::MET& met);
157 
158 private:
160  bool failed_;
164  double wMass_;
166  double massWBoson_;
172  double tmassWBoson_;
175 };
176 
187 
236 template <typename Object>
238 public:
243 
245  bool select(const edm::Event& event);
246  bool select(const edm::Event& event, const std::string& type);
248  bool select(const edm::Event& event, const edm::EventSetup& setup);
249  bool selectVertex(const edm::Event& event);
250 
251 private:
255  int min_, max_;
269  double eidCutValue_;
278 
285 };
286 
288 template <typename Object>
290  : select_(cfg.getParameter<std::string>("select")), jetIDSelect_(nullptr) {
291  src_ = iC.consumes<edm::View<Object> >(cfg.getParameter<edm::InputTag>("src"));
292  // exist otherwise they are initialized with -1
293  cfg.exists("min") ? min_ = cfg.getParameter<int>("min") : min_ = -1;
294  cfg.exists("max") ? max_ = cfg.getParameter<int>("max") : max_ = -1;
295  std::string mygSF = "gedGsfElectrons";
296  gsfEs_ = iC.consumes<edm::View<reco::GsfElectron> >(cfg.getUntrackedParameter<edm::InputTag>("myGSF", mygSF));
297  if (cfg.existsAs<edm::ParameterSet>("electronId")) {
298  edm::ParameterSet elecId = cfg.getParameter<edm::ParameterSet>("electronId");
299  electronId_ = iC.consumes<edm::ValueMap<float> >(elecId.getParameter<edm::InputTag>("src"));
300  eidCutValue_ = elecId.getParameter<double>("cutValue");
301  }
302  if (cfg.exists("jetCorrector")) {
303  jetCorrector_ = cfg.getParameter<std::string>("jetCorrector");
304  }
305  if (cfg.existsAs<edm::ParameterSet>("jetBTagger")) {
306  edm::ParameterSet jetBTagger = cfg.getParameter<edm::ParameterSet>("jetBTagger");
307  btagLabel_ = iC.consumes<reco::JetTagCollection>(jetBTagger.getParameter<edm::InputTag>("label"));
308  btagWorkingPoint_ = jetBTagger.getParameter<double>("workingPoint");
309  }
310  if (cfg.existsAs<edm::ParameterSet>("jetID")) {
311  edm::ParameterSet jetID = cfg.getParameter<edm::ParameterSet>("jetID");
312  jetIDLabel_ = iC.consumes<reco::JetIDValueMap>(jetID.getParameter<edm::InputTag>("label"));
314  }
315 }
316 
318 template <typename Object>
320  // fetch input collection
322  if (!event.getByToken(src_, src))
323  return false;
324 
325  // load electronId value map if configured such
327  if (!electronId_.isUninitialized()) {
328  if (!event.getByToken(electronId_, electronId))
329  return false;
330  }
331 
332  // determine multiplicity of selected objects
333  int n = 0;
334  for (typename edm::View<Object>::const_iterator obj = src->begin(); obj != src->end(); ++obj) {
335  // special treatment for electrons
336  if (dynamic_cast<const reco::GsfElectron*>(&*obj)) {
337  unsigned int idx = obj - src->begin();
338  if (electronId_.isUninitialized() ? true : ((double)(*electronId)[src->refAt(idx)] >= eidCutValue_)) {
339  if (select_(*obj))
340  ++n;
341  }
342  }
343  // normal treatment
344  else {
345  if (select_(*obj))
346  ++n;
347  }
348  }
349  bool accept = (min_ >= 0 ? n >= min_ : true) && (max_ >= 0 ? n <= max_ : true);
350  return (min_ < 0 && max_ < 0) ? (n > 0) : accept;
351 }
352 
354 template <typename Object>
356  // fetch input collection
358  if (!event.getByToken(src_, src))
359  return false;
360 
361  // special for gsfElectron
363 
364  // load electronId value map if configured such
366  if (!electronId_.isUninitialized()) {
367  if (!event.getByToken(electronId_, electronId))
368  return false;
369  }
370 
371  // determine multiplicity of selected objects
372  int n = 0;
373  for (typename edm::View<Object>::const_iterator obj = src->begin(); obj != src->end(); ++obj) {
374  // special treatment for PF candidates
375  if (dynamic_cast<const reco::PFCandidate*>(&*obj)) {
376  reco::PFCandidate objtmp = dynamic_cast<const reco::PFCandidate&>(*obj);
377 
378  if (objtmp.muonRef().isNonnull() && type == "muon") {
379  if (select_(*obj)) {
380  ++n;
381  }
382  } else if (objtmp.gsfElectronRef().isNonnull() && type == "electron") {
383  if (select_(*obj)) {
384  if (electronId_.isUninitialized()) {
385  ++n;
386  } else if (((double)(*electronId)[obj->gsfElectronRef()] >= eidCutValue_)) {
387  ++n;
388  }
389  }
390  // idx_gsf++;
391  }
392  }
393 
394  // special treatment for electrons
395  else if (dynamic_cast<const reco::GsfElectron*>(&*obj)) {
396  unsigned int idx = obj - src->begin();
397  if (electronId_.isUninitialized() ? true : ((double)(*electronId)[src->refAt(idx)] >= eidCutValue_)) {
398  if (select_(*obj))
399  ++n;
400  }
401  }
402 
403  // normal treatment
404  else {
405  if (select_(*obj))
406  ++n;
407  }
408  }
409  bool accept = (min_ >= 0 ? n >= min_ : true) && (max_ >= 0 ? n <= max_ : true);
410  return (min_ < 0 && max_ < 0) ? (n > 0) : accept;
411 }
412 
413 template <typename Object>
415  // fetch input collection
417  if (!event.getByToken(src_, src))
418  return false;
419 
420  // load electronId value map if configured such
422  if (!electronId_.isUninitialized()) {
423  if (!event.getByToken(electronId_, electronId))
424  return false;
425  }
426 
427  // determine multiplicity of selected objects
428  int n = 0;
429  for (typename edm::View<Object>::const_iterator obj = src->begin(); obj != src->end(); ++obj) {
430  if (select_(*obj))
431  ++n;
432  }
433  bool accept = (min_ >= 0 ? n >= min_ : true) && (max_ >= 0 ? n <= max_ : true);
434  return (min_ < 0 && max_ < 0) ? (n > 0) : accept;
435 }
436 
438 template <typename Object>
440  // fetch input collection
442  if (!event.getByToken(src_, src))
443  return false;
444 
445  // load btag collection if configured such
446  // NOTE that the JetTagCollection needs an
447  // edm::View to reco::Jets; we have to add
448  // another Handle bjets for this purpose
452  if (!btagLabel_.isUninitialized()) {
453  if (!event.getByToken(src_, bjets))
454  return false;
455  if (!event.getByToken(btagLabel_, btagger))
456  return false;
457  if (!event.getByToken(pvs_, pvertex))
458  return false;
459  }
460 
461  // load jetID value map if configured such
463  if (jetIDSelect_) {
464  if (!event.getByToken(jetIDLabel_, jetID))
465  return false;
466  }
467 
468  // load jet corrector if configured such
469  const JetCorrector* corrector = nullptr;
470  if (!jetCorrector_.empty()) {
471  // check whether a jet correcto is in the event setup or not
472  if (setup.find(edm::eventsetup::EventSetupRecordKey::makeKey<JetCorrectionsRecord>())) {
474  } else {
475  edm::LogVerbatim("TopDQMHelpers") << "\n"
476  << "---------------------------------------------------------------\n"
477  << " No JetCorrectionsRecord available from EventSetup:\n"
478  << " - Jets will not be corrected.\n"
479  << " - If you want to change this add the following lines to your "
480  "cfg file:\n"
481  << "\n"
482  << " ## load jet corrections\n"
483  << " process.load(\""
484  "JetMETCorrections.Configuration.JetCorrectionServicesAllAlgos_cff"
485  "\")\n"
486  << " process.prefer(\"ak5CaloL2L3\")\n"
487  << "---------------------------------------------------------------"
488  "\n";
489  }
490  }
491  // determine multiplicity of selected objects
492  int n = 0;
493  for (typename edm::View<Object>::const_iterator obj = src->begin(); obj != src->end(); ++obj) {
494  // check for chosen btag discriminator to be above the
495  // corresponding working point if configured such
496  unsigned int idx = obj - src->begin();
497  if (btagLabel_.isUninitialized() ? true : (*btagger)[bjets->refAt(idx)] > btagWorkingPoint_) {
498  bool passedJetID = true;
499  // check jetID for calo jets
500  if (jetIDSelect_ && dynamic_cast<const reco::CaloJet*>(src->refAt(idx).get())) {
501  passedJetID = (*jetIDSelect_)((*jetID)[src->refAt(idx)]);
502  }
503  if (passedJetID) {
504  // scale jet energy if configured such
505  Object jet = *obj;
506  jet.scaleEnergy(corrector ? corrector->correction(*obj) : 1.);
507  if (select_(jet))
508  ++n;
509  }
510  }
511  }
512  bool accept = (min_ >= 0 ? n >= min_ : true) && (max_ >= 0 ? n <= max_ : true);
513  return (min_ < 0 && max_ < 0) ? (n > 0) : accept;
514 }
515 
516 #endif
517 
518 /* Local Variables: */
519 /* show-trailing-whitespace: t */
520 /* truncate-lines: t */
521 /* End: */
Calculate_miniAOD::Calculate_miniAOD
Calculate_miniAOD(int maxNJets, double wMass)
default constructor
Definition: TopDQMHelpers.cc:155
Calculate_miniAOD::tmassTopQuark
double tmassTopQuark(pat::Muon *lep, const pat::MET &met, const pat::Jet &b)
calculate top quark transverse mass estimate
Definition: TopDQMHelpers.cc:203
JetTag.h
CaloJet.h
mps_fire.i
i
Definition: mps_fire.py:428
reco::Jet
Base class for all types of Jets.
Definition: Jet.h:20
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
Calculate::massBTopQuark_
double massBTopQuark_
cache of b-tagged top quark mass estimate
Definition: TopDQMHelpers.h:170
JetID.h
TriggerResults.h
PFCandidate.h
edm::EDGetTokenT
Definition: EDGetToken.h:33
JetCorrector.h
Muon.h
PFJet.h
Calculate::Calculate
Calculate(int maxNJets, double wMass)
default constructor
Definition: TopDQMHelpers.cc:3
Jet.h
Calculate_miniAOD::maxNJets_
int maxNJets_
max. number of jets to be considered
Definition: TopDQMHelpers.h:112
singleTopDQM_cfi.jets
jets
Definition: singleTopDQM_cfi.py:42
eventshapeDQM_cfi.triggerPath
triggerPath
Definition: eventshapeDQM_cfi.py:7
pat::Muon
Analysis-level muon class.
Definition: Muon.h:51
topSingleLeptonDQM_PU_cfi.electronId
electronId
when omitted electron plots will be filled w/o cut on electronId
Definition: topSingleLeptonDQM_PU_cfi.py:39
Calculate
Helper class for the calculation of a top and a W boson mass estime.
Definition: TopDQMHelpers.h:127
edm::Handle
Definition: AssociativeIterator.h:50
SelectionStep::jetCorrector_
std::string jetCorrector_
jet corrector as extra selection type
Definition: TopDQMHelpers.h:271
JetCorrector
Definition: JetCorrector.h:19
Calculate_miniAOD::~Calculate_miniAOD
~Calculate_miniAOD()
default destructor
Definition: TopDQMHelpers.h:75
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
Calculate::failed_
bool failed_
indicate failed associations
Definition: TopDQMHelpers.h:160
BTaggingMonitor_cfi.met
met
Definition: BTaggingMonitor_cfi.py:84
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
pfClustersFromHGC3DClusters_cfi.corrector
corrector
Definition: pfClustersFromHGC3DClusters_cfi.py:5
JetCorrectionsRecord.h
accept
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
reco::MET
Definition: MET.h:41
pat::Jet
Analysis-level calorimeter jet class.
Definition: Jet.h:77
reco::PFCandidate::muonRef
reco::MuonRef muonRef() const
Definition: PFCandidate.cc:421
Calculate::~Calculate
~Calculate()
default destructor
Definition: TopDQMHelpers.h:132
L1TEGammaOffline_cfi.triggerNames
triggerNames
Definition: L1TEGammaOffline_cfi.py:40
SelectionStep::src_
edm::EDGetTokenT< edm::View< Object > > src_
input collection
Definition: TopDQMHelpers.h:253
Calculate_miniAOD::operator()
void operator()(const std::vector< pat::Jet > &jets)
Definition: TopDQMHelpers.cc:229
Calculate::operator()
void operator()(const std::vector< reco::Jet > &jets)
Definition: TopDQMHelpers.cc:53
SelectionStep::max_
int max_
Definition: TopDQMHelpers.h:255
Calculate_miniAOD::wMass_
double wMass_
paramater of the w boson mass
Definition: TopDQMHelpers.h:114
SelectionStep::btagLabel_
edm::EDGetTokenT< reco::JetTagCollection > btagLabel_
choice for b-tag as extra selection type
Definition: TopDQMHelpers.h:273
Calculate_miniAOD::operator2
void operator2(const std::vector< pat::Jet > &, std::vector< double >, double)
do the calculation of the t-quark mass with one b-jet
Definition: TopDQMHelpers.cc:286
SelectionStep::pvs_
edm::EDGetTokenT< edm::View< reco::Vertex > > pvs_
Definition: TopDQMHelpers.h:279
Calculate::operator2
void operator2(const std::vector< reco::Jet > &, std::vector< double >, double)
do the calculation of the t-quark mass with one b-jet
Definition: TopDQMHelpers.cc:110
Calculate::massTopQuark_
double massTopQuark_
cache of top quark mass estimate
Definition: TopDQMHelpers.h:168
GsfElectron.h
SelectionStep::min_
int min_
min/max for object multiplicity
Definition: TopDQMHelpers.h:255
b
double b
Definition: hdecay.h:118
SelectionStep::selectVertex
bool selectVertex(const edm::Event &event)
Definition: TopDQMHelpers.h:414
getGTfromDQMFile.obj
obj
Definition: getGTfromDQMFile.py:32
Calculate::maxNJets_
int maxNJets_
max. number of jets to be considered
Definition: TopDQMHelpers.h:162
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
edm::AssociationVector
Definition: AssociationVector.h:67
SelectionStep::~SelectionStep
~SelectionStep()
default destructor
Definition: TopDQMHelpers.h:242
SelectionStep::jetIDLabel_
edm::EDGetTokenT< reco::JetIDValueMap > jetIDLabel_
jetID as an extra selection type
Definition: TopDQMHelpers.h:277
edm::View
Definition: CaloClusterFwd.h:14
funct::true
true
Definition: Factorize.h:173
edm::ParameterSet
Definition: ParameterSet.h:47
EDConsumerBase.h
TrackRefitter_38T_cff.src
src
Definition: TrackRefitter_38T_cff.py:24
Calculate_miniAOD::massWBoson_
double massWBoson_
cache of w boson mass estimate
Definition: TopDQMHelpers.h:116
Event.h
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
Calculate_miniAOD::massWBoson
double massWBoson(const std::vector< pat::Jet > &jets)
calculate W boson mass estimate
Definition: TopDQMHelpers.cc:165
Calculate_miniAOD
Definition: TopDQMHelpers.h:70
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
PFMET.h
TriggerNames.h
SUSYDQMAnalyzer_cfi.maxNJets
maxNJets
Definition: SUSYDQMAnalyzer_cfi.py:13
pat::MET
Analysis-level MET class.
Definition: MET.h:40
JetCorrector::getJetCorrector
static const JetCorrector * getJetCorrector(const std::string &fName, const edm::EventSetup &fSetup)
retrieve corrector from the event setup. troughs exception if something is missing
Definition: JetCorrector.cc:48
Calculate::massWBoson_
double massWBoson_
cache of w boson mass estimate
Definition: TopDQMHelpers.h:166
Calculate::tmassWBoson_
double tmassWBoson_
cache of W boson transverse mass estimate
Definition: TopDQMHelpers.h:172
triggerPaths
static const std::string triggerPaths
Definition: EdmProvDump.cc:46
Calculate_miniAOD::tmassTopQuark_
double tmassTopQuark_
cache of top quark transverse mass estimate
Definition: TopDQMHelpers.h:124
edm::EventSetup
Definition: EventSetup.h:57
Calculate_miniAOD::massBTopQuark_
double massBTopQuark_
cache of b-tagged top quark mass estimate
Definition: TopDQMHelpers.h:120
reco::RecoCandidate
Definition: RecoCandidate.h:20
MET.h
Calculate::tmassTopQuark_
double tmassTopQuark_
cache of top quark transverse mass estimate
Definition: TopDQMHelpers.h:174
Jet.h
SelectionStep::select
bool select(const edm::Event &event)
apply selection
Definition: TopDQMHelpers.h:319
looper.cfg
cfg
Definition: looper.py:297
Calculate::massTopQuark
double massTopQuark(const std::vector< reco::Jet > &jets)
calculate t-quark mass estimate
Definition: TopDQMHelpers.cc:19
Calculate_miniAOD::massTopQuark
double massTopQuark(const std::vector< pat::Jet > &jets)
calculate t-quark mass estimate
Definition: TopDQMHelpers.cc:171
ValueMap.h
Calculate::tmassWBoson
double tmassWBoson(reco::RecoCandidate *lep, const reco::MET &met, const reco::Jet &b)
calculate W boson transverse mass estimate
Definition: TopDQMHelpers.cc:31
Calculate::tmassTopQuark
double tmassTopQuark(reco::RecoCandidate *lep, const reco::MET &met, const reco::Jet &b)
calculate top quark transverse mass estimate
Definition: TopDQMHelpers.cc:37
SelectionStep::btagWorkingPoint_
double btagWorkingPoint_
choice of b-tag working point as extra selection type
Definition: TopDQMHelpers.h:275
std
Definition: JetResolutionObject.h:76
StringCutObjectSelector.h
Calculate_miniAOD::tmassWBoson_
double tmassWBoson_
cache of W boson transverse mass estimate
Definition: TopDQMHelpers.h:122
Calculate::massBTopQuark
double massBTopQuark(const std::vector< reco::Jet > &jets, std::vector< double > VbtagWP, double btagWP_)
calculate b-tagged t-quark mass estimate
Definition: TopDQMHelpers.cc:25
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
metsig::jet
Definition: SignAlgoResolutions.h:47
edm::ValueMap< float >
StringCutObjectSelector< Object >
SelectionStep::SelectionStep
SelectionStep(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
default constructor
Definition: TopDQMHelpers.h:289
SelectionStep::eidCutValue_
double eidCutValue_
Definition: TopDQMHelpers.h:269
edm::TriggerNames
Definition: TriggerNames.h:55
TriggerAnalyzer.passed
passed
Definition: TriggerAnalyzer.py:62
pseudoTop_cfi.wMass
wMass
Definition: pseudoTop_cfi.py:12
Calculate::massWBoson
double massWBoson(const std::vector< reco::Jet > &jets)
calculate W boson mass estimate
Definition: TopDQMHelpers.cc:13
Calculate::wMass_
double wMass_
paramater of the w boson mass
Definition: TopDQMHelpers.h:164
SelectionStep
Templated helper class to allow a selection on a certain object collection.
Definition: TopDQMHelpers.h:237
EventSetup.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
SelectionStep::jetIDSelect_
StringCutObjectSelector< reco::JetID > * jetIDSelect_
selection string on the jetID
Definition: TopDQMHelpers.h:284
edm::HLTGlobalStatus::accept
bool accept() const
Has at least one path accepted the event?
Definition: HLTGlobalStatus.h:49
Electron.h
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
Calculate_miniAOD::massBTopQuark
double massBTopQuark(const std::vector< pat::Jet > &jets, std::vector< double > VbtagWP, double btagWP_)
calculate b-tagged t-quark mass estimate
Definition: TopDQMHelpers.cc:177
ConsumesCollector.h
pat::Electron
Analysis-level electron class.
Definition: Electron.h:51
ParameterSet.h
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
reco::PFCandidate::gsfElectronRef
reco::GsfElectronRef gsfElectronRef() const
return a reference to the corresponding GsfElectron if any
Definition: PFCandidate.cc:530
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
edm::TriggerResults
Definition: TriggerResults.h:35
SelectionStep::gsfEs_
edm::EDGetTokenT< edm::View< reco::GsfElectron > > gsfEs_
Definition: TopDQMHelpers.h:280
Calculate_miniAOD::failed_
bool failed_
indicate failed associations
Definition: TopDQMHelpers.h:110
SelectionStep::electronId_
edm::EDGetTokenT< edm::ValueMap< float > > electronId_
electronId label as extra selection type
Definition: TopDQMHelpers.h:257
Calculate_miniAOD::massTopQuark_
double massTopQuark_
cache of top quark mass estimate
Definition: TopDQMHelpers.h:118
SelectionStep::select_
StringCutObjectSelector< Object > select_
string cut selector
Definition: TopDQMHelpers.h:282
Calculate_miniAOD::tmassWBoson
double tmassWBoson(pat::Muon *lep, const pat::MET &met, const pat::Jet &b)
calculate W boson transverse mass estimate
Definition: TopDQMHelpers.cc:185