1 |
//
|
2 |
// Implementacion of b Jet Selector for PAT
|
3 |
// By J.E. Ramirez Jun 18,2008
|
4 |
//
|
5 |
#include "PhysicsTools/PatUtils/interface/bJetSelector.h"
|
6 |
#include "FWCore/ParameterSet/interface/ParameterSet.h"
|
7 |
|
8 |
bJetSelector::bJetSelector(const edm::ParameterSet& cfg) :
|
9 |
discriminantCutsLoose_(cfg.getParameter<std::vector<double> >("discCutLoose")),
|
10 |
discriminantCutsMedium_(cfg.getParameter<std::vector<double> >("discCutMedium")),
|
11 |
discriminantCutsTight_(cfg.getParameter<std::vector<double> >("discCutTight")),
|
12 |
BTagdiscriminator_(cfg.getParameter<std::vector<std::string> >("bdiscriminators")),
|
13 |
DefaultOp_(cfg.getParameter<std::string>("DefaultOp")),
|
14 |
DefaultTg_(cfg.getParameter<std::string>("DefaultBdisc"))
|
15 |
|
16 |
{
|
17 |
|
18 |
for (unsigned int i=0; i<BTagdiscriminator_.size(); i++){
|
19 |
discCut["Loose"][BTagdiscriminator_[i]] = discriminantCutsLoose_[i];
|
20 |
discCut["Medium"][BTagdiscriminator_[i]] = discriminantCutsMedium_[i];
|
21 |
discCut["Tight"][BTagdiscriminator_[i]] = discriminantCutsTight_[i];
|
22 |
}
|
23 |
}
|
24 |
|
25 |
bool
|
26 |
bJetSelector::IsbTag(const pat::Jet& JetCand,
|
27 |
const std::string& operpoint,
|
28 |
const std::string& tagger) const {
|
29 |
|
30 |
std::map<std::string,std::map<std::string,double> >::const_iterator ioperpoint = discCut.find(operpoint);
|
31 |
if ( ioperpoint == discCut.end() ) throw cms::Exception("UnknownOperatingPoint") << "Unknown or undefined operative point" << std::endl;
|
32 |
std::map<std::string,double>::const_iterator itagger = ioperpoint->second.find(tagger);
|
33 |
if ( itagger == ioperpoint->second.end() ) throw cms::Exception("UnknownTagger") << "Unknown or undefined tagger" << std::endl;
|
34 |
|
35 |
return JetCand.bDiscriminator(tagger) > itagger->second;
|
36 |
}
|
37 |
bool
|
38 |
bJetSelector::IsbTag(const pat::Jet& JetCand,
|
39 |
const std::string& operpoint) const {
|
40 |
|
41 |
|
42 |
return IsbTag(JetCand,operpoint,DefaultTg_);
|
43 |
}
|
44 |
bool
|
45 |
bJetSelector::IsbTag(const pat::Jet& JetCand) const{
|
46 |
return IsbTag(JetCand,DefaultOp_,DefaultTg_);
|
47 |
}
|
48 |
|
49 |
|