43 digisTokenF5HB_{consumes<IProductTypef5>(ps.getParameter<
edm::InputTag>(
"digisLabelF5HB"))},
44 digisTokenF3HB_{consumes<IProductTypef3>(ps.getParameter<
edm::InputTag>(
"digisLabelF3HB"))},
45 rechitsM0Token_{produces<OProductType>(ps.getParameter<
std::string>(
"recHitsLabelM0HBHE"))} {
46 configParameters_.maxChannels = ps.getParameter<uint32_t>(
"maxChannels");
47 configParameters_.maxTimeSamples = ps.getParameter<uint32_t>(
"maxTimeSamples");
48 configParameters_.kprep1dChannelsPerBlock = ps.getParameter<uint32_t>(
"kprep1dChannelsPerBlock");
49 configParameters_.sipmQTSShift = ps.getParameter<
int>(
"sipmQTSShift");
50 configParameters_.sipmQNTStoSum = ps.getParameter<
int>(
"sipmQNTStoSum");
51 configParameters_.firstSampleShift = ps.getParameter<
int>(
"firstSampleShift");
52 configParameters_.useEffectivePedestals = ps.getParameter<
bool>(
"useEffectivePedestals");
54 configParameters_.meanTime = ps.getParameter<
double>(
"meanTime");
55 configParameters_.timeSigmaSiPM = ps.getParameter<
double>(
"timeSigmaSiPM");
56 configParameters_.timeSigmaHPD = ps.getParameter<
double>(
"timeSigmaHPD");
57 configParameters_.ts4Thresh = ps.getParameter<
double>(
"ts4Thresh");
59 configParameters_.applyTimeSlew = ps.getParameter<
bool>(
"applyTimeSlew");
60 auto const tzeroValues = ps.getParameter<std::vector<double>>(
"tzeroTimeSlewParameters");
61 auto const slopeValues = ps.getParameter<std::vector<double>>(
"slopeTimeSlewParameters");
62 auto const tmaxValues = ps.getParameter<std::vector<double>>(
"tmaxTimeSlewParameters");
68 auto threadsMinimize = ps.getParameter<std::vector<uint32_t>>(
"kernelMinimizeThreads");
69 configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0];
70 configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1];
71 configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2];
78 desc.add<uint32_t>(
"maxChannels", 10000u);
79 desc.add<uint32_t>(
"maxTimeSamples", 10);
80 desc.add<uint32_t>(
"kprep1dChannelsPerBlock", 32);
85 desc.add<
int>(
"sipmQTSShift", 0);
86 desc.add<
int>(
"sipmQNTStoSum", 3);
87 desc.add<
int>(
"firstSampleShift", 0);
88 desc.add<
bool>(
"useEffectivePedestals",
true);
90 desc.add<
double>(
"meanTime", 0.f);
91 desc.add<
double>(
"timeSigmaSiPM", 2.5f);
92 desc.add<
double>(
"timeSigmaHPD", 5.0f);
93 desc.add<
double>(
"ts4Thresh", 0.0);
95 desc.add<
bool>(
"applyTimeSlew",
true);
96 desc.add<std::vector<double>>(
"tzeroTimeSlewParameters", {23.960177, 11.977461, 9.109694});
97 desc.add<std::vector<double>>(
"slopeTimeSlewParameters", {-3.178648, -1.5610227, -1.075824});
98 desc.add<std::vector<double>>(
"tmaxTimeSlewParameters", {16.00, 10.00, 6.25});
99 desc.add<std::vector<uint32_t>>(
"kernelMinimizeThreads", {16, 1, 1});
107 #ifdef HCAL_MAHI_CPUDEBUG
116 auto const& f01HEDigis = ctx.get(f01HEProduct);
117 auto const& f5HBDigis = ctx.get(f5HBProduct);
118 auto const& f3HBDigis = ctx.get(f3HBProduct);
125 auto const& recoParamsProduct = recoParamsHandle->
getProduct(ctx.stream());
129 auto const& gainWidthsProduct = gainWidthsHandle->
getProduct(ctx.stream());
133 auto const& gainsProduct = gainsHandle->
getProduct(ctx.stream());
137 auto const& lutCorrsProduct = lutCorrsHandle->
getProduct(ctx.stream());
144 auto const& pedestalWidthsProduct = pedestalWidthsHandle->
getProduct(ctx.stream());
145 auto const& effectivePedestalWidthsProduct = effectivePedestalWidthsHandle->
getProduct(ctx.stream());
149 auto const& pedestalsProduct = pedestalsHandle->
getProduct(ctx.stream());
154 auto const* effectivePedestalsProduct =
159 auto const& qieCodersProduct = qieCodersHandle->
getProduct(ctx.stream());
163 auto const& respCorrsProduct = respCorrsHandle->
getProduct(ctx.stream());
167 auto const& timeCorrsProduct = timeCorrsHandle->
getProduct(ctx.stream());
171 auto const& qieTypesProduct = qieTypesHandle->
getProduct(ctx.stream());
180 auto const& sipmParametersProduct = sipmParametersHandle->
getProduct(ctx.stream());
184 auto const& sipmCharacteristicsProduct = sipmCharacteristicsHandle->
getProduct(ctx.stream());
188 auto const& pulseOffsetsProduct = pulseOffsetsHandle->
getProduct(ctx.stream());
194 pedestalWidthsProduct,
195 effectivePedestalWidthsProduct,
202 sipmParametersProduct,
203 sipmCharacteristicsProduct,
204 effectivePedestalsProduct,
236 #ifdef HCAL_MAHI_CPUDEBUG
238 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(
end -
start).count();
239 std::cout <<
"acquire duration = " << duration << std::endl;