63 digisTokenF5HB_{consumes<IProductTypef5>(ps.getParameter<
edm::InputTag>(
"digisLabelF5HB"))},
64 digisTokenF3HB_{consumes<IProductTypef3>(ps.getParameter<
edm::InputTag>(
"digisLabelF3HB"))},
65 rechitsM0Token_{produces<OProductType>(ps.getParameter<
std::string>(
"recHitsLabelM0HBHE"))},
83 configParameters_.maxTimeSamples = ps.getParameter<uint32_t>(
"maxTimeSamples");
84 configParameters_.kprep1dChannelsPerBlock = ps.getParameter<uint32_t>(
"kprep1dChannelsPerBlock");
85 configParameters_.sipmQTSShift = ps.getParameter<
int>(
"sipmQTSShift");
86 configParameters_.sipmQNTStoSum = ps.getParameter<
int>(
"sipmQNTStoSum");
87 configParameters_.firstSampleShift = ps.getParameter<
int>(
"firstSampleShift");
88 configParameters_.useEffectivePedestals = ps.getParameter<
bool>(
"useEffectivePedestals");
89 if (configParameters_.useEffectivePedestals) {
93 configParameters_.meanTime = ps.getParameter<
double>(
"meanTime");
94 configParameters_.timeSigmaSiPM = ps.getParameter<
double>(
"timeSigmaSiPM");
95 configParameters_.timeSigmaHPD = ps.getParameter<
double>(
"timeSigmaHPD");
96 configParameters_.ts4Thresh = ps.getParameter<
double>(
"ts4Thresh");
98 configParameters_.applyTimeSlew = ps.getParameter<
bool>(
"applyTimeSlew");
99 auto const tzeroValues = ps.getParameter<std::vector<double>>(
"tzeroTimeSlewParameters");
100 auto const slopeValues = ps.getParameter<std::vector<double>>(
"slopeTimeSlewParameters");
101 auto const tmaxValues = ps.getParameter<std::vector<double>>(
"tmaxTimeSlewParameters");
107 auto threadsMinimize = ps.getParameter<std::vector<uint32_t>>(
"kernelMinimizeThreads");
108 configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0];
109 configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1];
110 configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2];
118 ->setComment(
"This parameter is obsolete and will be ignored.");
119 desc.add<uint32_t>(
"maxTimeSamples", 10);
120 desc.add<uint32_t>(
"kprep1dChannelsPerBlock", 32);
125 desc.add<
int>(
"sipmQTSShift", 0);
126 desc.add<
int>(
"sipmQNTStoSum", 3);
127 desc.add<
int>(
"firstSampleShift", 0);
128 desc.add<
bool>(
"useEffectivePedestals",
true);
130 desc.add<
double>(
"meanTime", 0.f);
131 desc.add<
double>(
"timeSigmaSiPM", 2.5f);
132 desc.add<
double>(
"timeSigmaHPD", 5.0f);
133 desc.add<
double>(
"ts4Thresh", 0.0);
135 desc.add<
bool>(
"applyTimeSlew",
true);
136 desc.add<std::vector<double>>(
"tzeroTimeSlewParameters", {23.960177, 11.977461, 9.109694});
137 desc.add<std::vector<double>>(
"slopeTimeSlewParameters", {-3.178648, -1.5610227, -1.075824});
138 desc.add<std::vector<double>>(
"tmaxTimeSlewParameters", {16.00, 10.00, 6.25});
139 desc.add<std::vector<uint32_t>>(
"kernelMinimizeThreads", {16, 1, 1});
147 #ifdef HCAL_MAHI_CPUDEBUG 156 auto const& f01HEDigis = ctx.get(f01HEProduct);
157 auto const& f5HBDigis = ctx.get(f5HBProduct);
158 auto const& f3HBDigis = ctx.get(f3HBProduct);
159 auto const totalChannels = f01HEDigis.size + f5HBDigis.size + f3HBDigis.size;
168 auto const& gainsProduct =
setup.getData(
gainsToken_).getProduct(ctx.stream());
177 auto const& pedestalsProduct = pedestals.getProduct(ctx.stream());
182 auto const* effectivePedestalsProduct =
203 auto const& pulseOffsetsProduct =
pulseOffsets.getProduct(ctx.stream());
209 pedestalWidthsProduct,
210 effectivePedestalWidthsProduct,
218 sipmParametersProduct,
219 sipmCharacteristicsProduct,
220 effectivePedestalsProduct,
223 pedestals.offsetForHashes(),
246 #ifdef HCAL_MAHI_CPUDEBUG 248 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(
end -
start).
count();
249 std::cout <<
"acquire duration = " << duration << std::endl;
const edm::ESGetToken< HcalQIETypesGPU, HcalQIETypesRcd > qieTypesToken_
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
T getParameter(std::string const &) const
const edm::ESGetToken< HcalGainWidthsGPU, HcalGainWidthsRcd > gainWidthsToken_
#define DEFINE_FWK_MODULE(type)
cms::cuda::ContextState cudaState_
const edm::ESGetToken< HcalSiPMCharacteristicsGPU, HcalSiPMCharacteristicsRcd > sipmCharacteristicsToken_
const edm::ESGetToken< HcalConvertedEffectivePedestalWidthsGPU, HcalConvertedPedestalWidthsRcd > effectivePedestalWidthsToken_
const edm::ESGetToken< HcalQIECodersGPU, HcalQIEDataRcd > qieCodersToken_
Product const & getProduct(cudaStream_t) const
edm::EDGetTokenT< IProductTypef3 > digisTokenF3HB_
void entryPoint(InputDataGPU const &, OutputDataGPU &, ConditionsProducts const &, ScratchDataGPU &, ConfigParameters const &, cudaStream_t)
edm::ESGetToken< HcalConvertedEffectivePedestalsGPU, HcalConvertedPedestalsRcd > effectivePedestalsToken_
const edm::ESGetToken< HcalRecoParamsWithPulseShapesGPU, HcalRecoParamsRcd > recoParamsToken_
hcal::reconstruction::OutputDataGPU outputGPU_
const edm::ESGetToken< HcalMahiPulseOffsetsGPU, JobConfigurationGPURecord > pulseOffsetsToken_
RecHitCollection<::calo::common::DevStoragePolicy > recHits
const edm::ESGetToken< HcalGainsGPU, HcalGainsRcd > gainsToken_
static void fillDescriptions(edm::ConfigurationDescriptions &)
const edm::ESGetToken< HcalConvertedPedestalWidthsGPU, HcalConvertedPedestalWidthsRcd > pedestalWidthsToken_
const edm::ESGetToken< HcalSiPMParametersGPU, HcalSiPMParametersRcd > sipmParametersToken_
const edm::ESGetToken< HcalDDDRecConstants, HcalRecNumberingRecord > recConstantsToken_
void acquire(edm::Event const &, edm::EventSetup const &, edm::WaitingTaskWithArenaHolder) override
const edm::ESGetToken< HcalTimeCorrsGPU, HcalTimeCorrsRcd > timeCorrsToken_
hcal::reconstruction::ConfigParameters configParameters_
const edm::ESGetToken< HcalChannelQualityGPU, HcalChannelQualityRcd > chQualProductToken_
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topologyToken_
const edm::ESGetToken< HcalLUTCorrsGPU, HcalLUTCorrsRcd > lutCorrsToken_
bool useEffectivePedestals
~HBHERecHitProducerGPU() override
void produce(edm::Event &, edm::EventSetup const &) override
edm::EDGetTokenT< IProductTypef01 > digisTokenF01HE_
HBHERecHitProducerGPU(edm::ParameterSet const &)
device::impl::make_device_unique_selector< T >::non_array make_device_unique(cudaStream_t stream)
const edm::ESGetToken< HcalConvertedPedestalsGPU, HcalConvertedPedestalsRcd > pedestalsToken_
edm::EDGetTokenT< IProductTypef5 > digisTokenF5HB_
void allocate(ConfigParameters const &config, uint32_t size, cudaStream_t cudaStream)
const edm::ESGetToken< HcalRespCorrsGPU, HcalRespCorrsRcd > respCorrsToken_
edm::EDPutTokenT< OProductType > rechitsM0Token_