8 : totalChannels_{
gains.getAllContainers()[0].second.size() +
gains.getAllContainers()[1].second.size()},
9 values_(totalChannels_ * 4) {
10 auto const gainContainers =
gains.getAllContainers();
13 auto const& barrelValues = gainContainers[0].second;
14 for (
uint64_t i = 0;
i < barrelValues.size(); ++
i) {
15 values_[
i * 4] = barrelValues[
i].getValue(0);
16 values_[
i * 4 + 1] = barrelValues[
i].getValue(1);
17 values_[
i * 4 + 2] = barrelValues[
i].getValue(2);
18 values_[
i * 4 + 3] = barrelValues[
i].getValue(3);
22 auto const& endcapValues = gainContainers[1].second;
23 auto const offset = barrelValues.size();
24 for (
uint64_t i = 0;
i < endcapValues.size(); ++
i) {
26 values_[off * 4] = endcapValues[
i].getValue(0);
27 values_[off * 4 + 1] = endcapValues[
i].getValue(1);
28 values_[off * 4 + 2] = endcapValues[
i].getValue(2);
29 values_[off * 4 + 3] = endcapValues[
i].getValue(3);
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > values
cms::cuda::ESProduct< Product > product_
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
Product const & getProduct(cudaStream_t) const
void copyAsync(device::unique_ptr< T > &dst, const host::unique_ptr< T > &src, cudaStream_t stream)
#define TYPELOOKUP_DATA_REG(_dataclass_)
constexpr float gains[NGAINS]
unsigned long long uint64_t
HcalGainsGPU(HcalGains const &)
std::vector< float, cms::cuda::HostAllocator< float > > values_