74 std::unique_ptr<AbsHFPhase1Algo>
reco_;
78 std::unique_ptr<HcalHF_S9S1algorithm>
hfS9S1_;
79 std::unique_ptr<HcalHF_S9S1algorithm>
hfS8S1_;
80 std::unique_ptr<HcalHF_PETalgorithm>
hfPET_;
93 : algoConfigClass_(conf.getParameter<
std::
string>(
"algoConfigClass")),
94 setNoiseFlags_(conf.getParameter<
bool>(
"setNoiseFlags")),
95 runHFStripFilter_(conf.getParameter<
bool>(
"runHFStripFilter")),
96 useChannelQualityFromDB_(conf.getParameter<
bool>(
"useChannelQualityFromDB")),
97 checkChannelQualityForDepth3and4_(conf.getParameter<
bool>(
"checkChannelQualityForDepth3and4")),
101 throw cms::Exception(
"HFPhase1BadConfig") <<
"Invalid HFPhase1Reconstructor algorithm configuration" << std::endl;
106 hfS9S1_ = std::make_unique<HcalHF_S9S1algorithm>(psS9S1.
getParameter<std::vector<double> >(
"short_optimumSlope"),
107 psS9S1.
getParameter<std::vector<double> >(
"shortEnergyParams"),
108 psS9S1.
getParameter<std::vector<double> >(
"shortETParams"),
109 psS9S1.
getParameter<std::vector<double> >(
"long_optimumSlope"),
110 psS9S1.
getParameter<std::vector<double> >(
"longEnergyParams"),
111 psS9S1.
getParameter<std::vector<double> >(
"longETParams"),
116 hfS8S1_ = std::make_unique<HcalHF_S9S1algorithm>(psS8S1.
getParameter<std::vector<double> >(
"short_optimumSlope"),
117 psS8S1.
getParameter<std::vector<double> >(
"shortEnergyParams"),
118 psS8S1.
getParameter<std::vector<double> >(
"shortETParams"),
119 psS8S1.
getParameter<std::vector<double> >(
"long_optimumSlope"),
120 psS8S1.
getParameter<std::vector<double> >(
"longEnergyParams"),
121 psS8S1.
getParameter<std::vector<double> >(
"longETParams"),
126 hfPET_ = std::make_unique<HcalHF_PETalgorithm>(psPET.
getParameter<std::vector<double> >(
"short_R"),
127 psPET.
getParameter<std::vector<double> >(
"shortEnergyParams"),
128 psPET.
getParameter<std::vector<double> >(
"shortETParams"),
130 psPET.
getParameter<std::vector<double> >(
"longEnergyParams"),
131 psPET.
getParameter<std::vector<double> >(
"longETParams"),
147 produces<HFRecHitCollection>();
152 sevToken_ = esConsumes<HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd>();
161 if (
reco_->isConfigurable()) {
165 <<
"Invalid HFPhase1Reconstructor \"algoConfigClass\" parameter value \"" <<
algoConfigClass_ <<
'"'
169 <<
"Failed to configure HFPhase1Reconstructor algorithm from EventSetup" << std::endl;
187 std::unique_ptr<HFRecHitCollection> rec(std::make_unique<HFRecHitCollection>());
188 rec->reserve(preRecHits->
size());
195 const bool thisIsSingleAnodePMT =
false;
198 bool taggedBadByDb[2] = {
false,
false};
202 anodeIds[0] = it->id();
204 for (
unsigned i = 0;
i < 2; ++
i) {
211 taggedBadByDb[0] =
b;
212 taggedBadByDb[1] =
b;
218 reco_->reconstruct(*it,
conditions->getHcalCalibrations(it->id()), taggedBadByDb, thisIsSingleAnodePMT);
235 int depth =
i->id().depth();
236 int ieta =
i->id().ieta();
239 hfPET_->HFSetFlagFromPET(*
i, *rec, myqual, mySeverity);
244 int depth =
i->id().depth();
245 int ieta =
i->id().ieta();
248 hfS8S1_->HFSetFlagFromS9S1(*
i, *rec, myqual, mySeverity);
253 int depth =
i->id().depth();
254 int ieta =
i->id().ieta();
257 hfS9S1_->HFSetFlagFromS9S1(*
i, *rec, myqual, mySeverity);
269 #define add_param_set(name) \
270 edm::ParameterSetDescription name; \
271 name.setAllowAnything(); \
272 desc.add<edm::ParameterSetDescription>(#name, name)
280 desc.add<
bool>(
"setNoiseFlags");
281 desc.add<
bool>(
"runHFStripFilter",
false);
282 desc.add<
bool>(
"useChannelQualityFromDB");
283 desc.add<
bool>(
"checkChannelQualityForDepth3and4");