Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:06

0001 //
0002 //  Implementacion of b Jet Selector for PAT
0003 //   By J.E. Ramirez Jun 18,2008
0004 //
0005 #include "PhysicsTools/PatUtils/interface/bJetSelector.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 
0008 bJetSelector::bJetSelector(const edm::ParameterSet& cfg)
0009     : discriminantCutsLoose_(cfg.getParameter<std::vector<double> >("discCutLoose")),
0010       discriminantCutsMedium_(cfg.getParameter<std::vector<double> >("discCutMedium")),
0011       discriminantCutsTight_(cfg.getParameter<std::vector<double> >("discCutTight")),
0012       BTagdiscriminator_(cfg.getParameter<std::vector<std::string> >("bdiscriminators")),
0013       DefaultOp_(cfg.getParameter<std::string>("DefaultOp")),
0014       DefaultTg_(cfg.getParameter<std::string>("DefaultBdisc"))
0015 
0016 {
0017   for (unsigned int i = 0; i < BTagdiscriminator_.size(); i++) {
0018     discCut["Loose"][BTagdiscriminator_[i]] = discriminantCutsLoose_[i];
0019     discCut["Medium"][BTagdiscriminator_[i]] = discriminantCutsMedium_[i];
0020     discCut["Tight"][BTagdiscriminator_[i]] = discriminantCutsTight_[i];
0021   }
0022 }
0023 
0024 bool bJetSelector::IsbTag(const pat::Jet& JetCand, const std::string& operpoint, const std::string& tagger) const {
0025   std::map<std::string, std::map<std::string, double> >::const_iterator ioperpoint = discCut.find(operpoint);
0026   if (ioperpoint == discCut.end())
0027     throw cms::Exception("UnknownOperatingPoint") << "Unknown or undefined operative point" << std::endl;
0028   std::map<std::string, double>::const_iterator itagger = ioperpoint->second.find(tagger);
0029   if (itagger == ioperpoint->second.end())
0030     throw cms::Exception("UnknownTagger") << "Unknown or undefined tagger" << std::endl;
0031 
0032   return JetCand.bDiscriminator(tagger) > itagger->second;
0033 }
0034 bool bJetSelector::IsbTag(const pat::Jet& JetCand, const std::string& operpoint) const {
0035   return IsbTag(JetCand, operpoint, DefaultTg_);
0036 }
0037 bool bJetSelector::IsbTag(const pat::Jet& JetCand) const { return IsbTag(JetCand, DefaultOp_, DefaultTg_); }