73 desc.add<
double>(
"EBtimeFitLimits_Lower", 0.2);
74 desc.add<
double>(
"EBtimeFitLimits_Upper", 1.4);
75 desc.add<
double>(
"EEtimeFitLimits_Lower", 0.2);
76 desc.add<
double>(
"EEtimeFitLimits_Upper", 1.4);
77 desc.add<
double>(
"EBtimeConstantTerm", .6);
78 desc.add<
double>(
"EEtimeConstantTerm", 1.0);
79 desc.add<
double>(
"EBtimeNconst", 28.5);
80 desc.add<
double>(
"EEtimeNconst", 31.8);
81 desc.add<
double>(
"outOfTimeThresholdGain12pEB", 5);
82 desc.add<
double>(
"outOfTimeThresholdGain12mEB", 5);
83 desc.add<
double>(
"outOfTimeThresholdGain61pEB", 5);
84 desc.add<
double>(
"outOfTimeThresholdGain61mEB", 5);
85 desc.add<
double>(
"outOfTimeThresholdGain12pEE", 1000);
86 desc.add<
double>(
"outOfTimeThresholdGain12mEE", 1000);
87 desc.add<
double>(
"outOfTimeThresholdGain61pEE", 1000);
88 desc.add<
double>(
"outOfTimeThresholdGain61mEE", 1000);
89 desc.add<
double>(
"amplitudeThresholdEB", 10);
90 desc.add<
double>(
"amplitudeThresholdEE", 10);
92 ->setComment(
"This parameter is obsolete and will be ignored.");
94 ->setComment(
"This parameter is obsolete and will be ignored.");
95 desc.addUntracked<std::vector<uint32_t>>(
"kernelMinimizeThreads", {32, 1, 1});
96 desc.add<
bool>(
"shouldRunTimingComputation",
true);
102 digisTokenEE_{consumes<InputProduct>(ps.getParameter<
edm::InputTag>(
"digisLabelEE"))},
103 recHitsTokenEB_{produces<OutputProduct>(ps.getParameter<
std::string>(
"recHitsLabelEB"))},
104 recHitsTokenEE_{produces<OutputProduct>(ps.getParameter<
std::string>(
"recHitsLabelEE"))},
105 pedestalsToken_{esConsumes<EcalPedestalsGPU, EcalPedestalsRcd>()},
106 gainRatiosToken_{esConsumes<EcalGainRatiosGPU, EcalGainRatiosRcd>()},
107 pulseShapesToken_{esConsumes<EcalPulseShapesGPU, EcalPulseShapesRcd>()},
108 pulseCovariancesToken_{esConsumes<EcalPulseCovariancesGPU, EcalPulseCovariancesRcd>()},
109 samplesCorrelationToken_{esConsumes<EcalSamplesCorrelationGPU, EcalSamplesCorrelationRcd>()},
110 timeBiasCorrectionsToken_{esConsumes<EcalTimeBiasCorrectionsGPU, EcalTimeBiasCorrectionsRcd>()},
111 timeCalibConstantsToken_{esConsumes<EcalTimeCalibConstantsGPU, EcalTimeCalibConstantsRcd>()},
112 sampleMaskToken_{esConsumes<EcalSampleMask, EcalSampleMaskRcd>()},
113 timeOffsetConstantToken_{esConsumes<EcalTimeOffsetConstant, EcalTimeOffsetConstantRcd>()},
114 multifitParametersToken_{esConsumes<EcalMultifitParametersGPU, JobConfigurationGPURecord>()} {
115 std::pair<double, double> EBtimeFitLimits, EEtimeFitLimits;
116 EBtimeFitLimits.first = ps.getParameter<
double>(
"EBtimeFitLimits_Lower");
117 EBtimeFitLimits.second = ps.getParameter<
double>(
"EBtimeFitLimits_Upper");
118 EEtimeFitLimits.first = ps.getParameter<
double>(
"EEtimeFitLimits_Lower");
119 EEtimeFitLimits.second = ps.getParameter<
double>(
"EEtimeFitLimits_Upper");
123 auto EBtimeNconst = ps.getParameter<
double>(
"EBtimeNconst");
124 auto EEtimeNconst = ps.getParameter<
double>(
"EEtimeNconst");
126 auto outOfTimeThreshG12pEB = ps.getParameter<
double>(
"outOfTimeThresholdGain12pEB");
127 auto outOfTimeThreshG12mEB = ps.getParameter<
double>(
"outOfTimeThresholdGain12mEB");
128 auto outOfTimeThreshG61pEB = ps.getParameter<
double>(
"outOfTimeThresholdGain61pEB");
129 auto outOfTimeThreshG61mEB = ps.getParameter<
double>(
"outOfTimeThresholdGain61mEB");
130 auto outOfTimeThreshG12pEE = ps.getParameter<
double>(
"outOfTimeThresholdGain12pEE");
131 auto outOfTimeThreshG12mEE = ps.getParameter<
double>(
"outOfTimeThresholdGain12mEE");
132 auto outOfTimeThreshG61pEE = ps.getParameter<
double>(
"outOfTimeThresholdGain61pEE");
133 auto outOfTimeThreshG61mEE = ps.getParameter<
double>(
"outOfTimeThresholdGain61mEE");
134 auto amplitudeThreshEB = ps.getParameter<
double>(
"amplitudeThresholdEB");
135 auto amplitudeThreshEE = ps.getParameter<
double>(
"amplitudeThresholdEE");
138 configParameters_.shouldRunTimingComputation = ps.getParameter<
bool>(
"shouldRunTimingComputation");
141 auto threadsMinimize = ps.getUntrackedParameter<std::vector<uint32_t>>(
"kernelMinimizeThreads");
142 configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0];
143 configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1];
144 configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2];
153 configParameters_.timeFitLimitsFirstEB = EBtimeFitLimits.first;
154 configParameters_.timeFitLimitsSecondEB = EBtimeFitLimits.second;
155 configParameters_.timeFitLimitsFirstEE = EEtimeFitLimits.first;
156 configParameters_.timeFitLimitsSecondEE = EEtimeFitLimits.second;
167 configParameters_.amplitudeThreshEB = amplitudeThreshEB;
168 configParameters_.amplitudeThreshEE = amplitudeThreshEE;
171 configParameters_.outOfTimeThreshG12pEB = outOfTimeThreshG12pEB;
172 configParameters_.outOfTimeThreshG12pEE = outOfTimeThreshG12pEE;
173 configParameters_.outOfTimeThreshG61pEB = outOfTimeThreshG61pEB;
174 configParameters_.outOfTimeThreshG61pEE = outOfTimeThreshG61pEE;
175 configParameters_.outOfTimeThreshG12mEB = outOfTimeThreshG12mEB;
176 configParameters_.outOfTimeThreshG12mEE = outOfTimeThreshG12mEE;
177 configParameters_.outOfTimeThreshG61mEB = outOfTimeThreshG61mEB;
178 configParameters_.outOfTimeThreshG61mEE = outOfTimeThreshG61mEE;
196 auto const& ebDigis = ctx.
get(ebDigisProduct);
197 auto const&
eeDigis = ctx.get(eeDigisProduct);
199 const uint32_t neb = ebDigis.size;
200 const uint32_t nee =
eeDigis.size;
216 auto const& timeCalibConstants = timeCalibConstantsData.getProduct(ctx.stream());
217 auto const& multifitParameters = multifitParametersData.getProduct(ctx.stream());
236 timeOffsetConstantData,
237 timeCalibConstantsData.getOffset(),
const edm::ESGetToken< EcalGainRatiosGPU, EcalGainRatiosRcd > gainRatiosToken_
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
T getParameter(std::string const &) const
const edm::ESGetToken< EcalPulseCovariancesGPU, EcalPulseCovariancesRcd > pulseCovariancesToken_
const edm::EDGetTokenT< InputProduct > digisTokenEE_
#define DEFINE_FWK_MODULE(type)
const edm::ESGetToken< EcalPedestalsGPU, EcalPedestalsRcd > pedestalsToken_
const edm::EDPutTokenT< OutputProduct > recHitsTokenEE_
void allocate(ConfigurationParameters const &configParameters, uint32_t sizeEB, uint32_t sizeEE, cudaStream_t cudaStream)
const edm::ESGetToken< EcalPulseShapesGPU, EcalPulseShapesRcd > pulseShapesToken_
UncalibratedRecHit<::calo::common::DevStoragePolicy > recHitsEB
const edm::ESGetToken< EcalTimeBiasCorrectionsGPU, EcalTimeBiasCorrectionsRcd > timeBiasCorrectionsToken_
const edm::ESGetToken< EcalSampleMask, EcalSampleMaskRcd > sampleMaskToken_
uint32_t timeFitParametersSizeEB
const type * timeFitParametersEE
const type * timeFitParametersEB
const type * amplitudeFitParametersEB
uint32_t timeFitParametersSizeEE
void entryPoint(EventInputDataGPU const &, EventOutputDataGPU &, EventDataForScratchGPU &, ConditionsProducts const &, ConfigurationParameters const &, cudaStream_t)
UncalibratedRecHit<::calo::common::DevStoragePolicy > recHitsEE
const edm::ESGetToken< EcalTimeCalibConstantsGPU, EcalTimeCalibConstantsRcd > timeCalibConstantsToken_
const edm::EDPutTokenT< OutputProduct > recHitsTokenEB_
const type * amplitudeFitParametersEE
void produce(edm::Event &, edm::EventSetup const &) override
void allocate(ConfigurationParameters const &configParameters, uint32_t sizeEB, uint32_t sizeEE, cudaStream_t cudaStream)
static void fillDescriptions(edm::ConfigurationDescriptions &)
const edm::EDGetTokenT< InputProduct > digisTokenEB_
EcalUncalibRecHitProducerGPU(edm::ParameterSet const &ps)
const edm::ESGetToken< EcalSamplesCorrelationGPU, EcalSamplesCorrelationRcd > samplesCorrelationToken_
~EcalUncalibRecHitProducerGPU() override
const T & get(const Product< T > &data)
const edm::ESGetToken< EcalMultifitParametersGPU, JobConfigurationGPURecord > multifitParametersToken_
const edm::ESGetToken< EcalTimeOffsetConstant, EcalTimeOffsetConstantRcd > timeOffsetConstantToken_
ecal::multifit::ConfigurationParameters configParameters_