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
 
virtual void endEvent (edm::Event &evt)
 
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)
 
static void prevalidate (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_
 
edm::InputTag TauProducer_
 

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 dtTTrigAnalyzer_cfg::dbLabel, 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  edm::ParameterSet discriminantOptions = pset.getParameter<edm::ParameterSet>(
71  "discriminantOptions");
72 
73  typedef std::vector<edm::ParameterSet> VPSet;
74  const VPSet& mvas = pset.getParameter<VPSet>("mvas");
75 
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");
80  nCharged, nPiZeros);
81  // Check to ensure this decay mode is not already added
82  if (!mvas_.count(decayMode)) {
83  std::string computerName = mva->getParameter<std::string>("mvaLabel");
84  // Add it
85  mvas_.insert(
86  decayMode, new reco::tau::RecoTauMVAHelper(
87  computerName, dbLabel, discriminantOptions));
88  } else {
89  edm::LogError("DecayModeNotUnique") << "The tau decay mode with "
90  "nCharged/nPiZero = " << nCharged << "/" << nPiZeros << " dm: "
91  << decayMode <<
92  " is associated to multiple MVA implmentations, "
93  "the second instantiation is being ignored!!!";
94  }
95  }
96 
97  // Check if we a catch-all MVA is desired.
98  if (pset.exists("defaultMVA")) {
100  pset.getParameter<std::string>("defaultMVA"),
101  dbLabel, discriminantOptions));
102  }
103 
104 }
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:34
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 106 of file RecoTauMVADiscriminator.cc.

References defaultMVA_, and mvas_.

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

Definition at line 117 of file RecoTauMVADiscriminator.cc.

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

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