61 digisTokenF5HB_{consumes(ps.getParameter<
edm::InputTag>(
"digisLabelF5HB"))},
62 digisTokenF3HB_{consumes(ps.getParameter<
edm::InputTag>(
"digisLabelF3HB"))},
63 rechitsM0Token_{produces()},
68 configParameters_.maxTimeSamples = ps.getParameter<uint32_t>(
"maxTimeSamples");
69 configParameters_.kprep1dChannelsPerBlock = ps.getParameter<uint32_t>(
"kprep1dChannelsPerBlock");
70 configParameters_.sipmQTSShift = ps.getParameter<
int>(
"sipmQTSShift");
71 configParameters_.sipmQNTStoSum = ps.getParameter<
int>(
"sipmQNTStoSum");
72 configParameters_.firstSampleShift = ps.getParameter<
int>(
"firstSampleShift");
74 configParameters_.useEffectivePedestals = ps.getParameter<
bool>(
"useEffectivePedestals");
76 configParameters_.meanTime = ps.getParameter<
double>(
"meanTime");
77 configParameters_.timeSigmaSiPM = ps.getParameter<
double>(
"timeSigmaSiPM");
78 configParameters_.timeSigmaHPD = ps.getParameter<
double>(
"timeSigmaHPD");
79 configParameters_.ts4Thresh = ps.getParameter<
double>(
"ts4Thresh");
81 configParameters_.applyTimeSlew = ps.getParameter<
bool>(
"applyTimeSlew");
82 auto const tzeroValues = ps.getParameter<std::vector<double>>(
"tzeroTimeSlewParameters");
83 auto const slopeValues = ps.getParameter<std::vector<double>>(
"slopeTimeSlewParameters");
84 auto const tmaxValues = ps.getParameter<std::vector<double>>(
"tmaxTimeSlewParameters");
90 auto threadsMinimize = ps.getParameter<std::vector<uint32_t>>(
"kernelMinimizeThreads");
91 configParameters_.kernelMinimizeThreads[0] = threadsMinimize[0];
92 configParameters_.kernelMinimizeThreads[1] = threadsMinimize[1];
93 configParameters_.kernelMinimizeThreads[2] = threadsMinimize[2];
99 desc.add<uint32_t>(
"maxTimeSamples", 10);
100 desc.add<uint32_t>(
"kprep1dChannelsPerBlock", 32);
105 desc.add<
int>(
"sipmQTSShift", 0);
106 desc.add<
int>(
"sipmQNTStoSum", 3);
107 desc.add<
int>(
"firstSampleShift", 0);
108 desc.add<
bool>(
"useEffectivePedestals",
true);
110 desc.add<
double>(
"meanTime", 0.f);
111 desc.add<
double>(
"timeSigmaSiPM", 2.5f);
112 desc.add<
double>(
"timeSigmaHPD", 5.0f);
113 desc.add<
double>(
"ts4Thresh", 0.0);
115 desc.add<
bool>(
"applyTimeSlew",
true);
116 desc.add<std::vector<double>>(
"tzeroTimeSlewParameters", {23.960177, 11.977461, 9.109694});
117 desc.add<std::vector<double>>(
"slopeTimeSlewParameters", {-3.178648, -1.5610227, -1.075824});
118 desc.add<std::vector<double>>(
"tmaxTimeSlewParameters", {16.00, 10.00, 6.25});
119 desc.add<std::vector<uint32_t>>(
"kernelMinimizeThreads", {16, 1, 1});
125 auto&
queue =
event.queue();
132 auto const f01DigisSize = f01HEDigisDev->metadata().size();
133 auto const f5DigisSize = f5HBDigisDev->metadata().size();
134 auto const f3DigisSize = f3HBDigisDev->metadata().size();
136 auto const totalChannels = f01DigisSize + f5DigisSize + f3DigisSize;
139 if (totalChannels > 0) {
150 f01HEDigisDev.const_view(),
151 f5HBDigisDev.const_view(),
152 f3HBDigisDev.const_view(),
154 mahiConditionsDev.const_view(),
155 sipmCharacteristicsDev.const_view(),
156 recoParamsWithPulseShapeDev.const_view(),
157 mahiPulseOffsetsDev.const_view(),
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
T getParameter(std::string const &) const
PortableCollection< HcalPhase0DigiSoA > Phase0DigiDeviceCollection
hcal::Phase0DigiDeviceCollection IProductTypef5
hcal::reconstruction::ConfigParameters configParameters_
hcal::Phase1DigiDeviceCollection IProductTypef3
const device::EDGetToken< IProductTypef5 > digisTokenF5HB_
~HBHERecHitProducerPortable() override=default
const device::EDPutToken< OProductType > rechitsM0Token_
void runMahiAsync(Queue &queue, IProductTypef01::ConstView const &f01HEDigis, IProductTypef5::ConstView const &f5HBDigis, IProductTypef3::ConstView const &f3HBDigis, OProductType::View outputGPU, HcalMahiConditionsPortableDevice::ConstView const &mahi, HcalSiPMCharacteristicsPortableDevice::ConstView const &sipmCharacteristics, HcalRecoParamWithPulseShapeDevice::ConstView const &recoParamsWithPS, HcalMahiPulseOffsetsPortableDevice::ConstView const &mahiPulseOffsets, ConfigParameters const &configParameters)
hcal::RecHitDeviceCollection OProductType
void produce(device::Event &, device::EventSetup const &) override
static void fillDescriptions(edm::ConfigurationDescriptions &)
HBHERecHitProducerPortable(edm::ParameterSet const &)
const device::ESGetToken< hcal::HcalSiPMCharacteristicsPortableDevice, HcalSiPMCharacteristicsRcd > sipmCharacteristicsToken_
const device::EDGetToken< IProductTypef3 > digisTokenF3HB_
const device::EDGetToken< IProductTypef01 > digisTokenF01HE_
const device::ESGetToken< hcal::HcalRecoParamWithPulseShapeDevice, HcalRecoParamsRcd > recoParamsToken_
PortableCollection< HcalPhase1DigiSoA > Phase1DigiDeviceCollection
#define DEFINE_FWK_ALPAKA_MODULE(name)
const device::ESGetToken< hcal::HcalMahiConditionsPortableDevice, HcalMahiConditionsRcd > mahiConditionsToken_
const device::ESGetToken< hcal::HcalMahiPulseOffsetsPortableDevice, JobConfigurationGPURecord > mahiPulseOffsetsToken_
hcal::Phase1DigiDeviceCollection IProductTypef01
PortableCollection< HcalRecHitSoA > RecHitDeviceCollection