RecoEgamma
EgammaTools
interface
AnyMVAEstimatorRun2Base.h
Go to the documentation of this file.
1
#ifndef RecoEgamma_EgammaTools_AnyMVAEstimatorRun2Base_H
2
#define RecoEgamma_EgammaTools_AnyMVAEstimatorRun2Base_H
3
4
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
5
6
#include "
FWCore/Framework/interface/Event.h
"
7
#include "
FWCore/Framework/interface/ConsumesCollector.h
"
8
9
#include "
DataFormats/Candidate/interface/Candidate.h
"
10
11
class
AnyMVAEstimatorRun2Base
{
12
public
:
13
// Constructor, destructor
14
AnyMVAEstimatorRun2Base
(
const
edm::ParameterSet
& conf)
15
:
tag_
(conf.getParameter<
std
::
string
>(
"mvaTag"
)),
16
nCategories_
(conf.getParameter<
int
>(
"nCategories"
)),
17
debug_
(conf.getUntrackedParameter<
bool
>(
"debug"
,
false
)) {}
18
19
AnyMVAEstimatorRun2Base
(
const ::std::string
&
mvaName
,
const ::std::string
&
mvaTag
,
int
nCategories
,
bool
debug
)
20
:
name_
(
mvaName
),
tag_
(
mvaTag
),
nCategories_
(
nCategories
),
debug_
(
debug
) {}
21
virtual
~AnyMVAEstimatorRun2Base
(){};
22
23
// Functions that must be provided in derived classes
24
// These function should work on electrons or photons
25
// of the reco or pat type
26
27
virtual
float
mvaValue
(
const
reco::Candidate
* candidate,
28
std::vector<float>
const
& auxVariables,
29
int
& iCategory)
const
= 0;
30
float
mvaValue
(
const
reco::Candidate
* candidate, std::vector<float>
const
& auxVariables)
const
{
31
int
iCategory;
32
return
mvaValue
(candidate, auxVariables, iCategory);
33
};
34
35
// A specific implementation of MVA is expected to have one or more categories
36
// defined with respect to eta, pt, etc.
37
// This function determines the category for a given candidate.
38
virtual
int
findCategory
(
const
reco::Candidate
* candidate)
const
= 0;
39
int
getNCategories
()
const
{
return
nCategories_
; }
40
const
std::string
&
getName
()
const
{
return
name_
; }
41
// An extra variable string set during construction that can be used
42
// to distinguish different instances of the estimator configured with
43
// different weight files. The tag can be used to construct names of ValueMaps, etc.
44
const
std::string
&
getTag
()
const
{
return
tag_
; }
45
46
bool
isDebug
()
const
{
return
debug_
; }
47
//
48
// Extra event content - if needed.
49
//
50
// Some MVA implementation may require direct access to event content.
51
// Implement these methods only if needed in the derived classes (use "override"
52
// for certainty).
53
54
private
:
55
//
56
// Data members
57
//
58
const
std::string
name_
;
59
60
// MVA tag. This is an additional string variable to distinguish
61
// instances of the estimator of this class configured with different
62
// weight files.
63
const
std::string
tag_
;
64
65
// The number of categories and number of variables per category
66
const
int
nCategories_
;
67
68
const
bool
debug_
;
69
};
70
71
// define the factory for this base class
72
#include "
FWCore/PluginManager/interface/PluginFactory.h
"
73
typedef
edmplugin::PluginFactory
<
AnyMVAEstimatorRun2Base
*(
const
edm::ParameterSet
&)>
AnyMVAEstimatorRun2Factory
;
74
75
#endif
AnyMVAEstimatorRun2Base::nCategories_
const int nCategories_
Definition:
AnyMVAEstimatorRun2Base.h:66
AnyMVAEstimatorRun2Base::AnyMVAEstimatorRun2Base
AnyMVAEstimatorRun2Base(const edm::ParameterSet &conf)
Definition:
AnyMVAEstimatorRun2Base.h:14
mvaElectronID_Fall17_iso_V1_cff.mvaTag
mvaTag
Definition:
mvaElectronID_Fall17_iso_V1_cff.py:16
PluginFactory.h
electrons_cff.bool
bool
Definition:
electrons_cff.py:393
funct::false
false
Definition:
Factorize.h:29
AnyMVAEstimatorRun2Base
Definition:
AnyMVAEstimatorRun2Base.h:11
AnyMVAEstimatorRun2Base::mvaValue
float mvaValue(const reco::Candidate *candidate, std::vector< float > const &auxVariables) const
Definition:
AnyMVAEstimatorRun2Base.h:30
debug
#define debug
Definition:
HDRShower.cc:19
AnyMVAEstimatorRun2Base::~AnyMVAEstimatorRun2Base
virtual ~AnyMVAEstimatorRun2Base()
Definition:
AnyMVAEstimatorRun2Base.h:21
AnyMVAEstimatorRun2Base::findCategory
virtual int findCategory(const reco::Candidate *candidate) const =0
taus_updatedMVAIds_cff.mvaName
mvaName
Definition:
taus_updatedMVAIds_cff.py:18
AnyMVAEstimatorRun2Base::isDebug
bool isDebug() const
Definition:
AnyMVAEstimatorRun2Base.h:46
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSet
Definition:
ParameterSet.h:47
Event.h
edmplugin::PluginFactory
Definition:
PluginFactory.h:34
createfilelist.int
int
Definition:
createfilelist.py:10
AnyMVAEstimatorRun2Base::getNCategories
int getNCategories() const
Definition:
AnyMVAEstimatorRun2Base.h:39
AnyMVAEstimatorRun2Base::AnyMVAEstimatorRun2Base
AnyMVAEstimatorRun2Base(const ::std::string &mvaName, const ::std::string &mvaTag, int nCategories, bool debug)
Definition:
AnyMVAEstimatorRun2Base.h:19
AnyMVAEstimatorRun2Base::getTag
const std::string & getTag() const
Definition:
AnyMVAEstimatorRun2Base.h:44
AnyMVAEstimatorRun2Base::debug_
const bool debug_
Definition:
AnyMVAEstimatorRun2Base.h:68
mvaElectronID_Fall17_iso_V1_cff.nCategories
nCategories
Definition:
mvaElectronID_Fall17_iso_V1_cff.py:86
reco::Candidate
Definition:
Candidate.h:27
AnyMVAEstimatorRun2Base::tag_
const std::string tag_
Definition:
AnyMVAEstimatorRun2Base.h:63
std
Definition:
JetResolutionObject.h:76
AnyMVAEstimatorRun2Base::name_
const std::string name_
Definition:
AnyMVAEstimatorRun2Base.h:58
AnyMVAEstimatorRun2Base::mvaValue
virtual float mvaValue(const reco::Candidate *candidate, std::vector< float > const &auxVariables, int &iCategory) const =0
ConsumesCollector.h
Candidate.h
ParameterSet.h
AnyMVAEstimatorRun2Base::getName
const std::string & getName() const
Definition:
AnyMVAEstimatorRun2Base.h:40
Generated for CMSSW Reference Manual by
1.8.16