ATLAS Offline Software
ConstantInfoDefinitions.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 //
4 // Dear emacs, this is -*- c++ -*-
5 //
6 
7 #ifndef CALORECGPU_CONSTANTINFODEFINITIONS_H
8 #define CALORECGPU_CONSTANTINFODEFINITIONS_H
9 
10 #include "BaseDefinitions.h"
11 #include "Helpers.h"
12 
13 #include "EtaPhiMap.h"
14 #include "NeighArr.h"
15 
16 #include <cmath>
17 
18 namespace CaloRecGPU
19 {
20 
22  {
23  protected:
24 
25  constexpr static int s_subcalo_unknown = 999999;
26  constexpr static int s_subcalo_unknown_replacement = 7;
27 
28  public:
29 
30  constexpr static int from_subcalo_enum(const int subcalo)
31  {
32  if (subcalo == s_subcalo_unknown)
33  {
35  }
36  else
37  {
38  return subcalo;
39  }
40  }
41 
42  constexpr static int to_subcalo_enum(const int subcalo)
43  {
44  if (subcalo == s_subcalo_unknown_replacement)
45  {
46  return s_subcalo_unknown;
47  }
48  else
49  {
50  return subcalo;
51  }
52  }
53 
54  protected:
55 
56  constexpr static int s_region_unknown = 999999;
57  constexpr static int s_region_unknown_replacement = 7;
58 
59  public:
60 
61  constexpr static int from_region_enum(const int region)
62  {
63  if (region == s_region_unknown)
64  {
66  }
67  else
68  {
69  return region;
70  }
71  }
72 
73  constexpr static int to_region_enum(const int region)
74  {
75  if (region == s_region_unknown_replacement)
76  {
77  return s_region_unknown;
78  }
79  else
80  {
81  return region;
82  }
83  }
84 
85  protected:
86 
87  constexpr static int s_sampling_unknown = 999999;
88  constexpr static int s_sampling_unknown_replacement = 7;
89 
90  public:
91 
92  constexpr static int from_intra_calorimeter_sampling_enum(const int sampling)
93  {
94  if (sampling == s_sampling_unknown)
95  {
97  }
98  else
99  {
100  return sampling;
101  }
102  }
103 
104  constexpr static int to_intra_calorimeter_sampling_enum(const int sampling)
105  {
106  if (sampling == s_sampling_unknown_replacement)
107  {
108  return s_sampling_unknown;
109  }
110  else
111  {
112  return sampling;
113  }
114  }
115 
116  };
117 
118 
127  {
128  using carrier = unsigned int;
129 
131 
132 private:
133 
134  static constexpr carrier s_sampling_mask = 0x0000001FU;
135  static constexpr carrier s_intra_sampling_mask = 0x000000E0U;
136  static constexpr carrier s_subcalo_mask = 0x00000700U;
137  static constexpr carrier s_region_mask = 0x00003800U;
138 
139  static constexpr carrier s_is_PS_flag = 0x00004000U;
140  static constexpr carrier s_is_HECIW_FCal_flag = 0x00008000U;
141 
142  static constexpr carrier s_sampling_offset = 0;
143  static constexpr carrier s_intra_sampling_offset = 5;
144  static constexpr carrier s_subcalo_offset = 8;
145  static constexpr carrier s_region_offset = 11;
146 
147  static constexpr carrier s_bits_used = s_sampling_mask |
150  s_region_mask |
151  s_is_PS_flag |
153 
154  static constexpr carrier s_bits_unused = ~s_bits_used;
155 
156 public:
157 
158  constexpr operator carrier () const
159  {
160  return value;
161  }
162 
163  constexpr OtherCellInfo (const carrier v): value(v)
164  {
165  }
166 
167  constexpr OtherCellInfo & operator = (const carrier v)
168  {
169  value = v;
170  return (*this);
171  }
172 
173  constexpr carrier sampling() const
174  {
176  }
177 
179  {
181  }
182 
183  constexpr carrier subcalo() const
184  {
185  return (value & s_subcalo_mask) >> s_subcalo_offset;
186  }
187 
188  constexpr carrier region() const
189  {
190  return (value & s_region_mask) >> s_region_offset;
191  }
192 
193  constexpr bool is_HECIW_or_FCal() const
194  {
195  return value & s_is_HECIW_FCal_flag;
196  }
197 
198  constexpr bool is_PS() const
199  {
200  return value & s_is_PS_flag;
201  }
202 
203  constexpr OtherCellInfo (const carrier sampling,
204  const carrier intra_calo_sampling,
205  const carrier subcalo,
206  const carrier region,
207  const bool PS,
208  const bool HECIW_or_FCal):
209  value(0)
210  {
211  value = ( sampling << s_sampling_offset ) |
212  ( intra_calo_sampling << s_intra_sampling_offset ) |
213  ( subcalo << s_subcalo_offset ) |
214  ( region << s_region_offset ) |
215  ( s_is_PS_flag * PS ) |
216  ( s_is_HECIW_FCal_flag * HECIW_or_FCal );
217  }
218  };
219 
220  struct GeometryArr
221  {
222  float x[NCaloCells];
223  float y[NCaloCells];
224  float z[NCaloCells];
225  float r[NCaloCells];
226  float eta[NCaloCells];
227  float phi[NCaloCells];
228 
229  float dx[NCaloCells];
230  float dy[NCaloCells];
231  float dz[NCaloCells];
232  float dr[NCaloCells];
233  float deta[NCaloCells];
234  float dphi[NCaloCells];
235 
237 
239 
241 
242 #if CALORECGPU_ADD_FULL_PAIRS_LIST_TO_CONSTANT_INFORMATION
243  NeighPairsArr neighPairs;
244 #endif
245 
247 
249 
250  constexpr static bool is_tile (const int cell)
251  {
252  return cell >= TileCellStart && cell < TileCellAfterEnd;
253  }
254 
255  constexpr bool is_HECIW_or_FCal(const int cell) const
256  {
257  const OtherCellInfo cell_info = otherCellInfo[cell];
258  return cell_info.is_HECIW_or_FCal();
259  }
260 
261  constexpr bool is_PS(const int cell) const
262  {
263  const OtherCellInfo cell_info = otherCellInfo[cell];
264  return cell_info.is_PS();
265  }
266 
267  constexpr int sampling(const int cell) const
268  {
269  const OtherCellInfo cell_info = otherCellInfo[cell];
270  return cell_info.sampling();
271  }
272 
273  constexpr int intra_calorimeter_sampling(const int cell) const
274  {
275  const OtherCellInfo cell_info = otherCellInfo[cell];
276  return cell_info.intra_calorimeter_sampling();
277  }
278 
279  constexpr int subcalo(const int cell) const
280  {
281  const OtherCellInfo cell_info = otherCellInfo[cell];
282  return cell_info.subcalo();
283  }
284 
285  constexpr int region(const int cell) const
286  {
287  const OtherCellInfo cell_info = otherCellInfo[cell];
288  return cell_info.region();
289  }
290 
296  constexpr int get_neighbours(const unsigned int neigh_options, const int cell, int * neigh_arr) const
297  {
298  return neighbours.get_neighbours(neigh_options, cell, neigh_arr);
299  }
300 
301  constexpr int get_number_of_neighbours(const unsigned int neigh_options, const int cell) const
302  {
303  return neighbours.get_number_of_neighbours(neigh_options, cell);
304  }
305 
307  {
308  for (int i = 0; i < NCaloCells; ++i)
309  {
311  }
312 
313  struct DeAllocWrapper
314  {
315  int * buf;
316  CUDA_HOS_DEV DeAllocWrapper(const size_t new_size)
317  {
318  buf = new int[Helpers::int_ceil_div(new_size, sizeof(int))];
319  }
320  CUDA_HOS_DEV ~DeAllocWrapper()
321  {
322  delete[] buf;
323  }
324  CUDA_HOS_DEV DeAllocWrapper (const DeAllocWrapper &) = delete;
325  CUDA_HOS_DEV DeAllocWrapper (DeAllocWrapper &&) = delete;
326  CUDA_HOS_DEV DeAllocWrapper & operator=(const DeAllocWrapper &) = delete;
327  CUDA_HOS_DEV DeAllocWrapper & operator=(DeAllocWrapper &&) = delete;
328  };
329  //Simple allocation/de-allocation
330  //to still be GPU-compatible if needed
331  //(new and delete valid on GPU code...),
332  //while still preventing leaks,
333  //all without pulling in unique_ptr.
334 
335  DeAllocWrapper wrapper(etaPhiToCell.finish_initializing_buffer_size());
336 
337 #if CALORECGPU_ETA_PHI_MAP_DEBUG
338  printf("CALORECGPU ETA PHI MAP DEBUG OUTPUT: Max occupied cells is %d\n", etaPhiToCell.get_max_real_overlap());
339 #endif
340  etaPhiToCell.finish_initializing(wrapper.buf);
341 
342  }
343 
344  constexpr int get_closest_cell(const int sampling, const float test_eta, const float test_phi) const
345  {
347 
348  const int n_cells = etaPhiToCell.get_possible_cells_from_coords(sampling, test_eta, test_phi, cells);
349 
350  if (n_cells < 1)
351  {
352  return -1;
353  }
354  else if (n_cells == 1)
355  {
356  return cells[0];
357  }
358  else
359  {
360  float distance = 1e38f;
361  int ret = -1;
362 
363  for (int i = 0; i < n_cells; ++i)
364  {
365  const int this_cell = cells[i];
366 
367  const float delta_eta = eta[this_cell] - test_eta;
368  const float delta_phi = Helpers::angular_difference(phi[this_cell], test_phi);
369 
370  using namespace std;
371 
372  const float this_dist = fabsf(delta_eta) + fabsf(delta_phi);
373  if (this_dist < distance || (this_dist == distance && this_cell > ret))
374  {
375  distance = this_dist;
376  ret = this_cell;
377  }
378  }
379  return ret;
380  }
381  }
382  };
383 
385  {
386  using carrier = unsigned int;
388 
389  protected:
390 
391  static constexpr carrier s_first_16_bit_mask = 0x0000FFFFU;
392  static constexpr carrier s_last_16_bit_mask = 0xFFFF0000U;
393  static constexpr carrier s_invalid_double_gaussian = s_first_16_bit_mask | s_last_16_bit_mask;
394 
395  public:
396 
397 
398  constexpr operator carrier () const
399  {
400  return value;
401  }
402 
403  constexpr CellNoiseProperties (const carrier v): value(v)
404  {
405  }
406 
408  {
409  value = v;
410  return (*this);
411  }
412 
413  constexpr carrier version() const
414  {
415  return value & s_first_16_bit_mask;
416  }
417 
418  constexpr carrier noise_type() const
419  {
420  return (value & s_last_16_bit_mask) >> 16;
421  }
422 
423  constexpr bool is_electronic_noise() const
424  {
425  return is_valid() && ((value & s_last_16_bit_mask) == 0x00000000U);
426  }
427 
428  constexpr bool is_pile_up_noise() const
429  {
430  return is_valid() && ((value & s_last_16_bit_mask) == 0x00010000U);
431  }
432 
433  constexpr bool is_total_noise() const
434  {
435  return is_valid() && ((value & s_last_16_bit_mask) == 0x00020000U);
436  }
437 
438  constexpr CellNoiseProperties (const carrier version, const carrier noise_type):
439  value(noise_type)
440  {
441  value = (value << 16) | (version & s_first_16_bit_mask);
442  }
443 
444  constexpr bool is_invalid() const
445  {
446  return value == s_invalid_double_gaussian;
447  }
448 
449  constexpr bool is_valid() const
450  {
451  return !is_invalid();
452  }
453 
454  static constexpr carrier invalid_value()
455  {
456  return s_invalid_double_gaussian;
457  }
458 
459  };
460 
462  {
463  static constexpr int s_numDoubleGaussianConstants = 4;
464 
466  //Given the low number of possible gain sates
467 
468  float double_gaussian_constants[s_numDoubleGaussianConstants][NTileCells][NumGainStates];
469 
471 
472  float luminosity;
473 
474  constexpr float get_noise(const int cell, const int gain) const
475  {
476  return noise[cell][gain];
477  }
478 
479  protected:
480 
481  CUDA_HOS_DEV float get_double_gaussian_significance(const int cell, const int gain, const float energy) const
482  {
483 
484  using namespace std;
485 
486  const int delta_from_tile_start = cell - TileCellStart;
487 
488  const float sigma_1 = this->double_gaussian_constants[0][delta_from_tile_start][gain];
489  const float sigma_2 = this->double_gaussian_constants[1][delta_from_tile_start][gain];
490  const float ratio = this->double_gaussian_constants[2][delta_from_tile_start][gain];
491 
492  if ((sigma_1 == 0.f && sigma_2 == 0.f) || energy == 0.f)
493  {
494  return 0.f;
495  }
496  else if (sigma_1 == 0.f)
497  {
498  return energy / sigma_2;
499  }
500  else if (ratio == 0.f || sigma_2 == 0.f)
501  {
502  return energy / sigma_1;
503  }
504 
505  const float x_1 = energy / sigma_1;
506  const float x_2 = energy / sigma_2;
507  const float x_1_abs = fabsf(x_1);
508  const float x_2_abs = fabsf(x_2);
509 
510  const float min_abs = min(x_1_abs, x_2_abs);
511 
512  const float max_abs = max(x_1_abs, x_2_abs);
513 
514  if (min_abs > 7.4f)
515  {
516  return min_abs;
517  }
518  if (max_abs < 0.9f)
519  {
520  return max_abs;
521  }
522 
523  const float y_1 = erff(Helpers::Constants::inv_sqrt2<float> * x_1);
524  const float y_2 = erff(Helpers::Constants::inv_sqrt2<float> * x_2);
525 
526 
527  const float z = (y_1 * sigma_1 + ratio * y_2 * sigma_2) / (sigma_1 + ratio * sigma_2);
528 
529  const float ret = Helpers::Constants::sqrt2<float> * Helpers::erf_inv_wrapper(z);
530 
531  //printf("GPU %d %f %f %f %f %f %f\n", delta_from_tile_start, min_abs, max_abs, y_1, y_2, z, ret);
532 
533  return ret;
534 
535  }
536 
537  public:
538 
541  CUDA_HOS_DEV float get_double_gaussian_noise(const int cell, const int gain, const float energy) const
542  {
543  using namespace std;
544 
545  CellNoiseProperties props(this->noise_properties);
546  if (!props.is_valid())
547  {
548  return get_noise(cell, gain);
549  }
550 
551  const float sigma = get_double_gaussian_significance(cell, gain, energy);
552 
553  const float first_factor = (sigma != 0.f ? fabsf(energy / sigma) : 0.f);
554 
555  if (props.is_electronic_noise())
556  {
557  return first_factor;
558  }
559  else
560  {
561  const float second_factor = this->double_gaussian_constants[3][cell - TileCellStart][gain];
562 
563  switch (props.version())
564  {
565  case 1:
566  return sqrtf(first_factor * first_factor + second_factor * second_factor * this->luminosity);
567  case 2:
568  return first_factor + second_factor * this->luminosity;
569  default:
570  return 0.f / 0.f;
571  }
572  }
573  }
574 
575  };
576 
577 }
578 
579 #endif
NeighArr.h
CaloRecGPU::CellNoiseProperties::invalid_value
static constexpr carrier invalid_value()
Definition: ConstantInfoDefinitions.h:454
CaloRecGPU::GeometryArr::intra_calorimeter_sampling
constexpr int intra_calorimeter_sampling(const int cell) const
Definition: ConstantInfoDefinitions.h:273
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:281
CaloRecGPU::OtherCellInfo::operator=
constexpr OtherCellInfo & operator=(const carrier v)
Definition: ConstantInfoDefinitions.h:167
CaloRecGPU::OtherCellInfo::OtherCellInfo
constexpr OtherCellInfo(const carrier v)
Definition: ConstantInfoDefinitions.h:163
CaloRecGPU::GeometryArr::is_PS
constexpr bool is_PS(const int cell) const
Definition: ConstantInfoDefinitions.h:261
CaloRecGPU::GeometryArr::dr
float dr[NCaloCells]
Definition: ConstantInfoDefinitions.h:232
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
CaloRecGPU::OtherCellInfo::subcalo
constexpr carrier subcalo() const
Definition: ConstantInfoDefinitions.h:183
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
CaloRecGPU::CellNoiseProperties::is_total_noise
constexpr bool is_total_noise() const
Definition: ConstantInfoDefinitions.h:433
CaloRecGPU::GeometryArr::get_closest_cell
constexpr int get_closest_cell(const int sampling, const float test_eta, const float test_phi) const
Definition: ConstantInfoDefinitions.h:344
CaloRecGPU::GeometryArr::dz
float dz[NCaloCells]
Definition: ConstantInfoDefinitions.h:231
CaloRecGPU::GeometryArr::phi
float phi[NCaloCells]
Definition: ConstantInfoDefinitions.h:227
DeMoScan.luminosity
luminosity
Definition: DeMoScan.py:271
CaloRecGPU::Helpers::int_ceil_div
constexpr auto int_ceil_div(const T1 num, const T2 denom)
Returns the ceiling of num/denom, with proper rounding.
Definition: Calorimeter/CaloRecGPU/CaloRecGPU/Helpers.h:215
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
CaloRecGPU::GeometryArr::get_neighbours
constexpr int get_neighbours(const unsigned int neigh_options, const int cell, int *neigh_arr) const
Places the neighbours according to the option(s) in neigh_options in the array and returns the number...
Definition: ConstantInfoDefinitions.h:296
CaloRecGPU::GeometryArr::dy
float dy[NCaloCells]
Definition: ConstantInfoDefinitions.h:230
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
CaloRecGPU::GeometryArr::r
float r[NCaloCells]
Definition: ConstantInfoDefinitions.h:225
CaloRecGPU::GeometryArr::y
float y[NCaloCells]
Definition: ConstantInfoDefinitions.h:223
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
CaloRecGPU::CellNoiseProperties::is_invalid
constexpr bool is_invalid() const
Definition: ConstantInfoDefinitions.h:444
CaloRecGPU::CellNoiseArr::get_double_gaussian_noise
CUDA_HOS_DEV float get_double_gaussian_noise(const int cell, const int gain, const float energy) const
Calculates the double gaussian noise for a Tile cell.
Definition: ConstantInfoDefinitions.h:541
CaloRecGPU::GeometryArr::etaPhiToCell
EtaPhiToCellMap etaPhiToCell
Definition: ConstantInfoDefinitions.h:246
athena.value
value
Definition: athena.py:124
CaloRecGPU::OtherCellInfo::carrier
unsigned int carrier
Definition: ConstantInfoDefinitions.h:128
CaloRecGPU::ConstantEnumConversion::to_subcalo_enum
constexpr static int to_subcalo_enum(const int subcalo)
Definition: ConstantInfoDefinitions.h:42
CaloRecGPU::OtherCellInfo::s_is_PS_flag
static constexpr carrier s_is_PS_flag
Definition: ConstantInfoDefinitions.h:139
CaloRecGPU::GeometryArr::region
constexpr int region(const int cell) const
Definition: ConstantInfoDefinitions.h:285
columnar::operator=
AccessorTemplate & operator=(AccessorTemplate &&that)
Definition: VectorColumn.h:88
CaloRecGPU::NumSamplings
constexpr int NumSamplings
Definition: BaseDefinitions.h:43
CaloRecGPU::GeometryArr::z
float z[NCaloCells]
Definition: ConstantInfoDefinitions.h:224
CaloRecGPU::GeometryArr::eta
float eta[NCaloCells]
Definition: ConstantInfoDefinitions.h:226
CaloRecGPU::CellNoiseArr::noise_properties
CellNoiseProperties::carrier noise_properties
Definition: ConstantInfoDefinitions.h:470
CaloRecGPU::OtherCellInfo::s_region_offset
static constexpr carrier s_region_offset
Definition: ConstantInfoDefinitions.h:145
CaloRecGPU::CellNoiseProperties::is_pile_up_noise
constexpr bool is_pile_up_noise() const
Definition: ConstantInfoDefinitions.h:428
CaloRecGPU::NeighArr::get_neighbours
constexpr int get_neighbours(const unsigned int neigh_options, const int cell, int *neigh_arr) const
Places the neighbours according to the option(s) in neigh_options in the array and returns the number...
Definition: NeighArr.h:202
CaloRecGPU::GeometryArr::get_number_of_neighbours
constexpr int get_number_of_neighbours(const unsigned int neigh_options, const int cell) const
Definition: ConstantInfoDefinitions.h:301
CaloRecGPU::EtaPhiToCellMap::get_max_real_overlap
constexpr int get_max_real_overlap() const
Definition: EtaPhiMap.h:1556
CaloRecGPU::NeighArr
Definition: NeighArr.h:171
CaloRecGPU::OtherCellInfo::s_sampling_offset
static constexpr carrier s_sampling_offset
Definition: ConstantInfoDefinitions.h:142
CaloRecGPU::CellNoiseArr
Definition: ConstantInfoDefinitions.h:462
CaloRecGPU::GeometryArr::x
float x[NCaloCells]
Definition: ConstantInfoDefinitions.h:222
CaloRecGPU::EtaPhiToCellMap
Definition: EtaPhiMap.h:1085
CaloRecGPU::ConstantEnumConversion::s_region_unknown
constexpr static int s_region_unknown
Definition: ConstantInfoDefinitions.h:56
CaloRecGPU::CellNoiseProperties::version
constexpr carrier version() const
Definition: ConstantInfoDefinitions.h:413
CaloRecGPU::CellNoiseProperties::carrier
unsigned int carrier
Definition: ConstantInfoDefinitions.h:386
Ringer::PS
@ PS
Definition: CaloRingsDefs.h:46
CaloRecGPU::OtherCellInfo::s_region_mask
static constexpr carrier s_region_mask
Definition: ConstantInfoDefinitions.h:137
EtaPhiMap.h
CaloRecGPU::TileCellAfterEnd
constexpr int TileCellAfterEnd
Definition: BaseDefinitions.h:18
CUDA_HOS_DEV
#define CUDA_HOS_DEV
Definition: Calorimeter/CaloRecGPU/CaloRecGPU/Helpers.h:101
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
CaloRecGPU::GeometryArr::dx
float dx[NCaloCells]
Definition: ConstantInfoDefinitions.h:229
CaloRecGPU::OtherCellInfo::s_bits_unused
static constexpr carrier s_bits_unused
Definition: ConstantInfoDefinitions.h:154
lumiFormat.i
int i
Definition: lumiFormat.py:85
CaloRecGPU::GeometryArr::is_tile
constexpr static bool is_tile(const int cell)
Definition: ConstantInfoDefinitions.h:250
CaloRecGPU::OtherCellInfo::OtherCellInfo
constexpr OtherCellInfo(const carrier sampling, const carrier intra_calo_sampling, const carrier subcalo, const carrier region, const bool PS, const bool HECIW_or_FCal)
Definition: ConstantInfoDefinitions.h:203
CaloRecGPU::GeometryArr::deta
float deta[NCaloCells]
Definition: ConstantInfoDefinitions.h:233
CaloRecGPU::ConstantEnumConversion::to_intra_calorimeter_sampling_enum
constexpr static int to_intra_calorimeter_sampling_enum(const int sampling)
Definition: ConstantInfoDefinitions.h:104
CaloRecGPU::OtherCellInfo::s_bits_used
static constexpr carrier s_bits_used
Definition: ConstantInfoDefinitions.h:147
CaloRecGPU::GeometryArr::nCellsPerSampling
int nCellsPerSampling[NumSamplings]
Definition: ConstantInfoDefinitions.h:238
hist_file_dump.f
f
Definition: hist_file_dump.py:140
CaloRecGPU::GeometryArr::sampling
constexpr int sampling(const int cell) const
Definition: ConstantInfoDefinitions.h:267
CaloRecGPU::NCaloCells
constexpr int NCaloCells
Definition: BaseDefinitions.h:12
CaloRecGPU::ConstantEnumConversion
Definition: ConstantInfoDefinitions.h:22
CaloRecGPU::CellNoiseProperties::CellNoiseProperties
constexpr CellNoiseProperties(const carrier version, const carrier noise_type)
Definition: ConstantInfoDefinitions.h:438
CaloRecGPU::NeighPairsArr
Definition: NeighArr.h:242
CaloRecGPU::OtherCellInfo
Definition: ConstantInfoDefinitions.h:127
CaloRecGPU::ConstantEnumConversion::from_intra_calorimeter_sampling_enum
constexpr static int from_intra_calorimeter_sampling_enum(const int sampling)
Definition: ConstantInfoDefinitions.h:92
CaloRecGPU::CellNoiseProperties::is_electronic_noise
constexpr bool is_electronic_noise() const
Definition: ConstantInfoDefinitions.h:423
CaloRecGPU::OtherCellInfo::s_subcalo_offset
static constexpr carrier s_subcalo_offset
Definition: ConstantInfoDefinitions.h:144
CaloRecGPU::OtherCellInfo::is_HECIW_or_FCal
constexpr bool is_HECIW_or_FCal() const
Definition: ConstantInfoDefinitions.h:193
CaloRecGPU::EtaPhiToCellMap::finish_initializing
CUDA_HOS_DEV void finish_initializing(void *buffer)
!
Definition: EtaPhiMap.h:1513
CaloRecGPU::EtaPhiToCellMap::s_max_overlap_cells
static constexpr int s_max_overlap_cells
Definition: EtaPhiMap.h:1086
CaloRecGPU::CellNoiseArr::luminosity
float luminosity
Definition: ConstantInfoDefinitions.h:472
CaloRecGPU::EtaPhiToCellMap::finish_initializing_buffer_size
constexpr size_t finish_initializing_buffer_size() const
Definition: EtaPhiMap.h:1503
CaloRecGPU::NumGainStates
constexpr int NumGainStates
Definition: BaseDefinitions.h:39
CaloRecGPU::OtherCellInfo::s_sampling_mask
static constexpr carrier s_sampling_mask
Definition: ConstantInfoDefinitions.h:134
CaloRecGPU::GeometryArr::subcalo
constexpr int subcalo(const int cell) const
Definition: ConstantInfoDefinitions.h:279
python.PyAthena.v
v
Definition: PyAthena.py:154
get_generator_info.version
version
Definition: get_generator_info.py:33
CaloRecGPU::CellNoiseProperties
Definition: ConstantInfoDefinitions.h:385
CaloRecGPU::GeometryArr::volume
float volume[NCaloCells]
Definition: ConstantInfoDefinitions.h:236
CaloRecGPU::GeometryArr::otherCellInfo
OtherCellInfo::carrier otherCellInfo[NCaloCells]
Definition: ConstantInfoDefinitions.h:248
CaloRecGPU::GeometryArr
Definition: ConstantInfoDefinitions.h:221
CaloRecGPU::EtaPhiToCellMap::register_cell
constexpr void register_cell(const int cell, const int sampling, const float cell_eta, const float cell_phi, const float cell_deta, const float cell_dphi)
Definition: EtaPhiMap.h:1497
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.compareTCTs.ratio
ratio
Definition: compareTCTs.py:294
CaloRecGPU::CellNoiseArr::get_noise
constexpr float get_noise(const int cell, const int gain) const
Definition: ConstantInfoDefinitions.h:474
CaloRecGPU::OtherCellInfo::value
carrier value
Definition: ConstantInfoDefinitions.h:130
CaloRecGPU::CellNoiseProperties::value
carrier value
Definition: ConstantInfoDefinitions.h:387
eFEXNTuple.delta_phi
def delta_phi(phi1, phi2)
Definition: eFEXNTuple.py:15
CaloRecGPU::ConstantEnumConversion::from_region_enum
constexpr static int from_region_enum(const int region)
Definition: ConstantInfoDefinitions.h:61
CaloRecGPU::CellNoiseProperties::noise_type
constexpr carrier noise_type() const
Definition: ConstantInfoDefinitions.h:418
CaloRecGPU::ConstantEnumConversion::s_region_unknown_replacement
constexpr static int s_region_unknown_replacement
Definition: ConstantInfoDefinitions.h:57
CaloRecGPU::OtherCellInfo::s_subcalo_mask
static constexpr carrier s_subcalo_mask
Definition: ConstantInfoDefinitions.h:136
CaloRecGPU::CellNoiseArr::get_double_gaussian_significance
CUDA_HOS_DEV float get_double_gaussian_significance(const int cell, const int gain, const float energy) const
Definition: ConstantInfoDefinitions.h:481
CaloRecGPU::OtherCellInfo::sampling
constexpr carrier sampling() const
Definition: ConstantInfoDefinitions.h:173
CaloRecGPU::OtherCellInfo::s_intra_sampling_offset
static constexpr carrier s_intra_sampling_offset
Definition: ConstantInfoDefinitions.h:143
CaloRecGPU::ConstantEnumConversion::s_sampling_unknown
constexpr static int s_sampling_unknown
Definition: ConstantInfoDefinitions.h:87
CaloRecGPU::ConstantEnumConversion::to_region_enum
constexpr static int to_region_enum(const int region)
Definition: ConstantInfoDefinitions.h:73
CaloRecGPU::OtherCellInfo::intra_calorimeter_sampling
constexpr carrier intra_calorimeter_sampling() const
Definition: ConstantInfoDefinitions.h:178
CaloRecGPU::GeometryArr::neighbours
NeighArr neighbours
Definition: ConstantInfoDefinitions.h:240
CaloRecGPU::ConstantEnumConversion::s_sampling_unknown_replacement
constexpr static int s_sampling_unknown_replacement
Definition: ConstantInfoDefinitions.h:88
CaloRecGPU::GeometryArr::fill_eta_phi_map
CUDA_HOS_DEV void fill_eta_phi_map()
Definition: ConstantInfoDefinitions.h:306
Helpers.h
CaloRecGPU::ConstantEnumConversion::s_subcalo_unknown
constexpr static int s_subcalo_unknown
Definition: ConstantInfoDefinitions.h:25
CaloRecGPU::NeighArr::get_number_of_neighbours
constexpr int get_number_of_neighbours(const unsigned int neigh_options, const int cell) const
Definition: NeighArr.h:226
CaloRecGPU::NTileCells
constexpr int NTileCells
Definition: BaseDefinitions.h:20
CaloRecGPU::OtherCellInfo::region
constexpr carrier region() const
Definition: ConstantInfoDefinitions.h:188
CaloRecGPU
Definition: BaseDefinitions.h:11
CaloRecGPU::CellNoiseProperties::is_valid
constexpr bool is_valid() const
Definition: ConstantInfoDefinitions.h:449
CaloRecGPU::GeometryArr::is_HECIW_or_FCal
constexpr bool is_HECIW_or_FCal(const int cell) const
Definition: ConstantInfoDefinitions.h:255
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
CaloRecGPU::ConstantEnumConversion::s_subcalo_unknown_replacement
constexpr static int s_subcalo_unknown_replacement
Definition: ConstantInfoDefinitions.h:26
CaloRecGPU::OtherCellInfo::s_intra_sampling_mask
static constexpr carrier s_intra_sampling_mask
Definition: ConstantInfoDefinitions.h:135
CaloRecGPU::TileCellStart
constexpr int TileCellStart
Definition: BaseDefinitions.h:16
CaloRecGPU::CellNoiseProperties::CellNoiseProperties
constexpr CellNoiseProperties(const carrier v)
Definition: ConstantInfoDefinitions.h:403
WriteCellNoiseToCool.noise
noise
Definition: WriteCellNoiseToCool.py:380
CaloRecGPU::EtaPhiToCellMap::get_possible_cells_from_coords
constexpr int get_possible_cells_from_coords(const int sampling, const float test_eta, const float test_phi, int *cell_arr) const
We assume cell_arr is large enough.
Definition: EtaPhiMap.h:1519
CaloRecGPU::OtherCellInfo::is_PS
constexpr bool is_PS() const
Definition: ConstantInfoDefinitions.h:198
CaloRecGPU::GeometryArr::dphi
float dphi[NCaloCells]
Definition: ConstantInfoDefinitions.h:234
BaseDefinitions.h
CaloRecGPU::ConstantEnumConversion::from_subcalo_enum
constexpr static int from_subcalo_enum(const int subcalo)
Definition: ConstantInfoDefinitions.h:30
CaloRecGPU::OtherCellInfo::s_is_HECIW_FCal_flag
static constexpr carrier s_is_HECIW_FCal_flag
Definition: ConstantInfoDefinitions.h:140