CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Attributes
RecoTauMVADiscriminator Class Reference
Inheritance diagram for RecoTauMVADiscriminator:
TauDiscriminationProducerBase< TauType, TauDiscriminator > edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

void beginEvent (const edm::Event &, const edm::EventSetup &)
 
double discriminate (const reco::PFTauRef &)
 
 RecoTauMVADiscriminator (const edm::ParameterSet &pset)
 
 ~RecoTauMVADiscriminator ()
 
- Public Member Functions inherited from TauDiscriminationProducerBase< TauType, TauDiscriminator >
virtual double discriminate (const TauRef &tau)=0
 
void produce (edm::Event &, const edm::EventSetup &)
 
 TauDiscriminationProducerBase (const edm::ParameterSet &iConfig)
 
 TauDiscriminationProducerBase ()
 
virtual ~TauDiscriminationProducerBase ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Types

typedef boost::ptr_map
< reco::PFTau::hadronicDecayMode,
reco::tau::RecoTauMVAHelper
MVAMap
 

Private Attributes

std::string dbLabel_
 
std::auto_ptr
< reco::tau::RecoTauMVAHelper
defaultMVA_
 
MVAMap mvas_
 
bool remapOutput_
 
double unsupportedDMValue_
 

Additional Inherited Members

- Public Types inherited from TauDiscriminationProducerBase< TauType, TauDiscriminator >
typedef std::vector< TauType > TauCollection
 
typedef edm::Ref< TauCollectionTauRef
 
typedef edm::RefProd
< TauCollection
TauRefProd
 
- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 
- Protected Attributes inherited from TauDiscriminationProducerBase< TauType, TauDiscriminator >
double prediscriminantFailValue_
 

Detailed Description

Definition at line 37 of file RecoTauMVADiscriminator.cc.

Member Typedef Documentation

Definition at line 48 of file RecoTauMVADiscriminator.cc.

Constructor & Destructor Documentation

RecoTauMVADiscriminator::RecoTauMVADiscriminator ( const edm::ParameterSet pset)
explicit

Definition at line 58 of file RecoTauMVADiscriminator.cc.

References defaultMVA_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), mvas_, reco::tau::helpers::nCharged(), TauDiscriminationProducerBase< TauType, TauDiscriminator >::prediscriminantFailValue_, remapOutput_, reco::tau::translateDecayMode(), and unsupportedDMValue_.

60  std::string dbLabel;
61  if (pset.exists("dbLabel"))
62  dbLabel = pset.getParameter<std::string>("dbLabel");
63 
64  unsupportedDMValue_ = (pset.exists("unsupportedDecayModeValue")) ?
65  pset.getParameter<double>("unsupportedDecayModeValue")
67 
68  remapOutput_ = pset.getParameter<bool>("remapOutput");
69 
70  typedef std::vector<edm::ParameterSet> VPSet;
71  const VPSet& mvas = pset.getParameter<VPSet>("mvas");
72 
73  for (VPSet::const_iterator mva = mvas.begin(); mva != mvas.end(); ++mva) {
74  unsigned int nCharged = mva->getParameter<unsigned int>("nCharged");
75  unsigned int nPiZeros = mva->getParameter<unsigned int>("nPiZeros");
77  nCharged, nPiZeros);
78  // Check to ensure this decay mode is not already added
79  if (!mvas_.count(decayMode)) {
80  std::string computerName = mva->getParameter<std::string>("mvaLabel");
81  // Add it
82  mvas_.insert(
83  decayMode, new reco::tau::RecoTauMVAHelper(computerName, dbLabel));
84  } else {
85  edm::LogError("DecayModeNotUnique") << "The tau decay mode with "
86  "nCharged/nPiZero = " << nCharged << "/" << nPiZeros << " dm: "
87  << decayMode <<
88  " is associated to multiple MVA implmentations, "
89  "the second instantiation is being ignored!!!";
90  }
91  }
92 
93  // Check if we a catch-all MVA is desired.
94  if (pset.exists("defaultMVA")) {
96  pset.getParameter<std::string>("defaultMVA"),
97  dbLabel));
98  }
99 
100 }
T getParameter(std::string const &) const
bool exists(std::string const &parameterName) const
checks if a parameter exists
PFTau::hadronicDecayMode translateDecayMode(unsigned int nCharged, unsigned int nPiZero)
unsigned int nCharged(const GenJet &jet)
TauDiscriminationProducerBase< reco::PFTau, reco::PFTauDiscriminator > PFTauDiscriminationProducerBase
std::auto_ptr< reco::tau::RecoTauMVAHelper > defaultMVA_
hadronicDecayMode
Definition: PFTau.h:33
RecoTauMVADiscriminator::~RecoTauMVADiscriminator ( )
inline

Definition at line 40 of file RecoTauMVADiscriminator.cc.

40 {}

Member Function Documentation

void RecoTauMVADiscriminator::beginEvent ( const edm::Event evt,
const edm::EventSetup es 
)
virtual

Reimplemented from TauDiscriminationProducerBase< TauType, TauDiscriminator >.

Definition at line 102 of file RecoTauMVADiscriminator.cc.

References defaultMVA_, and mvas_.

103  {
104  // Pass the event setup so the MVAHelpers can get the MVAs from the DB
105  BOOST_FOREACH(MVAMap::value_type mva, mvas_) {
106  mva.second->setEvent(evt, es);
107  }
108  if (defaultMVA_.get())
109  defaultMVA_->setEvent(evt, es);
110 }
Container::value_type value_type
std::auto_ptr< reco::tau::RecoTauMVAHelper > defaultMVA_
double RecoTauMVADiscriminator::discriminate ( const reco::PFTauRef tau)

Definition at line 113 of file RecoTauMVADiscriminator.cc.

References defaultMVA_, mvas_, convertSQLitetoXML_cfg::output, remapOutput_, metsig::tau, and unsupportedDMValue_.

113  {
114  // Find the right MVA for this tau's decay mode
115  MVAMap::iterator mva = mvas_.find(tau->decayMode());
116  // If this DM has an associated decay mode, get and return the result.
117  double output = unsupportedDMValue_;
118  if (mva != mvas_.end() || defaultMVA_.get()) {
119  if (mva != mvas_.end())
120  output = mva->second->operator()(tau);
121  else
122  output = defaultMVA_->operator()(tau);
123  // TMVA produces output from -1 to 1
124  if (remapOutput_) {
125  output += 1.;
126  output /= 2.;
127  }
128  }
129  return output;
130 }
std::auto_ptr< reco::tau::RecoTauMVAHelper > defaultMVA_

Member Data Documentation

std::string RecoTauMVADiscriminator::dbLabel_
private

Definition at line 53 of file RecoTauMVADiscriminator.cc.

std::auto_ptr<reco::tau::RecoTauMVAHelper> RecoTauMVADiscriminator::defaultMVA_
private

Definition at line 50 of file RecoTauMVADiscriminator.cc.

Referenced by beginEvent(), discriminate(), and RecoTauMVADiscriminator().

MVAMap RecoTauMVADiscriminator::mvas_
private

Definition at line 52 of file RecoTauMVADiscriminator.cc.

Referenced by beginEvent(), discriminate(), and RecoTauMVADiscriminator().

bool RecoTauMVADiscriminator::remapOutput_
private

Definition at line 55 of file RecoTauMVADiscriminator.cc.

Referenced by discriminate(), and RecoTauMVADiscriminator().

double RecoTauMVADiscriminator::unsupportedDMValue_
private

Definition at line 54 of file RecoTauMVADiscriminator.cc.

Referenced by discriminate(), and RecoTauMVADiscriminator().