CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RecoTauDiscriminantPlugins.h
Go to the documentation of this file.
1 #ifndef RecoTauTag_RecoTau_RecoTauDiscriminantPlugins_h
2 #define RecoTauTag_RecoTau_RecoTauDiscriminantPlugins_h
3 
4 /*
5  * Common base classes for the plugins used in the
6  * that produce PFTau discriminants. A PFTauDiscriminant
7  * (not discriminator) is a vector of doubles associated
8  * to a given tau, and represent some observable(s) for that
9  * tau.
10  *
11  * Author: Evan K. Friis, UC Davis
12  *
13  * $Id $
14  */
15 
18 #include <vector>
19 
20 namespace reco { namespace tau {
21 
22 // Convert a MVA name (i.e. Pt, Eta) to the appropriate plugin name.
23 // Example: discPluginName("Pt") -> "RecoTauDiscriminat
24 inline std::string discPluginName(const std::string& mvaName) {
25  return "RecoTauDiscrimination" + mvaName;
26 }
27 
29  public:
32 
34 
35  // Get an observable
36  virtual std::vector<double> operator()(const reco::PFTauRef& pfTau) const=0;
37 };
38 
39 // Build a discriminant using a unary PFTau function that returns a single value
40 template<double Function(const reco::PFTau&)>
42  public:
45 
47 
48  virtual std::vector<double> operator()(const reco::PFTauRef& pfTau) const {
49  std::vector<double> output(1, Function(*pfTau));
50  return output;
51  }
52 };
53 
54 // Build a discriminant using a unary PFTau function that returns a vector of values
55 template<std::vector<double> Function(const reco::PFTau&)>
58  public:
61 
63 
64  virtual std::vector<double> operator()(const reco::PFTauRef& pfTau) const {
65  return Function(*pfTau);
66  }
67 };
68 } } // end reco::tau
69 
72 #endif
RecoTauDiscriminantFunctionPlugin(const edm::ParameterSet &pset)
RecoTauDiscriminantVectorFunctionPlugin(const edm::ParameterSet &pset)
edmplugin::PluginFactory< reco::tau::RecoTauDiscriminantPlugin *(const edm::ParameterSet &)> RecoTauDiscriminantPluginFactory
RecoTauDiscriminantPlugin(const edm::ParameterSet &pset)
std::string discPluginName(const std::string &mvaName)
tuple pset
Definition: CrabTask.py:85
virtual std::vector< double > operator()(const reco::PFTauRef &pfTau) const =0
virtual std::vector< double > operator()(const reco::PFTauRef &pfTau) const
virtual std::vector< double > operator()(const reco::PFTauRef &pfTau) const