27 : reco_(conf.getParameter<
bool>(
"correctForTimeslew"),
28 conf.getParameter<
bool>(
"correctForPhaseContainment"),
29 conf.getParameter<double>(
"correctionPhaseNS")),
31 inputLabel_(conf.getParameter<
edm::
InputTag>(
"digiLabel")),
32 correctTiming_(conf.getParameter<
bool>(
"correctTiming")),
33 setNoiseFlags_(conf.getParameter<
bool>(
"setNoiseFlags")),
34 setHSCPFlags_(conf.getParameter<
bool>(
"setHSCPFlags")),
35 setSaturationFlags_(conf.getParameter<
bool>(
"setSaturationFlags")),
36 setTimingTrustFlags_(conf.getParameter<
bool>(
"setTimingTrustFlags")),
37 setPulseShapeFlags_(conf.getParameter<
bool>(
"setPulseShapeFlags")),
38 setNegativeFlags_(
false),
39 dropZSmarkedPassed_(conf.getParameter<
bool>(
"dropZSmarkedPassed")),
40 firstAuxTS_(conf.getParameter<
int>(
"firstAuxTS")),
41 firstSample_(conf.getParameter<
int>(
"firstSample")),
42 samplesToAdd_(conf.getParameter<
int>(
"samplesToAdd")),
43 tsFromDB_(conf.getParameter<
bool>(
"tsFromDB")),
44 useLeakCorrection_(conf.getParameter<
bool>(
"useLeakCorrection")),
45 dataOOTCorrectionName_(
""),
46 dataOOTCorrectionCategory_(
"Data"),
47 mcOOTCorrectionName_(
""),
48 mcOOTCorrectionCategory_(
"MC"),
49 setPileupCorrection_(nullptr),
69 if (conf.
existsAs<
bool>(
"setNegativeFlags"))
86 if (!strcasecmp(subd.c_str(),
"HO")) {
90 produces<HORecHitCollection>();
91 }
else if (!strcasecmp(subd.c_str(),
"HF")) {
110 psS9S1.
getParameter<std::vector<double> >(
"shortEnergyParams"),
111 psS9S1.
getParameter<std::vector<double> >(
"shortETParams"),
112 psS9S1.
getParameter<std::vector<double> >(
"long_optimumSlope"),
113 psS9S1.
getParameter<std::vector<double> >(
"longEnergyParams"),
114 psS9S1.
getParameter<std::vector<double> >(
"longETParams"),
120 psS8S1.
getParameter<std::vector<double> >(
"shortEnergyParams"),
121 psS8S1.
getParameter<std::vector<double> >(
"shortETParams"),
122 psS8S1.
getParameter<std::vector<double> >(
"long_optimumSlope"),
123 psS8S1.
getParameter<std::vector<double> >(
"longEnergyParams"),
124 psS8S1.
getParameter<std::vector<double> >(
"longETParams"),
130 psPET.
getParameter<std::vector<double> >(
"shortEnergyParams"),
131 psPET.
getParameter<std::vector<double> >(
"shortETParams"),
133 psPET.
getParameter<std::vector<double> >(
"longEnergyParams"),
134 psPET.
getParameter<std::vector<double> >(
"longETParams"),
139 produces<HFRecHitCollection>();
140 }
else if (!strcasecmp(subd.c_str(),
"ZDC")) {
143 produces<ZDCRecHitCollection>();
144 }
else if (!strcasecmp(subd.c_str(),
"CALIB")) {
147 produces<HcalCalibRecHitCollection>();
149 edm::LogWarning(
"Configuration") <<
"HcalHitReconstructor is not associated with a specific subdetector!"
245 auto rec = std::make_unique<HORecHitCollection>();
246 rec->reserve(digi->
size());
251 int favorite_capid = 0;
253 long capid_votes[4] = {0, 0, 0, 0};
255 capid_votes[(*i)[0].capid()]++;
257 for (
int k = 0;
k < 4;
k++)
258 if (capid_votes[
k] > capid_votes[favorite_capid])
290 <<
"HcalHitReconstructor: illegal firstSample" <<
first <<
" in subdet " <<
subdet_ << std::endl;
297 if (
i->zsMarkAndPass())
312 for (
int xx = fTS;
xx < fTS + 4 &&
xx <
i->size(); ++
xx)
313 auxflag += (
i->sample(
xx).adc())
317 auxflag += ((
i->sample(fTS).capid()) << 28);
318 (rec->back()).setAux(auxflag);
340 auto rec = std::make_unique<HFRecHitCollection>();
341 rec->reserve(digi->
size());
346 int favorite_capid = 0;
348 long capid_votes[4] = {0, 0, 0, 0};
350 capid_votes[(*i)[0].capid()]++;
352 for (
int k = 0;
k < 4;
k++)
353 if (capid_votes[
k] > capid_votes[favorite_capid])
385 <<
"HcalHitReconstructor: illegal firstSample" <<
first <<
" in subdet " <<
subdet_ << std::endl;
392 if (
i->zsMarkAndPass())
418 for (
int xx = fTS;
xx < fTS + 4 &&
xx <
i->size(); ++
xx)
419 auxflag += (
i->sample(
xx).adc())
423 auxflag += ((
i->sample(fTS).capid()) << 28);
424 (rec->back()).setAux(auxflag);
452 int depth =
i->id().depth();
453 int ieta =
i->id().ieta();
461 int depth =
i->id().depth();
462 int ieta =
i->id().ieta();
470 int depth =
i->id().depth();
471 int ieta =
i->id().ieta();
485 auto rec = std::make_unique<HcalCalibRecHitCollection>();
486 rec->reserve(digi->
size());
501 if (
i->zsMarkAndPass())