CMS 3D CMS Logo

List of all members | Public Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Friends
BTagCalibration Class Reference

#include <BTagCalibration.h>

Public Member Functions

void addEntry (const BTagEntry &entry)
 
 BTagCalibration ()
 
 BTagCalibration (const std::string &tagger)
 
 BTagCalibration (const std::string &tagger, const std::string &filename, bool validate)
 
const std::vector< BTagEntry > & getEntries (const BTagEntry::Parameters &par) const
 
void makeCSV (std::ostream &s) const
 
std::string makeCSV () const
 
void readCSV (std::istream &s, bool validate)
 
void readCSV (const std::string &s, bool validate)
 
std::string tagger () const
 
 ~BTagCalibration ()
 

Static Protected Member Functions

static std::string token (const BTagEntry::Parameters &par)
 

Protected Attributes

std::map< std::string, std::vector< BTagEntry > > data_
 
std::string tagger_
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Friends

class boost::serialization::access
 
template<typename CondSerializationT , typename Enabled >
struct cond::serialization::access
 

Detailed Description

BTagCalibration

The 'hierarchy' of stored information is this:

Definition at line 27 of file BTagCalibration.h.

Constructor & Destructor Documentation

BTagCalibration::BTagCalibration ( )
inline

Definition at line 30 of file BTagCalibration.h.

References corrVsCorr::filename, AlCaHLTBitMon_QueryRunRegistry::string, and tagger().

30 {}
BTagCalibration::BTagCalibration ( const std::string &  tagger)

Definition at line 7 of file BTagCalibration.cc.

7 : tagger_(taggr) {}
std::string tagger_
BTagCalibration::BTagCalibration ( const std::string &  tagger,
const std::string &  filename,
bool  validate 
)

Definition at line 9 of file BTagCalibration.cc.

References Exception, corrVsCorr::filename, and readCSV().

10  : tagger_(taggr) {
11  std::ifstream ifs(filename);
12  if (!ifs.good()) {
13  throw cms::Exception("BTagCalibration")
14  << "input file not available: "
15  << filename;
16  }
17  readCSV(ifs, validate);
18  ifs.close();
19 }
std::string tagger_
void readCSV(std::istream &s, bool validate)
BTagCalibration::~BTagCalibration ( )
inline

Definition at line 33 of file BTagCalibration.h.

33 {}

Member Function Documentation

void BTagCalibration::addEntry ( const BTagEntry entry)

Definition at line 21 of file BTagCalibration.cc.

References data_, BTagEntry::params, and token().

Referenced by readCSV(), and tagger().

22 {
23  data_[token(entry.params)].push_back(entry);
24 }
Parameters params
Definition: BTagEntry.h:79
static std::string token(const BTagEntry::Parameters &par)
std::map< std::string, std::vector< BTagEntry > > data_
const std::vector< BTagEntry > & BTagCalibration::getEntries ( const BTagEntry::Parameters par) const

Definition at line 26 of file BTagCalibration.cc.

References data_, Exception, AlCaHLTBitMon_QueryRunRegistry::string, and token().

Referenced by BTagCalibrationReader::BTagCalibrationReaderImpl::load(), and tagger().

28 {
29  std::string tok = token(par);
30  if (!data_.count(tok)) {
31  throw cms::Exception("BTagCalibration")
32  << "(OperatingPoint, measurementType, sysType) not available: "
33  << tok;
34  }
35  return data_.at(tok);
36 }
static std::string token(const BTagEntry::Parameters &par)
std::map< std::string, std::vector< BTagEntry > > data_
void BTagCalibration::makeCSV ( std::ostream &  s) const

Definition at line 61 of file BTagCalibration.cc.

References data_, mps_fire::i, BTagEntry::makeCSVHeader(), genParticles_cff::map, AlCaHLTBitMon_QueryRunRegistry::string, and tagger_.

62 {
63  s << tagger_ << ";" << BTagEntry::makeCSVHeader();
64  for (std::map<std::string, std::vector<BTagEntry> >::const_iterator i
65  = data_.cbegin(); i != data_.cend(); ++i) {
66  const std::vector<BTagEntry> &vec = i->second;
67  for (std::vector<BTagEntry>::const_iterator j
68  = vec.cbegin(); j != vec.cend(); ++j) {
69  s << j->makeCSVLine();
70  }
71  }
72 }
static std::string makeCSVHeader()
Definition: BTagEntry.cc:217
std::string tagger_
std::map< std::string, std::vector< BTagEntry > > data_
std::string BTagCalibration::makeCSV ( ) const

Definition at line 74 of file BTagCalibration.cc.

Referenced by tagger().

75 {
76  std::stringstream buff;
77  makeCSV(buff);
78  return buff.str();
79 }
std::string makeCSV() const
void BTagCalibration::readCSV ( std::istream &  s,
bool  validate 
)

Definition at line 43 of file BTagCalibration.cc.

References addEntry(), mps_splice::line, AlCaHLTBitMon_QueryRunRegistry::string, and BTagEntry::trimStr().

Referenced by BTagCalibration(), readCSV(), and tagger().

43  {
45 
46  // firstline might be the header
47  getline(s,line);
48  if (line.find("OperatingPoint") == std::string::npos) {
49  addEntry(BTagEntry(line, validate));
50  }
51 
52  while (getline(s,line)) {
53  line = BTagEntry::trimStr(line);
54  if (line.empty()) { // skip empty lines
55  continue;
56  }
57  addEntry(BTagEntry(line, validate));
58  }
59 }
static std::string trimStr(std::string str)
Definition: BTagEntry.cc:250
void addEntry(const BTagEntry &entry)
void BTagCalibration::readCSV ( const std::string &  s,
bool  validate 
)

Definition at line 38 of file BTagCalibration.cc.

References readCSV().

38  {
39  std::stringstream buff(s);
40  readCSV(buff, validate);
41 }
void readCSV(std::istream &s, bool validate)
template<class Archive >
void BTagCalibration::serialize ( Archive &  ar,
const unsigned int  version 
)
private
std::string BTagCalibration::tagger ( ) const
inline
std::string BTagCalibration::token ( const BTagEntry::Parameters par)
staticprotected

Definition at line 81 of file BTagCalibration.cc.

References BTagEntry::Parameters::measurementType, BTagEntry::Parameters::operatingPoint, and BTagEntry::Parameters::sysType.

Referenced by addEntry(), getEntries(), and tagger().

82 {
83  std::stringstream buff;
84  buff << par.operatingPoint << ", "
85  << par.measurementType << ", "
86  << par.sysType;
87  return buff.str();
88 }
std::string sysType
Definition: BTagEntry.h:41
OperatingPoint operatingPoint
Definition: BTagEntry.h:39
std::string measurementType
Definition: BTagEntry.h:40

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Definition at line 51 of file BTagCalibration.h.

template<typename CondSerializationT , typename Enabled >
friend struct cond::serialization::access
friend

Definition at line 51 of file BTagCalibration.h.

Member Data Documentation

std::map<std::string, std::vector<BTagEntry> > BTagCalibration::data_
protected

Definition at line 49 of file BTagCalibration.h.

Referenced by addEntry(), getEntries(), and makeCSV().

std::string BTagCalibration::tagger_
protected

Definition at line 48 of file BTagCalibration.h.

Referenced by makeCSV(), and tagger().