Main Page
Namespaces
Classes
Package Documentation
CondFormats
BTauObjects
src
BTagCalibration.cc
Go to the documentation of this file.
1
#include <fstream>
2
#include <sstream>
3
4
#include "
CondFormats/BTauObjects/interface/BTagCalibration.h
"
5
#include "
FWCore/Utilities/interface/Exception.h
"
6
7
BTagCalibration::BTagCalibration
(
const
std::string
&taggr) : tagger_(taggr) {}
8
9
BTagCalibration::BTagCalibration
(
const
std::string
&taggr,
const
std::string
&
filename
,
bool
validate)
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
}
20
21
void
BTagCalibration::addEntry
(
const
BTagEntry
&
entry
)
22
{
23
data_
[
token
(entry.
params
)].push_back(entry);
24
}
25
26
const
std::vector<BTagEntry>&
BTagCalibration::getEntries
(
27
const
BTagEntry::Parameters
&par)
const
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
}
37
38
void
BTagCalibration::readCSV
(
const
std::string
&
s
,
bool
validate) {
39
std::stringstream buff(s);
40
readCSV
(buff, validate);
41
}
42
43
void
BTagCalibration::readCSV
(std::istream &
s
,
bool
validate) {
44
std::string
line
;
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
}
60
61
void
BTagCalibration::makeCSV
(std::ostream &
s
)
const
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
}
73
74
std::string
BTagCalibration::makeCSV
()
const
75
{
76
std::stringstream buff;
77
makeCSV
(buff);
78
return
buff.str();
79
}
80
81
std::string
BTagCalibration::token
(
const
BTagEntry::Parameters
&par)
82
{
83
std::stringstream buff;
84
buff << par.
operatingPoint
<<
", "
85
<< par.
measurementType
<<
", "
86
<< par.
sysType
;
87
return
buff.str();
88
}
BTagEntry::Parameters::sysType
std::string sysType
Definition:
BTagEntry.h:41
mps_fire.i
i
Definition:
mps_fire.py:338
BTagEntry::trimStr
static std::string trimStr(std::string str)
Definition:
BTagEntry.cc:250
Exception
Definition:
hltDiff.cc:292
BTagEntry::makeCSVHeader
static std::string makeCSVHeader()
Definition:
BTagEntry.cc:217
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
alignCSCRings.s
s
Definition:
alignCSCRings.py:92
corrVsCorr.filename
filename
Definition:
corrVsCorr.py:123
BTagEntry
Definition:
BTagEntry.h:24
BTagEntry::Parameters
Definition:
BTagEntry.h:38
BTagCalibration::getEntries
const std::vector< BTagEntry > & getEntries(const BTagEntry::Parameters &par) const
Definition:
BTagCalibration.cc:26
mps_splice.entry
entry
Definition:
mps_splice.py:68
BTagEntry::Parameters::operatingPoint
OperatingPoint operatingPoint
Definition:
BTagEntry.h:39
mps_splice.line
line
Definition:
mps_splice.py:76
BTagCalibration::makeCSV
std::string makeCSV() const
Definition:
BTagCalibration.cc:74
BTagCalibration::BTagCalibration
BTagCalibration()
Definition:
BTagCalibration.h:30
genParticles_cff.map
map
Definition:
genParticles_cff.py:11
Exception.h
BTagEntry::params
Parameters params
Definition:
BTagEntry.h:79
BTagCalibration::addEntry
void addEntry(const BTagEntry &entry)
Definition:
BTagCalibration.cc:21
BTagCalibration::tagger_
std::string tagger_
Definition:
BTagCalibration.h:48
BTagEntry::Parameters::measurementType
std::string measurementType
Definition:
BTagEntry.h:40
BTagCalibration.h
BTagCalibration::readCSV
void readCSV(std::istream &s, bool validate)
Definition:
BTagCalibration.cc:43
BTagCalibration::token
static std::string token(const BTagEntry::Parameters &par)
Definition:
BTagCalibration.cc:81
BTagCalibration::data_
std::map< std::string, std::vector< BTagEntry > > data_
Definition:
BTagCalibration.h:49
Generated for CMSSW Reference Manual by
1.8.11