CMS 3D CMS Logo

EcalLaserAPDPNRatiosGPU.cc
Go to the documentation of this file.
2 
5 
7  : p1_(values.getLaserMap().size()),
8  p2_(values.getLaserMap().size()),
9  p3_(values.getLaserMap().size()),
10  t1_(values.getTimeMap().size()),
11  t2_(values.getTimeMap().size()),
12  t3_(values.getTimeMap().size()) {
13  // fill in eb
14  // auto const& barrelValues = values.barrelItems();
15  for (unsigned int i = 0; i < values.getLaserMap().barrelItems().size(); i++) {
16  p1_[i] = values.getLaserMap().barrelItems()[i].p1;
17  p2_[i] = values.getLaserMap().barrelItems()[i].p2;
18  p3_[i] = values.getLaserMap().barrelItems()[i].p3;
19  }
20 
21  // fill in ee
22  // auto const& endcapValues = values.endcapItems();
23  auto const offset_laser = values.getLaserMap().barrelItems().size();
24  for (unsigned int i = 0; i < values.getLaserMap().endcapItems().size(); i++) {
25  p1_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p1;
26  p2_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p2;
27  p3_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p3;
28  }
29 
30  // Time is a simple std::vector
31  // typedef std::vector<EcalLaserTimeStamp> EcalLaserTimeStampMap;
32  for (unsigned int i = 0; i < values.getTimeMap().size(); i++) {
33  t1_[i] = values.getTimeMap()[i].t1.value();
34  t2_[i] = values.getTimeMap()[i].t2.value();
35  t3_[i] = values.getTimeMap()[i].t3.value();
36  }
37 }
38 
40  auto const& product = product_.dataForCurrentDeviceAsync(
41  cudaStream, [this](EcalLaserAPDPNRatiosGPU::Product& product, cudaStream_t cudaStream) {
42  // allocate
43  product.p1 = cms::cuda::make_device_unique<float[]>(p1_.size(), cudaStream);
44  product.p2 = cms::cuda::make_device_unique<float[]>(p2_.size(), cudaStream);
45  product.p3 = cms::cuda::make_device_unique<float[]>(p3_.size(), cudaStream);
46  product.t1 = cms::cuda::make_device_unique<edm::TimeValue_t[]>(t1_.size(), cudaStream);
47  product.t2 = cms::cuda::make_device_unique<edm::TimeValue_t[]>(t2_.size(), cudaStream);
48  product.t3 = cms::cuda::make_device_unique<edm::TimeValue_t[]>(t3_.size(), cudaStream);
49  // transfer
50  cms::cuda::copyAsync(product.p1, p1_, cudaStream);
51  cms::cuda::copyAsync(product.p2, p2_, cudaStream);
52  cms::cuda::copyAsync(product.p3, p3_, cudaStream);
53  cms::cuda::copyAsync(product.t1, t1_, cudaStream);
54  cms::cuda::copyAsync(product.t2, t2_, cudaStream);
55  cms::cuda::copyAsync(product.t3, t3_, cudaStream);
56  });
57 
58  return product;
59 }
60 
EcalLaserAPDPNRatiosGPU::EcalLaserAPDPNRatiosGPU
EcalLaserAPDPNRatiosGPU(EcalLaserAPDPNRatios const &)
Definition: EcalLaserAPDPNRatiosGPU.cc:6
EcalLaserAPDPNRatiosGPU.h
mps_fire.i
i
Definition: mps_fire.py:428
EcalLaserAPDPNRatiosGPU::Product::p3
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > p3
Definition: EcalLaserAPDPNRatiosGPU.h:18
EcalLaserAPDPNRatiosGPU::Product::t1
edm::propagate_const_array< cms::cuda::device::unique_ptr< edm::TimeValue_t[]> > t1
Definition: EcalLaserAPDPNRatiosGPU.h:19
EcalLaserAPDPNRatiosGPU::p2_
std::vector< float, cms::cuda::HostAllocator< float > > p2_
Definition: EcalLaserAPDPNRatiosGPU.h:42
typelookup.h
EcalLaserAPDPNRatiosGPU::Product
Definition: EcalLaserAPDPNRatiosGPU.h:15
EcalLaserAPDPNRatiosGPU
Definition: EcalLaserAPDPNRatiosGPU.h:13
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
EcalLaserAPDPNRatiosGPU::t2_
std::vector< edm::TimeValue_t, cms::cuda::HostAllocator< edm::TimeValue_t > > t2_
Definition: EcalLaserAPDPNRatiosGPU.h:46
EcalLaserAPDPNRatiosGPU::t1_
std::vector< edm::TimeValue_t, cms::cuda::HostAllocator< edm::TimeValue_t > > t1_
Definition: EcalLaserAPDPNRatiosGPU.h:45
copyAsync.h
TYPELOOKUP_DATA_REG
#define TYPELOOKUP_DATA_REG(_dataclass_)
Definition: typelookup.h:102
EcalLaserAPDPNRatiosGPU::p3_
std::vector< float, cms::cuda::HostAllocator< float > > p3_
Definition: EcalLaserAPDPNRatiosGPU.h:43
EcalLaserAPDPNRatiosGPU::Product::p2
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > p2
Definition: EcalLaserAPDPNRatiosGPU.h:17
EcalLaserAPDPNRatiosGPU::p1_
std::vector< float, cms::cuda::HostAllocator< float > > p1_
Definition: EcalLaserAPDPNRatiosGPU.h:41
EcalLaserAPDPNRatiosGPU::product_
cms::cuda::ESProduct< Product > product_
Definition: EcalLaserAPDPNRatiosGPU.h:49
EcalLaserAPDPNRatiosGPU::Product::t2
edm::propagate_const_array< cms::cuda::device::unique_ptr< edm::TimeValue_t[]> > t2
Definition: EcalLaserAPDPNRatiosGPU.h:20
EcalLaserAPDPNRatios
Definition: EcalLaserAPDPNRatios.h:14
EcalLaserAPDPNRatiosGPU::getProduct
const Product & getProduct(cudaStream_t) const
Definition: EcalLaserAPDPNRatiosGPU.cc:39
EcalLaserAPDPNRatiosGPU::Product::t3
edm::propagate_const_array< cms::cuda::device::unique_ptr< edm::TimeValue_t[]> > t3
Definition: EcalLaserAPDPNRatiosGPU.h:21
EcalLaserAPDPNRatiosGPU::Product::p1
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > p1
Definition: EcalLaserAPDPNRatiosGPU.h:16
EcalLaserAPDPNRatiosGPU::t3_
std::vector< edm::TimeValue_t, cms::cuda::HostAllocator< edm::TimeValue_t > > t3_
Definition: EcalLaserAPDPNRatiosGPU.h:47
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
cms::cuda::copyAsync
void copyAsync(device::unique_ptr< T > &dst, const host::unique_ptr< T > &src, cudaStream_t stream)
Definition: copyAsync.h:20