CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Protected Member Functions | Protected Attributes
BTagCalibrationReader Class Reference

#include <BTagCalibrationReader.h>

Classes

struct  TmpEntry
 

Public Member Functions

 BTagCalibrationReader ()
 
 BTagCalibrationReader (const BTagCalibration *c, BTagEntry::OperatingPoint op, std::string measurementType="comb", std::string sysType="central")
 
double eval (BTagEntry::JetFlavor jf, float eta, float pt, float discr=0.) const
 
 ~BTagCalibrationReader ()
 

Protected Member Functions

void setupTmpData (const BTagCalibration *c)
 

Protected Attributes

BTagEntry::Parameters params
 
std::map< BTagEntry::JetFlavor,
std::vector< TmpEntry > > 
tmpData_
 
std::vector< bool > useAbsEta
 

Detailed Description

BTagCalibrationReader

Helper class to pull out a specific set of BTagEntry's out of a BTagCalibration. TF1 functions are set up at initialization time.

Definition at line 20 of file BTagCalibrationReader.h.

Constructor & Destructor Documentation

BTagCalibrationReader::BTagCalibrationReader ( )
inline

Definition at line 23 of file BTagCalibrationReader.h.

23 {}
BTagCalibrationReader::BTagCalibrationReader ( const BTagCalibration c,
BTagEntry::OperatingPoint  op,
std::string  measurementType = "comb",
std::string  sysType = "central" 
)

Definition at line 3 of file BTagCalibrationReader.cc.

References setupTmpData().

6  :
7  params(BTagEntry::Parameters(op, measurementType, sysType)),
8  useAbsEta(true)
9 {
10  setupTmpData(c);
11 }
std::vector< bool > useAbsEta
void setupTmpData(const BTagCalibration *c)
BTagEntry::Parameters params
BTagCalibrationReader::~BTagCalibrationReader ( )
inline

Definition at line 28 of file BTagCalibrationReader.h.

28 {}

Member Function Documentation

double BTagCalibrationReader::eval ( BTagEntry::JetFlavor  jf,
float  eta,
float  pt,
float  discr = 0. 
) const

Definition at line 13 of file BTagCalibrationReader.cc.

References BTagCalibrationReader::TmpEntry::discrMax, BTagCalibrationReader::TmpEntry::discrMin, alignCSCRings::e, python.tagInventory::entries, eta, BTagCalibrationReader::TmpEntry::etaMax, BTagCalibrationReader::TmpEntry::etaMin, BTagCalibrationReader::TmpEntry::func, i, BTagEntry::OP_RESHAPING, BTagEntry::Parameters::operatingPoint, params, BTagCalibrationReader::TmpEntry::ptMax, BTagCalibrationReader::TmpEntry::ptMin, tmpData_, and useAbsEta.

17 {
18  bool use_discr = (params.operatingPoint == BTagEntry::OP_RESHAPING);
19  if (useAbsEta[jf] && eta < 0) {
20  eta = -eta;
21  }
22 
23  // search linearly through eta, pt and discr ranges and eval
24  // future: find some clever data structure based on intervals
25  const std::vector<TmpEntry> &entries = tmpData_.at(jf);
26  for (unsigned i=0; i<entries.size(); ++i) {
27  const BTagCalibrationReader::TmpEntry &e = entries.at(i);
28  if (
29  e.etaMin <= eta && eta < e.etaMax // find eta
30  && e.ptMin <= pt && pt < e.ptMax // check pt
31  ){
32  if (use_discr) { // discr. reshaping?
33  if (e.discrMin <= discr && discr < e.discrMax) { // check discr
34  return e.func.Eval(discr);
35  }
36  } else {
37  return e.func.Eval(pt);
38  }
39  }
40  }
41 
42  return 0.; // default value
43 }
int i
Definition: DBlmapReader.cc:9
OperatingPoint operatingPoint
Definition: BTagEntry.h:39
std::vector< bool > useAbsEta
std::map< BTagEntry::JetFlavor, std::vector< TmpEntry > > tmpData_
tuple discr
Definition: listHistos.py:51
BTagEntry::Parameters params
void BTagCalibrationReader::setupTmpData ( const BTagCalibration c)
protected

Definition at line 45 of file BTagCalibrationReader.cc.

References BTagCalibrationReader::TmpEntry::discrMax, BTagEntry::Parameters::discrMax, BTagCalibrationReader::TmpEntry::discrMin, BTagEntry::Parameters::discrMin, python.tagInventory::entries, BTagCalibrationReader::TmpEntry::etaMax, BTagEntry::Parameters::etaMax, BTagCalibrationReader::TmpEntry::etaMin, BTagEntry::Parameters::etaMin, BTagEntry::formula, BTagCalibrationReader::TmpEntry::func, BTagCalibration::getEntries(), i, BTagEntry::Parameters::jetFlavor, BTagEntry::OP_RESHAPING, BTagEntry::Parameters::operatingPoint, params, BTagEntry::params, BTagCalibrationReader::TmpEntry::ptMax, BTagEntry::Parameters::ptMax, BTagCalibrationReader::TmpEntry::ptMin, BTagEntry::Parameters::ptMin, tmpData_, and useAbsEta.

Referenced by BTagCalibrationReader().

46 {
47  useAbsEta = std::vector<bool>(4, true);
48  const std::vector<BTagEntry> &entries = c->getEntries(params);
49  for (unsigned i=0; i<entries.size(); ++i) {
50  const BTagEntry &be = entries[i];
52  te.etaMin = be.params.etaMin;
53  te.etaMax = be.params.etaMax;
54  te.ptMin = be.params.ptMin;
55  te.ptMax = be.params.ptMax;
56  te.discrMin = be.params.discrMin;
57  te.discrMax = be.params.discrMax;
58 
60  te.func = TF1("", be.formula.c_str(),
62  } else {
63  te.func = TF1("", be.formula.c_str(),
64  be.params.ptMin, be.params.ptMax);
65  }
66 
67  tmpData_[be.params.jetFlavor].push_back(te);
68  if (te.etaMin < 0) {
69  useAbsEta[be.params.jetFlavor] = false;
70  }
71  }
72 }
int i
Definition: DBlmapReader.cc:9
JetFlavor jetFlavor
Definition: BTagEntry.h:42
const std::vector< BTagEntry > & getEntries(const BTagEntry::Parameters &par) const
OperatingPoint operatingPoint
Definition: BTagEntry.h:39
std::vector< bool > useAbsEta
std::string formula
Definition: BTagEntry.h:78
Parameters params
Definition: BTagEntry.h:79
std::map< BTagEntry::JetFlavor, std::vector< TmpEntry > > tmpData_
BTagEntry::Parameters params

Member Data Documentation

BTagEntry::Parameters BTagCalibrationReader::params
protected

Definition at line 47 of file BTagCalibrationReader.h.

Referenced by eval(), and setupTmpData().

std::map<BTagEntry::JetFlavor, std::vector<TmpEntry> > BTagCalibrationReader::tmpData_
protected

Definition at line 48 of file BTagCalibrationReader.h.

Referenced by eval(), and setupTmpData().

std::vector<bool> BTagCalibrationReader::useAbsEta
protected

Definition at line 49 of file BTagCalibrationReader.h.

Referenced by eval(), and setupTmpData().