23 #include <boost/foreach.hpp>
24 #include <boost/ptr_container/ptr_map.hpp>
61 if (pset.
exists(
"dbLabel"))
71 "discriminantOptions");
73 typedef std::vector<edm::ParameterSet> VPSet;
76 for (VPSet::const_iterator mva = mvas.begin(); mva != mvas.end(); ++mva) {
77 unsigned int nCharged = mva->getParameter<
unsigned int>(
"nCharged");
78 unsigned int nPiZeros = mva->getParameter<
unsigned int>(
"nPiZeros");
82 if (!
mvas_.count(decayMode)) {
87 computerName, dbLabel, discriminantOptions));
89 edm::LogError(
"DecayModeNotUnique") <<
"The tau decay mode with "
90 "nCharged/nPiZero = " << nCharged <<
"/" << nPiZeros <<
" dm: "
92 " is associated to multiple MVA implmentations, "
93 "the second instantiation is being ignored!!!";
98 if (pset.
exists(
"defaultMVA")) {
101 dbLabel, discriminantOptions));
110 mva.second->setEvent(evt, es);
119 MVAMap::iterator mva =
mvas_.find(tau->decayMode());
123 if (mva !=
mvas_.end())
124 output = mva->second->operator()(
tau);
T getParameter(std::string const &) const
#define DEFINE_FWK_MODULE(type)
void beginEvent(const edm::Event &, const edm::EventSetup &)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
PFTau::hadronicDecayMode translateDecayMode(unsigned int nCharged, unsigned int nPiZero)
double unsupportedDMValue_
RecoTauMVADiscriminator(const edm::ParameterSet &pset)
double discriminate(const reco::PFTauRef &)
~RecoTauMVADiscriminator()
Container::value_type value_type
boost::ptr_map< reco::PFTau::hadronicDecayMode, reco::tau::RecoTauMVAHelper > MVAMap
unsigned int nCharged(const GenJet &jet)
std::auto_ptr< reco::tau::RecoTauMVAHelper > defaultMVA_
double prediscriminantFailValue_