76 digisTokenF5HB_{consumes<IProductTypef5>(ps.getParameter<
edm::InputTag>(
"digisLabelF5HB"))},
77 digisTokenF3HB_{consumes<IProductTypef3>(ps.getParameter<
edm::InputTag>(
"digisLabelF3HB"))},
78 rechitsM0Token_{produces<OProductType>(ps.getParameter<
std::string>(
"recHitsLabelM0HBHE"))},
96 configParameters_.maxTimeSamples = ps.getParameter<uint32_t>(
"maxTimeSamples");
97 configParameters_.kprep1dChannelsPerBlock = ps.getParameter<uint32_t>(
"kprep1dChannelsPerBlock");
98 configParameters_.sipmQTSShift = ps.getParameter<
int>(
"sipmQTSShift");
99 configParameters_.sipmQNTStoSum = ps.getParameter<
int>(
"sipmQNTStoSum");
100 configParameters_.firstSampleShift = ps.getParameter<
int>(
"firstSampleShift");
101 configParameters_.useEffectivePedestals = ps.getParameter<
bool>(
"useEffectivePedestals");
102 if (configParameters_.useEffectivePedestals) {
106 configParameters_.meanTime = ps.getParameter<
double>(
"meanTime");
107 configParameters_.timeSigmaSiPM = ps.getParameter<
double>(
"timeSigmaSiPM");
108 configParameters_.timeSigmaHPD = ps.getParameter<
double>(
"timeSigmaHPD");
109 configParameters_.ts4Thresh = ps.getParameter<
double>(
"ts4Thresh");
111 configParameters_.applyTimeSlew = ps.getParameter<
bool>(
"applyTimeSlew");
112 auto const tzeroValues = ps.getParameter<std::vector<double>>(
"tzeroTimeSlewParameters");
113 auto const slopeValues = ps.getParameter<std::vector<double>>(
"slopeTimeSlewParameters");
114 auto const tmaxValues = ps.getParameter<std::vector<double>>(
"tmaxTimeSlewParameters");
120 auto threadsMinimize = ps.getParameter<std::vector<uint32_t>>(
"kernelMinimizeThreads");
121 configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0];
122 configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1];
123 configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2];
130 desc.add<uint32_t>(
"maxTimeSamples", 10);
131 desc.add<uint32_t>(
"kprep1dChannelsPerBlock", 32);
136 desc.add<
int>(
"sipmQTSShift", 0);
137 desc.add<
int>(
"sipmQNTStoSum", 3);
138 desc.add<
int>(
"firstSampleShift", 0);
139 desc.add<
bool>(
"useEffectivePedestals",
true);
141 desc.add<
double>(
"meanTime", 0.f);
142 desc.add<
double>(
"timeSigmaSiPM", 2.5f);
143 desc.add<
double>(
"timeSigmaHPD", 5.0f);
144 desc.add<
double>(
"ts4Thresh", 0.0);
146 desc.add<
bool>(
"applyTimeSlew",
true);
147 desc.add<std::vector<double>>(
"tzeroTimeSlewParameters", {23.960177, 11.977461, 9.109694});
148 desc.add<std::vector<double>>(
"slopeTimeSlewParameters", {-3.178648, -1.5610227, -1.075824});
149 desc.add<std::vector<double>>(
"tmaxTimeSlewParameters", {16.00, 10.00, 6.25});
150 desc.add<std::vector<uint32_t>>(
"kernelMinimizeThreads", {16, 1, 1});
158 #ifdef HCAL_MAHI_CPUDEBUG 167 auto const& f01HEDigis = ctx.get(f01HEProduct);
168 auto const& f5HBDigis = ctx.get(f5HBProduct);
169 auto const& f3HBDigis = ctx.get(f3HBProduct);
170 auto const totalChannels = f01HEDigis.size + f5HBDigis.size + f3HBDigis.size;
179 auto const& gainsProduct =
setup.getData(
gainsToken_).getProduct(ctx.stream());
188 auto const& pedestalsProduct = pedestals.getProduct(ctx.stream());
193 auto const* effectivePedestalsProduct =
214 auto const& pulseOffsetsProduct =
pulseOffsets.getProduct(ctx.stream());
220 pedestalWidthsProduct,
221 effectivePedestalWidthsProduct,
229 sipmParametersProduct,
230 sipmCharacteristicsProduct,
231 effectivePedestalsProduct,
234 pedestals.offsetForHashes(),
257 #ifdef HCAL_MAHI_CPUDEBUG 259 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(
end -
start).
count();
260 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_
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_
#define DEFINE_FWK_MODULE(type)
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_