PhysicsTools
PatAlgos
interface
EfficiencyLoader.h
Go to the documentation of this file.
1
#ifndef PhysicsTools_PatAlgos_EfficiencyLoader_h
2
#define PhysicsTools_PatAlgos_EfficiencyLoader_h
3
4
#include "
DataFormats/PatCandidates/interface/PATObject.h
"
5
#include "
DataFormats/PatCandidates/interface/LookupTableRecord.h
"
6
#include "
DataFormats/Common/interface/Handle.h
"
7
#include "
DataFormats/Common/interface/ValueMap.h
"
8
9
#include "
FWCore/Framework/interface/Event.h
"
10
#include "
FWCore/Framework/interface/ConsumesCollector.h
"
11
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
12
#include "
FWCore/Utilities/interface/InputTag.h
"
13
14
namespace
pat
{
15
namespace
helper
{
16
class
EfficiencyLoader
{
17
public
:
19
EfficiencyLoader
() {}
20
22
EfficiencyLoader
(
const
edm::ParameterSet
&iConfig,
edm::ConsumesCollector
&&iC);
23
25
bool
enabled
()
const
{
return
!
names_
.empty(); }
26
28
void
newEvent
(
const
edm::Event
&
event
);
29
31
template
<
typename
T,
typename
R>
32
void
setEfficiencies
(
pat::PATObject<T>
&
obj
,
const
R
&originalRef)
const
;
33
34
private
:
35
std::vector<std::string>
names_
;
36
std::vector<edm::EDGetTokenT<edm::ValueMap<pat::LookupTableRecord> > >
tokens_
;
37
std::vector<edm::Handle<edm::ValueMap<pat::LookupTableRecord> > >
handles_
;
38
};
// class
39
40
template
<
typename
T,
typename
R>
41
void
EfficiencyLoader::setEfficiencies
(
pat::PATObject<T>
&
obj
,
const
R
&originalRef)
const
{
42
for
(
size_t
i
= 0,
n
=
names_
.size();
i
<
n
; ++
i
) {
43
obj
.setEfficiency(
names_
[
i
], (*
handles_
[
i
])[originalRef]);
44
}
45
}
46
47
}
// namespace helper
48
}
// namespace pat
49
50
#endif
Handle.h
mps_fire.i
i
Definition:
mps_fire.py:355
dqmiodumpmetadata.n
n
Definition:
dqmiodumpmetadata.py:28
pat::helper::EfficiencyLoader::EfficiencyLoader
EfficiencyLoader()
Empty constructor.
Definition:
EfficiencyLoader.h:19
pat::helper::EfficiencyLoader
Definition:
EfficiencyLoader.h:16
pat::helper::EfficiencyLoader::enabled
bool enabled() const
'true' if this there is at least one efficiency configured
Definition:
EfficiencyLoader.h:25
pat::helper::EfficiencyLoader::newEvent
void newEvent(const edm::Event &event)
To be called for each new event, reads in the ValueMaps for efficiencies.
Definition:
EfficiencyLoader.cc:21
pat::PATObject
Templated PAT object container.
Definition:
PATObject.h:48
getGTfromDQMFile.obj
obj
Definition:
getGTfromDQMFile.py:32
edm::ParameterSet
Definition:
ParameterSet.h:36
Event.h
pat::helper::EfficiencyLoader::handles_
std::vector< edm::Handle< edm::ValueMap< pat::LookupTableRecord > > > handles_
Definition:
EfficiencyLoader.h:37
helper
Definition:
helper.py:1
pat
Definition:
HeavyIon.h:7
InputTag.h
ValueMap.h
pat::helper::EfficiencyLoader::names_
std::vector< std::string > names_
Definition:
EfficiencyLoader.h:35
pat::helper::EfficiencyLoader::setEfficiencies
void setEfficiencies(pat::PATObject< T > &obj, const R &originalRef) const
Sets the efficiencies for this object, using the reference to the original objects.
Definition:
EfficiencyLoader.h:41
ConsumesCollector.h
ParameterSet.h
event
Definition:
event.py:1
pat::helper::EfficiencyLoader::tokens_
std::vector< edm::EDGetTokenT< edm::ValueMap< pat::LookupTableRecord > > > tokens_
Definition:
EfficiencyLoader.h:36
edm::Event
Definition:
Event.h:73
dttmaxenums::R
Definition:
DTTMax.h:29
edm::ConsumesCollector
Definition:
ConsumesCollector.h:39
PATObject.h
LookupTableRecord.h
Generated for CMSSW Reference Manual by
1.8.16