81 desc.add<
double>(
"EBtimeFitLimits_Lower", 0.2);
82 desc.add<
double>(
"EBtimeFitLimits_Upper", 1.4);
83 desc.add<
double>(
"EEtimeFitLimits_Lower", 0.2);
84 desc.add<
double>(
"EEtimeFitLimits_Upper", 1.4);
85 desc.add<
double>(
"EBtimeConstantTerm", .6);
86 desc.add<
double>(
"EEtimeConstantTerm", 1.0);
87 desc.add<
double>(
"EBtimeNconst", 28.5);
88 desc.add<
double>(
"EEtimeNconst", 31.8);
89 desc.add<
double>(
"outOfTimeThresholdGain12pEB", 5);
90 desc.add<
double>(
"outOfTimeThresholdGain12mEB", 5);
91 desc.add<
double>(
"outOfTimeThresholdGain61pEB", 5);
92 desc.add<
double>(
"outOfTimeThresholdGain61mEB", 5);
93 desc.add<
double>(
"outOfTimeThresholdGain12pEE", 1000);
94 desc.add<
double>(
"outOfTimeThresholdGain12mEE", 1000);
95 desc.add<
double>(
"outOfTimeThresholdGain61pEE", 1000);
96 desc.add<
double>(
"outOfTimeThresholdGain61mEE", 1000);
97 desc.add<
double>(
"amplitudeThresholdEB", 10);
98 desc.add<
double>(
"amplitudeThresholdEE", 10);
99 desc.add<uint32_t>(
"maxNumberHitsEB", 61200);
100 desc.add<uint32_t>(
"maxNumberHitsEE", 14648);
101 desc.addUntracked<std::vector<uint32_t>>(
"kernelMinimizeThreads", {32, 1, 1});
102 desc.add<
bool>(
"shouldRunTimingComputation",
true);
108 digisTokenEE_{consumes<InputProduct>(ps.getParameter<
edm::InputTag>(
"digisLabelEE"))},
109 recHitsTokenEB_{produces<OutputProduct>(ps.getParameter<
std::string>(
"recHitsLabelEB"))},
110 recHitsTokenEE_{produces<OutputProduct>(ps.getParameter<
std::string>(
"recHitsLabelEE"))},
111 pedestalsToken_{esConsumes<EcalPedestalsGPU, EcalPedestalsRcd>()},
112 gainRatiosToken_{esConsumes<EcalGainRatiosGPU, EcalGainRatiosRcd>()},
113 pulseShapesToken_{esConsumes<EcalPulseShapesGPU, EcalPulseShapesRcd>()},
114 pulseCovariancesToken_{esConsumes<EcalPulseCovariancesGPU, EcalPulseCovariancesRcd>()},
115 samplesCorrelationToken_{esConsumes<EcalSamplesCorrelationGPU, EcalSamplesCorrelationRcd>()},
116 timeBiasCorrectionsToken_{esConsumes<EcalTimeBiasCorrectionsGPU, EcalTimeBiasCorrectionsRcd>()},
117 timeCalibConstantsToken_{esConsumes<EcalTimeCalibConstantsGPU, EcalTimeCalibConstantsRcd>()},
118 sampleMaskToken_{esConsumes<EcalSampleMask, EcalSampleMaskRcd>()},
119 timeOffsetConstantToken_{esConsumes<EcalTimeOffsetConstant, EcalTimeOffsetConstantRcd>()},
120 multifitParametersToken_{esConsumes<EcalMultifitParametersGPU, JobConfigurationGPURecord>()} {
121 std::pair<double, double> EBtimeFitLimits, EEtimeFitLimits;
122 EBtimeFitLimits.first = ps.getParameter<
double>(
"EBtimeFitLimits_Lower");
123 EBtimeFitLimits.second = ps.getParameter<
double>(
"EBtimeFitLimits_Upper");
124 EEtimeFitLimits.first = ps.getParameter<
double>(
"EEtimeFitLimits_Lower");
125 EEtimeFitLimits.second = ps.getParameter<
double>(
"EEtimeFitLimits_Upper");
129 auto EBtimeNconst = ps.getParameter<
double>(
"EBtimeNconst");
130 auto EEtimeNconst = ps.getParameter<
double>(
"EEtimeNconst");
132 auto outOfTimeThreshG12pEB = ps.getParameter<
double>(
"outOfTimeThresholdGain12pEB");
133 auto outOfTimeThreshG12mEB = ps.getParameter<
double>(
"outOfTimeThresholdGain12mEB");
134 auto outOfTimeThreshG61pEB = ps.getParameter<
double>(
"outOfTimeThresholdGain61pEB");
135 auto outOfTimeThreshG61mEB = ps.getParameter<
double>(
"outOfTimeThresholdGain61mEB");
136 auto outOfTimeThreshG12pEE = ps.getParameter<
double>(
"outOfTimeThresholdGain12pEE");
137 auto outOfTimeThreshG12mEE = ps.getParameter<
double>(
"outOfTimeThresholdGain12mEE");
138 auto outOfTimeThreshG61pEE = ps.getParameter<
double>(
"outOfTimeThresholdGain61pEE");
139 auto outOfTimeThreshG61mEE = ps.getParameter<
double>(
"outOfTimeThresholdGain61mEE");
140 auto amplitudeThreshEB = ps.getParameter<
double>(
"amplitudeThresholdEB");
141 auto amplitudeThreshEE = ps.getParameter<
double>(
"amplitudeThresholdEE");
144 configParameters_.maxNumberHitsEB = ps.getParameter<uint32_t>(
"maxNumberHitsEB");
145 configParameters_.maxNumberHitsEE = ps.getParameter<uint32_t>(
"maxNumberHitsEE");
148 configParameters_.shouldRunTimingComputation = ps.getParameter<
bool>(
"shouldRunTimingComputation");
151 auto threadsMinimize = ps.getUntrackedParameter<std::vector<uint32_t>>(
"kernelMinimizeThreads");
152 configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0];
153 configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1];
154 configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2];
163 configParameters_.timeFitLimitsFirstEB = EBtimeFitLimits.first;
164 configParameters_.timeFitLimitsSecondEB = EBtimeFitLimits.second;
165 configParameters_.timeFitLimitsFirstEE = EEtimeFitLimits.first;
166 configParameters_.timeFitLimitsSecondEE = EEtimeFitLimits.second;
177 configParameters_.amplitudeThreshEB = amplitudeThreshEB;
178 configParameters_.amplitudeThreshEE = amplitudeThreshEE;
181 configParameters_.outOfTimeThreshG12pEB = outOfTimeThreshG12pEB;
182 configParameters_.outOfTimeThreshG12pEE = outOfTimeThreshG12pEE;
183 configParameters_.outOfTimeThreshG61pEB = outOfTimeThreshG61pEB;
184 configParameters_.outOfTimeThreshG61pEE = outOfTimeThreshG61pEE;
185 configParameters_.outOfTimeThreshG12mEB = outOfTimeThreshG12mEB;
186 configParameters_.outOfTimeThreshG12mEE = outOfTimeThreshG12mEE;
187 configParameters_.outOfTimeThreshG61mEB = outOfTimeThreshG61mEB;
188 configParameters_.outOfTimeThreshG61mEE = outOfTimeThreshG61mEE;
204 auto const& ebDigis = ctx.get(ebDigisProduct);
205 auto const&
eeDigis = ctx.get(eeDigisProduct);
212 <<
"max number of channels exceeded. See options 'maxNumberHitsEB and maxNumberHitsEE' ";
227 auto const& timeCalibConstants = timeCalibConstantsData.getProduct(ctx.stream());
228 auto const& multifitParameters = multifitParametersData.getProduct(ctx.stream());
247 timeOffsetConstantData,
248 timeCalibConstantsData.getOffset(),