CalibCalorimetry
HcalAlgos
src
HcalPulseContainmentManager.cc
Go to the documentation of this file.
1
#include "
CalibCalorimetry/HcalAlgos/interface/HcalPulseContainmentManager.h
"
2
#include "
FWCore/Framework/interface/ConsumesCollector.h
"
3
#include "
FWCore/Framework/interface/EventSetup.h
"
4
#include <iostream>
5
6
HcalPulseContainmentManager::HcalPulseContainmentManager
(
float
max_fracerror)
7
: entries_(), shapes_(), max_fracerror_(max_fracerror) {
8
hcalTimeSlew_delay_
=
nullptr
;
9
}
10
11
HcalPulseContainmentManager::HcalPulseContainmentManager
(
float
max_fracerror,
edm::ConsumesCollector
iC)
12
: entries_(),
13
shapes_(iC),
14
max_fracerror_(max_fracerror),
15
delayToken_(iC.esConsumes<
edm
::
Transition
::BeginRun>(
edm
::
ESInputTag
(
""
,
"HBHE"
))) {}
16
17
void
HcalPulseContainmentManager::beginRun
(
edm::EventSetup
const
& es) {
18
hcalTimeSlew_delay_
= &es.
getData
(
delayToken_
);
19
20
shapes_
.
beginRun
(es);
21
}
22
23
void
HcalPulseContainmentManager::beginRun
(
const
HcalDbService
*
conditions
,
const
HcalTimeSlew
*
delay
) {
24
hcalTimeSlew_delay_
=
delay
;
25
26
shapes_
.
beginRun
(
conditions
);
27
}
28
29
double
HcalPulseContainmentManager::correction
(
const
HcalDetId
& detId,
int
toAdd
,
float
fixedphase_ns,
double
fc_ampl) {
30
/*
31
int sub = detId.subdet();
32
int depth = detId.depth();
33
int inteta = detId.ieta();
34
int intphi = detId.iphi();
35
36
std::cout << "* HcalPulseContainmentManager::correction, cell:"
37
<< " sub, ieta, iphi, depth = "
38
<< sub << " " << inteta << " " << intphi
39
<< " " << depth << " toAaa= " << toAdd
40
<<" phase = " << fixedphase_ns << " ampl = "
41
<< fc_ampl
42
<< std::endl;
43
*/
44
45
return
get
(detId,
toAdd
, fixedphase_ns)->
getCorrection
(fc_ampl);
46
}
47
48
const
HcalPulseContainmentCorrection
*
HcalPulseContainmentManager::get
(
const
HcalDetId
& detId,
49
int
toAdd
,
50
float
fixedphase_ns) {
51
// const HcalPulseShape * shape = &(shapes_.shape(detId));
52
const
HcalPulseShape
* shape = &(
shapes_
.
shapeForReco
(detId));
53
for
(std::vector<HcalPulseContainmentEntry>::const_iterator entryItr =
entries_
.begin(); entryItr !=
entries_
.end();
54
++entryItr) {
55
if
(entryItr->shape_ == shape && entryItr->toAdd_ ==
toAdd
&& entryItr->fixedphase_ns_ == fixedphase_ns) {
56
return
&entryItr->correction_;
57
}
58
}
59
60
/*
61
int sub = detId.subdet();
62
int depth = detId.depth();
63
int inteta = detId.ieta();
64
int intphi = detId.iphi();
65
66
std::cout << "* HcalPulseContainmentManager::get new entry, cell:"
67
<< " sub, ieta, iphi, depth = "
68
<< sub << " " << inteta << " " << intphi
69
<< " " << depth
70
<< std::endl;
71
*/
72
73
// didn't find it. Make one.
74
HcalPulseContainmentEntry
entry
(
75
toAdd
,
76
fixedphase_ns,
77
shape,
78
HcalPulseContainmentCorrection
(shape,
toAdd
, fixedphase_ns,
max_fracerror_
,
hcalTimeSlew_delay_
));
79
entries_
.push_back(
entry
);
80
return
&(
entries_
.back().correction_);
81
}
HcalPulseContainmentManager::shapes_
HcalPulseShapes shapes_
Definition:
HcalPulseContainmentManager.h:38
HcalPulseContainmentManager::entries_
std::vector< HcalPulseContainmentEntry > entries_
Definition:
HcalPulseContainmentManager.h:37
HcalPulseContainmentManager.h
HcalPulseContainmentManager::max_fracerror_
float max_fracerror_
Definition:
HcalPulseContainmentManager.h:40
ESInputTag
edm
HLT enums.
Definition:
AlignableModifier.h:19
mps_splice.entry
entry
Definition:
mps_splice.py:68
HcalPulseShapes::shapeForReco
const Shape & shapeForReco(const HcalDetId &detId) const
Definition:
HcalPulseShapes.cc:524
HcalPulseContainmentCorrection
Definition:
HcalPulseContainmentCorrection.h:15
HcalPulseContainmentManager::get
const HcalPulseContainmentCorrection * get(const HcalDetId &detId, int toAdd, float fixedphase_ns)
Definition:
HcalPulseContainmentManager.cc:48
HcalTimeSlew
Definition:
HcalTimeSlew.h:19
HcalPulseContainmentManager::HcalPulseContainmentEntry
Definition:
HcalPulseContainmentManager.h:25
HcalPulseContainmentManager::HcalPulseContainmentManager
HcalPulseContainmentManager(float max_fracerror)
Definition:
HcalPulseContainmentManager.cc:6
edm::Transition
Transition
Definition:
Transition.h:12
HcalDetId
Definition:
HcalDetId.h:12
HcalPulseShapes::beginRun
void beginRun(edm::EventSetup const &es)
Definition:
HcalPulseShapes.cc:146
HcalPulseContainmentManager::hcalTimeSlew_delay_
const HcalTimeSlew * hcalTimeSlew_delay_
Definition:
HcalPulseContainmentManager.h:43
edm::EventSetup
Definition:
EventSetup.h:57
HcalPulseContainmentCorrection::getCorrection
double getCorrection(double fc_ampl) const
Definition:
HcalPulseContainmentCorrection.cc:51
HcalPulseShape
Definition:
HcalPulseShape.h:6
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition:
EventSetup.h:120
HcalDbService
Definition:
HcalDbService.h:26
submitPVValidationJobs.conditions
list conditions
Definition:
submitPVValidationJobs.py:674
EventSetup.h
phase2TrackerDigitizer_cfi.delay
delay
Definition:
phase2TrackerDigitizer_cfi.py:49
ConsumesCollector.h
HcalPulseContainmentManager::correction
double correction(const HcalDetId &detId, int toAdd, float fixedphase_ns, double fc_ampl)
Definition:
HcalPulseContainmentManager.cc:29
HcalPulseContainmentManager::beginRun
void beginRun(edm::EventSetup const &es)
Definition:
HcalPulseContainmentManager.cc:17
HLT_FULL_cff.toAdd
toAdd
Definition:
HLT_FULL_cff.py:52121
edm::ConsumesCollector
Definition:
ConsumesCollector.h:45
HcalPulseContainmentManager::delayToken_
const edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > delayToken_
Definition:
HcalPulseContainmentManager.h:41
Generated for CMSSW Reference Manual by
1.8.16