Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
o
p
q
r
s
t
u
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
d
e
f
l
m
o
p
s
t
u
v
Related Functions
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Package Documentation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
DQM
EcalMonitorTasks
src
IntegrityTask.cc
Go to the documentation of this file.
1
#include "
DQM/EcalMonitorTasks/interface/IntegrityTask.h
"
2
3
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
4
#include "
FWCore/Utilities/interface/Exception.h
"
5
6
namespace
ecaldqm
{
7
IntegrityTask::IntegrityTask
() :
DQWorkerTask
() {}
8
9
void
IntegrityTask::beginEvent
(
edm::Event
const
& _evt,
10
edm::EventSetup
const
& _es,
11
bool
const
& ByLumiResetSwitch,
12
bool
&) {
13
if
(ByLumiResetSwitch) {
14
MEs_
.
at
(
"MapByLumi"
).
reset
();
15
MEs_
.
at
(
"ByLumi"
).
reset
();
16
}
17
}
18
19
template
<
typename
IDCollection>
20
void
IntegrityTask::runOnDetIdCollection
(IDCollection
const
& _ids,
Collections
_collection) {
21
// Collection is empty if there are no errors
22
if
(_ids.empty())
23
return
;
24
25
MESet
* set(
nullptr
);
26
switch
(_collection) {
27
case
kEBGainErrors
:
28
case
kEEGainErrors
:
29
set = &
MEs_
.
at
(
"Gain"
);
30
break
;
31
case
kEBChIdErrors
:
32
case
kEEChIdErrors
:
33
set = &
MEs_
.
at
(
"ChId"
);
34
break
;
35
case
kEBGainSwitchErrors
:
36
case
kEEGainSwitchErrors
:
37
set = &
MEs_
.
at
(
"GainSwitch"
);
38
break
;
39
default
:
40
return
;
41
}
42
43
MESet
& meMapByLumi(
MEs_
.
at
(
"MapByLumi"
));
44
MESet
& meByLumi(
MEs_
.
at
(
"ByLumi"
));
45
MESet
& meTotal(
MEs_
.
at
(
"Total"
));
46
MESet
& meTrendNErrors(
MEs_
.
at
(
"TrendNErrors"
));
47
48
std::for_each(_ids.begin(), _ids.end(), [&](
typename
IDCollection::value_type
const
&
id
) {
49
set->
fill
(
id
);
50
int
dccid(
dccId
(
id
));
51
meByLumi.fill(dccid);
52
meTotal.fill(dccid);
53
// Fill Integrity Errors Map with channel errors for this lumi
54
meMapByLumi.fill(
id
);
55
56
meTrendNErrors.fill(
double
(
timestamp_
.
iLumi
), 1.);
57
});
58
}
59
60
void
IntegrityTask::runOnElectronicsIdCollection
(
EcalElectronicsIdCollection
const
& _ids,
Collections
_collection) {
61
// Collection is empty if there are no errors
62
if
(_ids.
empty
())
63
return
;
64
65
MESet
* set(
nullptr
);
66
switch
(_collection) {
67
case
kTowerIdErrors
:
68
set = &
MEs_
.
at
(
"TowerId"
);
69
break
;
70
case
kBlockSizeErrors
:
71
set = &
MEs_
.
at
(
"BlockSize"
);
72
break
;
73
default
:
74
return
;
75
}
76
77
MESet
& meMapByLumi(
MEs_
.
at
(
"MapByLumi"
));
78
MESet
& meByLumi(
MEs_
.
at
(
"ByLumi"
));
79
MESet
& meTotal(
MEs_
.
at
(
"Total"
));
80
MESet
& meTrendNErrors(
MEs_
.
at
(
"TrendNErrors"
));
81
82
std::for_each(_ids.
begin
(), _ids.
end
(), [&](
EcalElectronicsIdCollection::value_type
const
&
id
) {
83
set->
fill
(
id
);
84
int
dccid(
id
.
dccId
());
85
double
nCrystals
(0.);
86
std::vector<DetId> chIds(
getElectronicsMap
()->dccTowerConstituents(dccid,
id
.
towerId
()));
87
if
(dccid <= kEEmHigh + 1 || dccid >=
kEEpLow
+ 1)
88
nCrystals
= chIds.size();
89
else
90
nCrystals
= 25.;
91
meByLumi.fill(dccid,
nCrystals
);
92
meTotal.fill(dccid,
nCrystals
);
93
// Fill Integrity Errors Map with tower errors for this lumi
94
// Since binned by crystal for compatibility with channel errors,
95
// fill with constituent channels of tower
96
for
(std::vector<DetId>::iterator chItr(chIds.begin()); chItr != chIds.end(); ++chItr)
97
meMapByLumi.fill(*chItr);
98
99
meTrendNErrors.fill(
double
(
timestamp_
.
iLumi
),
nCrystals
);
100
});
101
}
102
103
DEFINE_ECALDQM_WORKER
(
IntegrityTask
);
104
}
// namespace ecaldqm
IntegrityTask.h
edm::EDCollection::begin
const_iterator begin() const
Definition:
EDCollection.h:117
edm::EDCollection::value_type
T value_type
Definition:
EDCollection.h:18
ecaldqm
Definition:
DQWorker.h:24
ecaldqm::kEEGainSwitchErrors
Definition:
Collections.h:16
ecaldqm::kEBGainErrors
Definition:
Collections.h:11
ecaldqm::kEBChIdErrors
Definition:
Collections.h:13
ecaldqm::kEEGainErrors
Definition:
Collections.h:12
ecaldqm::MESet::fill
virtual void fill(DetId const &, double=1., double=1., double=1.)
Definition:
MESet.h:46
ecaldqm::kTowerIdErrors
Definition:
Collections.h:17
ecaldqm::DQWorkerTask
Definition:
DQWorkerTask.h:71
ecaldqm::kEEChIdErrors
Definition:
Collections.h:14
ecaldqm::IntegrityTask::beginEvent
void beginEvent(edm::Event const &, edm::EventSetup const &, bool const &, bool &) override
Definition:
IntegrityTask.cc:9
ecaldqm::DQWorker::MEs_
MESetCollection MEs_
Definition:
DQWorker.h:78
edm::EDCollection::empty
bool empty() const
Definition:
EDCollection.h:77
ecaldqm::nCrystals
unsigned nCrystals(unsigned)
Definition:
EcalDQMCommonUtils.cc:334
ecaldqm::MESetCollection::at
MESet & at(const std::string &key)
Definition:
MESet.h:362
ecaldqm::IntegrityTask
Definition:
IntegrityTask.h:13
ecaldqm::Collections
Collections
Definition:
Collections.h:8
ecaldqm::MESet::reset
virtual void reset(double=0., double=0., double=0.)
Definition:
MESet.cc:98
edm::EventSetup
Definition:
EventSetup.h:57
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition:
JetExtendedAssociation.h:30
edm::EDCollection
Definition:
EDCollection.h:16
ecaldqm::DQWorker::Timestamp::iLumi
edm::LuminosityBlockNumber_t iLumi
Definition:
DQWorker.h:35
ecaldqm::towerId
unsigned towerId(DetId const &)
Definition:
EcalDQMCommonUtils.cc:79
triggerObjects_cff.id
id
Definition:
triggerObjects_cff.py:31
ecaldqm::IntegrityTask::runOnDetIdCollection
void runOnDetIdCollection(C const &, Collections)
ecaldqm::kEEpLow
Definition:
EcalDQMCommonUtils.h:83
ecaldqm::DQWorker::timestamp_
Timestamp timestamp_
Definition:
DQWorker.h:81
ecaldqm::IntegrityTask::runOnElectronicsIdCollection
void runOnElectronicsIdCollection(EcalElectronicsIdCollection const &, Collections)
Definition:
IntegrityTask.cc:60
Exception.h
ecaldqm::IntegrityTask::IntegrityTask
IntegrityTask()
Definition:
IntegrityTask.cc:7
DEFINE_ECALDQM_WORKER
#define DEFINE_ECALDQM_WORKER(TYPE)
Definition:
DQWorker.h:112
ParameterSet.h
ecaldqm::getElectronicsMap
const EcalElectronicsMapping * getElectronicsMap()
Definition:
EcalDQMCommonUtils.cc:438
edm::Event
Definition:
Event.h:73
ecaldqm::kBlockSizeErrors
Definition:
Collections.h:18
ecaldqm::kEBGainSwitchErrors
Definition:
Collections.h:15
edm::EDCollection::end
const_iterator end() const
Definition:
EDCollection.h:122
ecaldqm::MESet
Definition:
MESet.h:27
ecaldqm::dccId
unsigned dccId(DetId const &)
Definition:
EcalDQMCommonUtils.cc:16
Generated for CMSSW Reference Manual by
1.8.16