CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
HeterogeneousHGCalHEFCellPositionsConditions Class Reference

#include <HeterogeneousHGCalHEFCellPositionsConditions.h>

Classes

struct  GPUData
 

Public Member Functions

hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct const * getHeterogeneousConditionsESProductAsync (cudaStream_t stream) const
 
 HeterogeneousHGCalHEFCellPositionsConditions (cpos::HGCalPositionsMapping *)
 
 ~HeterogeneousHGCalHEFCellPositionsConditions ()
 

Private Member Functions

size_t allocate_memory_ (const std::vector< size_t > &)
 
std::vector< size_t > calculate_memory_bytes_ (cpos::HGCalPositionsMapping *)
 
float *& select_pointer_f_ (cpos::HeterogeneousHGCalPositionsMapping *, const unsigned int &) const
 
std::vector< float > & select_pointer_f_ (cpos::HGCalPositionsMapping *, const unsigned int &)
 
int32_t *& select_pointer_i_ (cpos::HeterogeneousHGCalPositionsMapping *, const unsigned int &) const
 
std::vector< int32_t > & select_pointer_i_ (cpos::HGCalPositionsMapping *, const unsigned int &)
 
uint32_t *& select_pointer_u_ (cpos::HeterogeneousHGCalPositionsMapping *, const unsigned int &) const
 
std::vector< uint32_t > & select_pointer_u_ (cpos::HGCalPositionsMapping *, const unsigned int &)
 
void transfer_data_to_heterogeneous_pointers_ (const std::vector< size_t > &, cpos::HGCalPositionsMapping *)
 
void transfer_data_to_heterogeneous_vars_ (const cpos::HGCalPositionsMapping *)
 

Private Attributes

size_t chunk_
 
cms::cuda::ESProduct< GPUDatagpuData_
 
size_t nelems_posmap_
 
const size_t number_position_arrays
 
cpos::HeterogeneousHGCalPositionsMapping posmap_
 
std::vector< size_t > sizes_
 

Detailed Description

Definition at line 20 of file HeterogeneousHGCalHEFCellPositionsConditions.h.

Constructor & Destructor Documentation

◆ HeterogeneousHGCalHEFCellPositionsConditions()

HeterogeneousHGCalHEFCellPositionsConditions::HeterogeneousHGCalHEFCellPositionsConditions ( cpos::HGCalPositionsMapping cpuPos)

Definition at line 3 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

4  {
5  //HGCalPositions as defined in hgcal_conditions::positions
6  this->sizes_ = calculate_memory_bytes_(cpuPos);
7  this->chunk_ = allocate_memory_(this->sizes_);
10 }

References allocate_memory_(), calculate_memory_bytes_(), chunk_, sizes_, transfer_data_to_heterogeneous_pointers_(), and transfer_data_to_heterogeneous_vars_().

◆ ~HeterogeneousHGCalHEFCellPositionsConditions()

HeterogeneousHGCalHEFCellPositionsConditions::~HeterogeneousHGCalHEFCellPositionsConditions ( )

Member Function Documentation

◆ allocate_memory_()

size_t HeterogeneousHGCalHEFCellPositionsConditions::allocate_memory_ ( const std::vector< size_t > &  sz)
private

Definition at line 12 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

12  {
13  size_t chunk = std::accumulate(sz.begin(), sz.end(), 0); //total memory required in bytes
14  cudaCheck(cudaMallocHost(&this->posmap_.x, chunk));
15  return chunk;
16 }

References cudaCheck, posmap_, and hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::x.

Referenced by HeterogeneousHGCalHEFCellPositionsConditions().

◆ calculate_memory_bytes_()

std::vector< size_t > HeterogeneousHGCalHEFCellPositionsConditions::calculate_memory_bytes_ ( cpos::HGCalPositionsMapping cpuPos)
private

Definition at line 96 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

97  {
98  size_t npointers = cpos::types.size();
99  std::vector<size_t> sizes(npointers);
100  for (unsigned int i = 0; i < npointers; ++i) {
101  const unsigned detid_index = 4;
102  const unsigned nlayers_index = 3;
104  sizes[i] = select_pointer_u_(cpuPos, detid_index)
105  .size(); //x and y position array will have the same size as the detid array
107  sizes[i] = select_pointer_i_(cpuPos, nlayers_index).size(); //z position's size is equal to the #layers
109  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
110  << "Wrong HeterogeneousHGCalPositions type (Float)";
111  else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Int32_t)
112  sizes[i] = select_pointer_i_(cpuPos, i - this->number_position_arrays).size();
113  else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Uint32_t)
114  sizes[i] = select_pointer_u_(cpuPos, detid_index).size();
115  }
116 
117  std::vector<size_t> sizes_units(npointers);
118  for (unsigned int i = 0; i < npointers; ++i) {
120  sizes_units[i] = sizeof(float);
121  else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Int32_t)
122  sizes_units[i] = sizeof(int32_t);
123  else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Uint32_t)
124  sizes_units[i] = sizeof(uint32_t);
125  }
126 
127  //element by element multiplication
128  this->sizes_.resize(npointers);
129  std::transform(sizes.begin(), sizes.end(), sizes_units.begin(), this->sizes_.begin(), std::multiplies<size_t>());
130  return this->sizes_;
131 }

References Exception, dqmMemoryStats::float, hgcal_conditions::positions::Float, mps_fire::i, number_position_arrays, or, select_pointer_i_(), select_pointer_u_(), sizes_, and HcalDetIdTransform::transform().

Referenced by HeterogeneousHGCalHEFCellPositionsConditions().

◆ getHeterogeneousConditionsESProductAsync()

hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct const * HeterogeneousHGCalHEFCellPositionsConditions::getHeterogeneousConditionsESProductAsync ( cudaStream_t  stream) const

Definition at line 224 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

224  {
225  // cms::cuda::ESProduct<T> essentially holds an array of GPUData objects,
226  // one per device. If the data have already been transferred to the
227  // current device (or the transfer has been queued), the helper just
228  // returns a reference to that GPUData object. Otherwise, i.e. data are
229  // not yet on the current device, the helper calls the lambda to do the
230  // necessary memory allocations and to queue the transfers.
231  auto const& data = gpuData_.dataForCurrentDeviceAsync(stream, [this](GPUData& data, cudaStream_t stream) {
232  // Allocate the payload object on pinned host memory.
234  // Allocate the payload array(s) on device memory.
235  cudaCheck(cudaMalloc(&(data.host->posmap.x), this->chunk_));
236  // Complete the host-side information on the payload
237  data.host->posmap.waferSize = this->posmap_.waferSize;
238  data.host->posmap.sensorSeparation = this->posmap_.sensorSeparation;
239  data.host->posmap.firstLayer = this->posmap_.firstLayer;
240  data.host->posmap.lastLayer = this->posmap_.lastLayer;
241  data.host->posmap.waferMax = this->posmap_.waferMax;
242  data.host->posmap.waferMin = this->posmap_.waferMin;
243  data.host->nelems_posmap = this->nelems_posmap_;
244 
245  //(set the pointers of the positions' mapping)
246  size_t sfloat = sizeof(float);
247  size_t sint32 = sizeof(int32_t);
248  for (unsigned int j = 0; j < this->sizes_.size() - 1; ++j) {
251  select_pointer_f_(&(data.host->posmap), j + 1) =
252  select_pointer_f_(&(data.host->posmap), j) + (this->sizes_[j] / sfloat);
254  cpos::types[j + 1] == cpos::HeterogeneousHGCalPositionsType::Int32_t)
255  select_pointer_i_(&(data.host->posmap), j + 1) =
256  reinterpret_cast<int32_t*>(select_pointer_f_(&(data.host->posmap), j) + (this->sizes_[j] / sfloat));
257  else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t and
258  cpos::types[j + 1] == cpos::HeterogeneousHGCalPositionsType::Int32_t)
259  select_pointer_i_(&(data.host->posmap), j + 1) =
260  select_pointer_i_(&(data.host->posmap), j) + (this->sizes_[j] / sint32);
261  else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t and
262  cpos::types[j + 1] == cpos::HeterogeneousHGCalPositionsType::Uint32_t)
263  select_pointer_u_(&(data.host->posmap), j + 1) =
264  reinterpret_cast<uint32_t*>(select_pointer_i_(&(data.host->posmap), j) + (this->sizes_[j] / sint32));
265  }
266 
267  // Allocate the payload object on the device memory.
269 
270  // Transfer the payload, first the array(s) ...
271  //Important: The transfer does *not* start at posmap.x because the positions are not known in the CPU side!
272  size_t non_position_memory_size_to_transfer =
273  this->chunk_ - this->number_position_arrays * this->nelems_posmap_ *
274  sfloat; //size in bytes occupied by the non-position information
275  cudaCheck(cudaMemcpyAsync(data.host->posmap.zLayer,
276  this->posmap_.zLayer,
277  non_position_memory_size_to_transfer,
278  cudaMemcpyHostToDevice,
279  stream));
280 
281  // ... and then the payload object
282  cudaCheck(cudaMemcpyAsync(data.device,
283  data.host,
285  cudaMemcpyHostToDevice,
286  stream));
287 
288  //Fill x and y positions in the GPU
290  km.fill_positions(data.device);
291  }); //gpuData_.dataForCurrentDeviceAsync
292 
293  // Returns the payload object on the memory of the current device
294  return data.device;
295 }

References chunk_, cudaCheck, data, KernelManagerHGCalCellPositions::fill_positions(), hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::firstLayer, dqmMemoryStats::float, hgcal_conditions::positions::Float, gpuData_, HeterogeneousHGCalHEFCellPositionsConditions::GPUData::host, dqmiolumiharvest::j, hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::lastLayer, hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct::nelems_posmap, nelems_posmap_, number_position_arrays, hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct::posmap, posmap_, select_pointer_f_(), select_pointer_i_(), select_pointer_u_(), hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::sensorSeparation, sizes_, cms::cuda::stream, hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::waferMax, hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::waferMin, and hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::waferSize.

◆ select_pointer_f_() [1/2]

float *& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_f_ ( cpos::HeterogeneousHGCalPositionsMapping cpuObject,
const unsigned int &  item 
) const
private

Definition at line 139 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

140  {
141  switch (item) {
142  case 0:
143  return cpuObject->x;
144  case 1:
145  return cpuObject->y;
146  case 2:
147  return cpuObject->zLayer;
148  default:
149  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
150  << "select_pointer_f(heterogeneous): no item (typed " << item << ").";
151  return cpuObject->x;
152  }
153 }

References Exception, B2GTnPMonitor_cfi::item, hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::x, hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::y, and hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::zLayer.

Referenced by getHeterogeneousConditionsESProductAsync(), and transfer_data_to_heterogeneous_pointers_().

◆ select_pointer_f_() [2/2]

std::vector< float > & HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_f_ ( cpos::HGCalPositionsMapping cpuObject,
const unsigned int &  item 
)
private

Definition at line 155 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

156  {
157  switch (item) {
158  case 0:
159  return cpuObject->zLayer;
160  default:
161  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
162  << "select_pointer_f(non-heterogeneous): no item (typed " << item << ").";
163  return cpuObject->zLayer;
164  }
165 }

References Exception, B2GTnPMonitor_cfi::item, and hgcal_conditions::positions::HGCalPositionsMapping::zLayer.

◆ select_pointer_i_() [1/2]

int32_t *& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_i_ ( cpos::HeterogeneousHGCalPositionsMapping cpuObject,
const unsigned int &  item 
) const
private

Definition at line 167 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

168  {
169  switch (item) {
170  case 3:
171  return cpuObject->nCellsLayer;
172  case 4:
173  return cpuObject->nCellsWaferUChunk;
174  case 5:
175  return cpuObject->nCellsHexagon;
176  default:
177  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
178  << "select_pointer_i(heterogeneous): no item (typed " << item << ").";
179  return cpuObject->nCellsHexagon;
180  }
181 }

References Exception, B2GTnPMonitor_cfi::item, hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::nCellsHexagon, hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::nCellsLayer, and hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::nCellsWaferUChunk.

Referenced by calculate_memory_bytes_(), getHeterogeneousConditionsESProductAsync(), and transfer_data_to_heterogeneous_pointers_().

◆ select_pointer_i_() [2/2]

std::vector< int32_t > & HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_i_ ( cpos::HGCalPositionsMapping cpuObject,
const unsigned int &  item 
)
private

Definition at line 183 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

184  {
185  switch (item) {
186  case 1:
187  return cpuObject->nCellsLayer;
188  case 2:
189  return cpuObject->nCellsWaferUChunk;
190  case 3:
191  return cpuObject->nCellsHexagon;
192  default:
193  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
194  << "select_pointer_i(non-heterogeneous): no item (typed " << item << ").";
195  return cpuObject->nCellsHexagon;
196  }
197 }

References Exception, B2GTnPMonitor_cfi::item, hgcal_conditions::positions::HGCalPositionsMapping::nCellsHexagon, hgcal_conditions::positions::HGCalPositionsMapping::nCellsLayer, and hgcal_conditions::positions::HGCalPositionsMapping::nCellsWaferUChunk.

◆ select_pointer_u_() [1/2]

uint32_t *& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_u_ ( cpos::HeterogeneousHGCalPositionsMapping cpuObject,
const unsigned int &  item 
) const
private

Definition at line 199 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

200  {
201  switch (item) {
202  case 6:
203  return cpuObject->detid;
204  default:
205  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
206  << "select_pointer_u(heterogeneous): no item (typed " << item << ").";
207  return cpuObject->detid;
208  }
209 }

References hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::detid, Exception, and B2GTnPMonitor_cfi::item.

Referenced by calculate_memory_bytes_(), getHeterogeneousConditionsESProductAsync(), and transfer_data_to_heterogeneous_pointers_().

◆ select_pointer_u_() [2/2]

std::vector< uint32_t > & HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_u_ ( cpos::HGCalPositionsMapping cpuObject,
const unsigned int &  item 
)
private

Definition at line 211 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

212  {
213  switch (item) {
214  case 4:
215  return cpuObject->detid;
216  default:
217  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
218  << "select_pointer_u(non-heterogeneous): no item (typed " << item << ").";
219  return cpuObject->detid;
220  }
221 }

References hgcal_conditions::positions::HGCalPositionsMapping::detid, Exception, and B2GTnPMonitor_cfi::item.

◆ transfer_data_to_heterogeneous_pointers_()

void HeterogeneousHGCalHEFCellPositionsConditions::transfer_data_to_heterogeneous_pointers_ ( const std::vector< size_t > &  sz,
cpos::HGCalPositionsMapping cpuPos 
)
private

Definition at line 18 of file HeterogeneousHGCalHEFCellPositionsConditions.cc.

19  {
20  //store cumulative sum in bytes and convert it to sizes in units of C++ typesHEF, i.e., number if items to be transferred to GPU
21  std::vector<size_t> cumsum_sizes(sz.size() + 1, 0); //starting with zero
22  std::partial_sum(sz.begin(), sz.end(), cumsum_sizes.begin() + 1);
23  for (unsigned int i = 1; i < cumsum_sizes.size(); ++i) //start at second element (the first is zero)
24  {
25  size_t types_size = 0;
27  types_size = sizeof(float);
28  else if (cpos::types[i - 1] == cpos::HeterogeneousHGCalPositionsType::Int32_t)
29  types_size = sizeof(int32_t);
30  else if (cpos::types[i - 1] == cpos::HeterogeneousHGCalPositionsType::Uint32_t)
31  types_size = sizeof(uint32_t);
32  else
33  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
34  << "Wrong HeterogeneousHGCalPositionsMapping type";
35  cumsum_sizes[i] /= types_size;
36  }
37 
38  for (unsigned int j = 0; j < sz.size(); ++j) {
39  //setting the pointers
40  if (j != 0) {
41  const unsigned int jm1 = j - 1;
42  const size_t shift = cumsum_sizes[j] - cumsum_sizes[jm1];
45  select_pointer_f_(&this->posmap_, j) = select_pointer_f_(&this->posmap_, jm1) + shift;
47  cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t)
48  select_pointer_i_(&this->posmap_, j) =
49  reinterpret_cast<int32_t*>(select_pointer_f_(&this->posmap_, jm1) + shift);
50  else if (cpos::types[jm1] == cpos::HeterogeneousHGCalPositionsType::Int32_t and
51  cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t)
52  select_pointer_i_(&this->posmap_, j) = select_pointer_i_(&this->posmap_, jm1) + shift;
53  else if (cpos::types[jm1] == cpos::HeterogeneousHGCalPositionsType::Int32_t and
54  cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Uint32_t)
55  select_pointer_u_(&this->posmap_, j) =
56  reinterpret_cast<uint32_t*>(select_pointer_i_(&this->posmap_, jm1) + shift);
57  else
58  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
59  << "Wrong HeterogeneousHGCalPositionsMapping type";
60  }
61 
62  //copying the pointers' content
63  if (j >=
64  this->number_position_arrays) //required due to the assymetry between cpos::HeterogeneousHGCalPositionsMapping and cpos::HGCalPositionsMapping
65  {
66  for (unsigned int i = cumsum_sizes[j]; i < cumsum_sizes[j + 1]; ++i) {
67  unsigned int index = i - cumsum_sizes[j];
69  select_pointer_f_(&this->posmap_, j)[index] =
71  } else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t) {
72  select_pointer_i_(&this->posmap_, j)[index] =
74  } else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Uint32_t) {
75  select_pointer_u_(&this->posmap_, j)[index] =
77  } else
78  throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions")
79  << "Wrong HeterogeneousHGCalPositions type";
80  }
81  }
82  }
83 }

References Exception, dqmMemoryStats::float, hgcal_conditions::positions::Float, mps_fire::i, dqmiolumiharvest::j, number_position_arrays, posmap_, select_pointer_f_(), select_pointer_i_(), select_pointer_u_(), and edm::shift.

Referenced by HeterogeneousHGCalHEFCellPositionsConditions().

◆ transfer_data_to_heterogeneous_vars_()

void HeterogeneousHGCalHEFCellPositionsConditions::transfer_data_to_heterogeneous_vars_ ( const cpos::HGCalPositionsMapping cpuPos)
private

Member Data Documentation

◆ chunk_

size_t HeterogeneousHGCalHEFCellPositionsConditions::chunk_
private

◆ gpuData_

cms::cuda::ESProduct<GPUData> HeterogeneousHGCalHEFCellPositionsConditions::gpuData_
private

◆ nelems_posmap_

size_t HeterogeneousHGCalHEFCellPositionsConditions::nelems_posmap_
private

◆ number_position_arrays

const size_t HeterogeneousHGCalHEFCellPositionsConditions::number_position_arrays
private

◆ posmap_

cpos::HeterogeneousHGCalPositionsMapping HeterogeneousHGCalHEFCellPositionsConditions::posmap_
private

◆ sizes_

std::vector<size_t> HeterogeneousHGCalHEFCellPositionsConditions::sizes_
private
hgcal_conditions::positions::HGCalPositionsMapping::nCellsHexagon
std::vector< std::int32_t > nCellsHexagon
Definition: HGCConditions.h:151
hgcal_conditions::positions::HGCalPositionsMapping::waferSize
float waferSize
Definition: HGCConditions.h:154
hgcal_conditions::positions::HGCalPositionsMapping::sensorSeparation
float sensorSeparation
Definition: HGCConditions.h:155
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::firstLayer
std::int32_t firstLayer
Definition: HGCConditions.h:176
mps_fire.i
i
Definition: mps_fire.py:428
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_u_
uint32_t *& select_pointer_u_(cpos::HeterogeneousHGCalPositionsMapping *, const unsigned int &) const
Definition: HeterogeneousHGCalHEFCellPositionsConditions.cc:199
HeterogeneousHGCalHEFCellPositionsConditions::nelems_posmap_
size_t nelems_posmap_
Definition: HeterogeneousHGCalHEFCellPositionsConditions.h:37
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::nCellsHexagon
std::int32_t * nCellsHexagon
Definition: HGCConditions.h:170
hgcal_conditions::positions::HGCalPositionsMapping::lastLayer
std::int32_t lastLayer
Definition: HGCConditions.h:158
hgcal_conditions::positions::HGCalPositionsMapping::firstLayer
std::int32_t firstLayer
Definition: HGCConditions.h:157
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
hgcal_conditions::positions::HGCalPositionsMapping::nCellsLayer
std::vector< std::int32_t > nCellsLayer
Definition: HGCConditions.h:149
HeterogeneousHGCalHEFCellPositionsConditions::transfer_data_to_heterogeneous_pointers_
void transfer_data_to_heterogeneous_pointers_(const std::vector< size_t > &, cpos::HGCalPositionsMapping *)
Definition: HeterogeneousHGCalHEFCellPositionsConditions.cc:18
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::zLayer
float * zLayer
Definition: HGCConditions.h:167
HeterogeneousHGCalHEFCellPositionsConditions::gpuData_
cms::cuda::ESProduct< GPUData > gpuData_
Definition: HeterogeneousHGCalHEFCellPositionsConditions.h:73
HeterogeneousHGCalHEFCellPositionsConditions::chunk_
size_t chunk_
Definition: HeterogeneousHGCalHEFCellPositionsConditions.h:40
HeterogeneousHGCalHEFCellPositionsConditions::sizes_
std::vector< size_t > sizes_
Definition: HeterogeneousHGCalHEFCellPositionsConditions.h:39
KernelManagerHGCalCellPositions
Definition: KernelManagerHGCalCellPositions.h:24
HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_i_
int32_t *& select_pointer_i_(cpos::HeterogeneousHGCalPositionsMapping *, const unsigned int &) const
Definition: HeterogeneousHGCalHEFCellPositionsConditions.cc:167
HcalDetIdTransform::transform
unsigned transform(const HcalDetId &id, unsigned transformCode)
Definition: HcalDetIdTransform.cc:7
HeterogeneousHGCalHEFCellPositionsConditions::posmap_
cpos::HeterogeneousHGCalPositionsMapping posmap_
Definition: HeterogeneousHGCalHEFCellPositionsConditions.h:36
hgcal_conditions::positions::HGCalPositionsMapping::waferMin
std::int32_t waferMin
Definition: HGCConditions.h:160
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::nCellsLayer
std::int32_t * nCellsLayer
Definition: HGCConditions.h:168
hgcal_conditions::positions::HeterogeneousHGCalPositionsType::Float
HeterogeneousHGCalHEFCellPositionsConditions::number_position_arrays
const size_t number_position_arrays
Definition: HeterogeneousHGCalHEFCellPositionsConditions.h:41
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::lastLayer
std::int32_t lastLayer
Definition: HGCConditions.h:177
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::y
float * y
Definition: HGCConditions.h:166
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::waferMin
std::int32_t waferMin
Definition: HGCConditions.h:179
types
types
Definition: AlignPCLThresholds_PayloadInspector.cc:30
HeterogeneousHGCalHEFCellPositionsConditions::transfer_data_to_heterogeneous_vars_
void transfer_data_to_heterogeneous_vars_(const cpos::HGCalPositionsMapping *)
Definition: HeterogeneousHGCalHEFCellPositionsConditions.cc:85
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::sensorSeparation
float sensorSeparation
Definition: HGCConditions.h:174
cudaCheck
#define cudaCheck(ARG,...)
Definition: cudaCheck.h:62
HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_f_
float *& select_pointer_f_(cpos::HeterogeneousHGCalPositionsMapping *, const unsigned int &) const
Definition: HeterogeneousHGCalHEFCellPositionsConditions.cc:139
edm::shift
static unsigned const int shift
Definition: LuminosityBlockID.cc:7
hgcal_conditions::positions::HGCalPositionsMapping::waferMax
std::int32_t waferMax
Definition: HGCConditions.h:159
Exception
Definition: hltDiff.cc:245
hgcal_conditions::positions::HGCalPositionsMapping::nCellsWaferUChunk
std::vector< std::int32_t > nCellsWaferUChunk
Definition: HGCConditions.h:150
hgcal_conditions::positions::HGCalPositionsMapping::detid
std::vector< std::uint32_t > detid
Definition: HGCConditions.h:152
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::nCellsWaferUChunk
std::int32_t * nCellsWaferUChunk
Definition: HGCConditions.h:169
hgcal_conditions::positions::HGCalPositionsMapping::zLayer
std::vector< float > zLayer
Definition: HGCConditions.h:148
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct
Definition: HGCConditions.h:196
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::detid
std::uint32_t * detid
Definition: HGCConditions.h:171
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::waferMax
std::int32_t waferMax
Definition: HGCConditions.h:178
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::waferSize
float waferSize
Definition: HGCConditions.h:173
HeterogeneousHGCalHEFCellPositionsConditions::calculate_memory_bytes_
std::vector< size_t > calculate_memory_bytes_(cpos::HGCalPositionsMapping *)
Definition: HeterogeneousHGCalHEFCellPositionsConditions.cc:96
HeterogeneousHGCalHEFCellPositionsConditions::allocate_memory_
size_t allocate_memory_(const std::vector< size_t > &)
Definition: HeterogeneousHGCalHEFCellPositionsConditions.cc:12
hgcal_conditions::positions::HeterogeneousHGCalPositionsMapping::x
float * x
Definition: HGCConditions.h:165