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_.maxChannels = ps.getParameter<uint32_t>(
"maxChannels");
84 configParameters_.maxTimeSamples = ps.getParameter<uint32_t>(
"maxTimeSamples");
85 configParameters_.kprep1dChannelsPerBlock = ps.getParameter<uint32_t>(
"kprep1dChannelsPerBlock");
86 configParameters_.sipmQTSShift = ps.getParameter<
int>(
"sipmQTSShift");
87 configParameters_.sipmQNTStoSum = ps.getParameter<
int>(
"sipmQNTStoSum");
88 configParameters_.firstSampleShift = ps.getParameter<
int>(
"firstSampleShift");
89 configParameters_.useEffectivePedestals = ps.getParameter<
bool>(
"useEffectivePedestals");
90 if (configParameters_.useEffectivePedestals) {
94 configParameters_.meanTime = ps.getParameter<
double>(
"meanTime");
95 configParameters_.timeSigmaSiPM = ps.getParameter<
double>(
"timeSigmaSiPM");
96 configParameters_.timeSigmaHPD = ps.getParameter<
double>(
"timeSigmaHPD");
97 configParameters_.ts4Thresh = ps.getParameter<
double>(
"ts4Thresh");
99 configParameters_.applyTimeSlew = ps.getParameter<
bool>(
"applyTimeSlew");
100 auto const tzeroValues = ps.getParameter<std::vector<double>>(
"tzeroTimeSlewParameters");
101 auto const slopeValues = ps.getParameter<std::vector<double>>(
"slopeTimeSlewParameters");
102 auto const tmaxValues = ps.getParameter<std::vector<double>>(
"tmaxTimeSlewParameters");
108 auto threadsMinimize = ps.getParameter<std::vector<uint32_t>>(
"kernelMinimizeThreads");
109 configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0];
110 configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1];
111 configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2];
118 desc.
add<uint32_t>(
"maxChannels", 10000u);
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);
176 auto const& pedestalsProduct = pedestals.getProduct(ctx.stream());
181 auto const* effectivePedestalsProduct =
202 auto const& pulseOffsetsProduct = pulseOffsets.getProduct(ctx.stream());
208 pedestalWidthsProduct,
209 effectivePedestalWidthsProduct,
217 sipmParametersProduct,
218 sipmCharacteristicsProduct,
219 effectivePedestalsProduct,
222 pedestals.offsetForHashes(),
224 pulseOffsets.getValues()};
251 #ifdef HCAL_MAHI_CPUDEBUG
253 auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end -
start).
count();
254 std::cout <<
"acquire duration = " << duration << std::endl;
const edm::ESGetToken< HcalQIETypesGPU, HcalQIETypesRcd > qieTypesToken_
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
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_
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_
bool getData(T &iHolder) const
RecHitCollection<::calo::common::DevStoragePolicy > recHits
const edm::ESGetToken< HcalGainsGPU, HcalGainsRcd > gainsToken_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
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_
void allocate(ConfigParameters const &config, cudaStream_t cudaStream)
const edm::ESGetToken< HcalChannelQualityGPU, HcalChannelQualityRcd > chQualProductToken_
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > topologyToken_
const edm::ESGetToken< HcalLUTCorrsGPU, HcalLUTCorrsRcd > lutCorrsToken_
T getParameter(std::string const &) const
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_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
const edm::ESGetToken< HcalRespCorrsGPU, HcalRespCorrsRcd > respCorrsToken_
edm::EDPutTokenT< OProductType > rechitsM0Token_