7 #ifndef CALORECGPU_ETAPHIMAP_H
8 #define CALORECGPU_ETAPHIMAP_H
33 template <
int eta_gr
id,
int phi_gr
id,
bool respect_deltas,
bool continuous,
int sampling_number>
40 static constexpr
float s_phi_min = - Helpers::Constants::pi<float>;
41 static constexpr
float s_phi_max = + Helpers::Constants::pi<float>;
74 constexpr
float start_eta(
const bool positive =
true)
const
95 constexpr
float end_eta(
const bool positive =
true)
const
120 const float rounded = floorf(
frac);
122 const int casted =
static_cast<int>(rounded);
123 if ((casted == eta_grid || casted == 2 * eta_grid) &&
interval == 0.f)
126 return casted - 1 + (eta > 0 && !continuous) * eta_grid;
130 return casted + (eta > 0 && !continuous) * eta_grid;
144 const float rounded = floorf(
frac);
146 const int to_return =
static_cast<int>(rounded) % phi_grid;
147 return to_return + (to_return < 0) * phi_grid;
158 const bool eta_in_range = eta >=
start_eta(eta > 0) && eta <=
end_eta(eta > 0);
159 const bool phi_in_range =
true;
160 return eta_in_range && phi_in_range;
165 if (!continuous && eta_coord >= eta_grid)
182 constexpr
void add_cell_to_grid(
const int cell,
const float eta_fraction,
const float phi_fraction,
const int eta,
const int phi)
186 #if CALORECGPU_ETA_PHI_MAP_DEBUG
187 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Attempt out of bounds store %d (%d): %f %f (%d / %d, %d / %d)\n",
188 cell, sampling_number, eta_fraction, phi_fraction, eta, eta_grid, phi, phi_grid);
204 #if CALORECGPU_ETA_PHI_MAP_DEBUG
205 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Unable to store %d (%d): ",
cell, sampling_number);
208 printf(
"%d ",
m_cells[eta][phi][
i]);
221 const float d_eta_1 = fabsf(this_eta - cell_eta);
222 const float d_eta_2 = fabsf(this_eta +
delta_eta() - cell_eta);
224 const float d_phi_1 = fabsf(Helpers::angular_difference(this_phi, cell_phi));
225 const float d_phi_2 = fabsf(Helpers::angular_difference(this_phi +
delta_phi(), cell_phi));
227 printf(
" %f %f %f %f | %f %f %f %f (%f %f | %f %f %f %f)\n",
249 constexpr
void register_cell(
const int cell,
const float cell_eta,
const float cell_phi,
const float cell_deta,
const float cell_dphi)
251 int start_eta_coord = -1, end_eta_coord = -1;
252 float start_eta_frac = 0.f, end_eta_frac = 0.f;
254 start_eta_coord =
eta_coordinate(cell_eta - cell_deta / 2, start_eta_frac);
255 end_eta_coord =
eta_coordinate(cell_eta + cell_deta / 2, end_eta_frac);
257 int start_phi_coord = -1, end_phi_coord = -1;
258 float start_phi_frac = 0.f, end_phi_frac = 0.f;
259 int start_phi_extra = -1, end_phi_extra = -1;
260 float start_phi_extra_frac = 0.f, end_phi_extra_frac = 0.f;
267 start_phi_frac = 0.f;
269 end_phi_coord = phi_grid - 1;
272 else if (cell_phi - cell_dphi / 2 <
s_phi_min)
275 start_phi_frac = 0.f;
277 end_phi_coord =
phi_coordinate(cell_phi + cell_dphi / 2, end_phi_frac);
279 start_phi_extra =
phi_coordinate(Helpers::regularize_angle(cell_phi - cell_dphi / 2), start_phi_extra_frac);
281 end_phi_extra = phi_grid - 1;
282 end_phi_extra_frac = 1.f;
284 else if (cell_phi + cell_dphi / 2 >
s_phi_max)
286 start_phi_coord =
phi_coordinate(cell_phi - cell_dphi / 2, start_phi_frac);
288 end_phi_coord = phi_grid - 1;
291 start_phi_extra =
phi_coordinate(Helpers::regularize_angle(cell_phi - cell_dphi / 2), start_phi_extra_frac);
294 start_phi_extra_frac = 1.f;
296 end_phi_extra =
phi_coordinate(Helpers::regularize_angle(cell_phi + cell_dphi / 2), end_phi_extra_frac);
300 start_phi_coord =
phi_coordinate(cell_phi - cell_dphi / 2, start_phi_frac);
301 end_phi_coord =
phi_coordinate(cell_phi + cell_dphi / 2, end_phi_frac);
304 for (
int i = start_eta_coord;
i <= end_eta_coord; ++
i)
306 const float eta_frac = (
i == start_eta_coord ? -start_eta_frac :
i == end_eta_coord ? end_eta_frac : 0.f);
308 for (
int j = start_phi_coord; j <= end_phi_coord; ++j)
310 const float phi_frac = (j == start_phi_coord ? -start_phi_frac : j == end_phi_coord ? end_phi_frac : 0.f);
312 add_cell_to_grid(
cell, (respect_deltas ? eta_frac : cell_eta), (respect_deltas ? phi_frac : cell_phi),
i, j);
315 if (start_phi_extra >= 0)
317 for (
int j = start_phi_extra; j <= end_phi_extra; ++j)
319 const float phi_frac = (j == start_phi_extra ? -start_phi_extra_frac : j == end_phi_extra ? end_phi_extra_frac : 0.f);
321 add_cell_to_grid(
cell, (respect_deltas ? eta_frac : cell_eta), (respect_deltas ? phi_frac : cell_phi),
i, j);
331 for (
int j = 0; j < phi_grid; ++j)
359 #if CALORECGPU_ETA_PHI_MAP_DEBUG
360 if (sampling_number < 24)
362 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: %d | %d | %f %f | %f %f | %f %f | %f %f\n",
363 sampling_number,
static_cast<int>(continuous),
438 #if CALORECGPU_ETA_PHI_MAP_DEBUG
439 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: cannot add more cells! (%d)\n", sampling_number);
455 const int value = eta * phi_grid + phi;
480 return sizeof(FinishInitializingTemporaries);
490 FinishInitializingTemporaries * temp_ptr =
new (
buffer) FinishInitializingTemporaries;
492 FinishInitializingTemporaries & temps = *temp_ptr;
494 auto calculate_minima = [&](
float & min_dist_eta,
float & min_dist_phi,
495 const float this_eta,
const float this_phi,
496 const float gridcell_eta,
const float gridcell_phi)
498 if (this_eta >= gridcell_eta && this_eta <= gridcell_eta +
delta_eta())
500 min_dist_eta = this_eta;
504 if (this_eta < gridcell_eta)
506 min_dist_eta = gridcell_eta;
508 #if CALORECGPU_ETA_PHI_MAP_DEBUG
509 else if (this_eta <= gridcell_eta +
delta_eta())
511 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Strange things going on with eta distance (%d): %f | %f %f\n",
512 sampling_number, this_eta, gridcell_eta, gridcell_eta +
delta_eta());
517 min_dist_eta = gridcell_eta +
delta_eta();
521 if (this_phi >= gridcell_phi && this_phi <= gridcell_phi +
delta_phi())
523 min_dist_phi = this_phi;
527 const float d1 = fabsf(Helpers::angular_difference(gridcell_phi, this_phi));
528 const float d2 = fabsf(Helpers::angular_difference(gridcell_phi +
delta_phi(), this_phi));
531 min_dist_phi = gridcell_phi;
533 #if CALORECGPU_ETA_PHI_MAP_DEBUG
536 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Strange things going on with phi distance (%d): %f | %f %f\n",
537 sampling_number, this_phi, gridcell_phi, gridcell_phi +
delta_phi());
542 min_dist_phi = gridcell_phi +
delta_phi();
547 auto calculate_dist = [](
const float e_1,
const float p_1,
548 const float e_2,
const float p_2)
550 return fabsf(e_1 - e_2) + fabsf(Helpers::angular_difference(p_1, p_2));
559 const float this_eta,
560 const float this_phi,
561 const float min_dist_eta,
562 const float min_dist_phi)
566 int replace_count = 0;
568 const float new_dist_at_new_minimum = calculate_dist(this_eta, this_phi, min_dist_eta, min_dist_phi);
577 if (
cells[
i] == this_cell)
583 const float old_dist_at_new_minimum = calculate_dist(
etas[
i], phis[
i], min_dist_eta, min_dist_phi);
585 if (old_dist_at_new_minimum <= new_dist_at_new_minimum)
591 const float new_dist_at_old_minimum = calculate_dist(this_eta, this_phi, min_etas[
i], min_phis[
i]);
592 const float old_dist_at_old_minimum = calculate_dist(
etas[
i], phis[
i], min_etas[
i], min_phis[
i]);
594 if (new_dist_at_old_minimum < old_dist_at_old_minimum)
597 to_replace[replace_count] =
i;
602 while (replace_count > 0 &&
i > 0)
604 const int orig = to_replace[replace_count - 1];
609 phis [orig] = phis [
i - 1];
610 min_etas [orig] = min_etas [
i - 1];
611 min_phis [orig] = min_phis [
i - 1];
616 if (
i < 0 || (
i == 0 && replace_count > 0))
618 #if CALORECGPU_ETA_PHI_MAP_DEBUG
619 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Negative count on cell list update, somehow... (%d)\n", sampling_number);
630 min_etas [
i] = min_dist_eta;
631 min_phis [
i] = min_dist_phi;
634 #if CALORECGPU_ETA_PHI_MAP_DEBUG
637 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Warning: overfull list of overlapping cells: %d (%d)\n",
i, sampling_number);
648 const float gridcell_eta,
649 const float gridcell_phi,
653 bool updated =
false;
656 const int this_cell =
m_cells[orig_eta][orig_phi][
i];
666 float min_dist_eta = 0.f, min_dist_phi = 0.f;
668 calculate_minima(min_dist_eta, min_dist_phi, this_eta, this_phi, gridcell_eta, gridcell_phi);
670 updated = updated || update_cell_list(
cells,
etas, phis, min_etas, min_phis,
671 this_cell, this_eta, this_phi, min_dist_eta, min_dist_phi);
678 auto process_cell = [&](
const int eta,
const int phi)
680 const int phi_before = (phi == 0 ? phi_grid - 1 : phi - 1);
681 const int phi_after = (phi == phi_grid - 1 ? 0 : phi + 1);
682 const int eta_before = (eta == 0 || eta == eta_grid ? -1 : eta - 1);
683 const int eta_after = (eta == eta_grid - 1 || eta == 2 * eta_grid - 1 ? -1 : eta + 1);
685 const float this_grid_eta =
eta_value(eta);
686 const float this_grid_phi =
phi_value(phi);
692 if (temps.cells[eta][phi][
i] < 0)
700 calculate_minima(min_etas[
i], min_phis[
i], this_eta, this_phi, this_grid_eta, this_grid_phi);
705 added = added || add_possible_cells(temps.cells[eta][phi],
706 temps.etas[eta][phi], temps.phis[eta][phi],
708 this_grid_eta, this_grid_phi,
710 added = added || add_possible_cells(temps.cells[eta][phi],
711 temps.etas[eta][phi], temps.phis[eta][phi],
713 this_grid_eta, this_grid_phi,
718 added = added || add_possible_cells(temps.cells[eta][phi],
719 temps.etas[eta][phi], temps.phis[eta][phi],
721 this_grid_eta, this_grid_phi,
726 added = added || add_possible_cells(temps.cells[eta][phi],
727 temps.etas[eta][phi], temps.phis[eta][phi],
729 this_grid_eta, this_grid_phi,
737 ret = ret || temps.try_add_next_gridcell(eta, phi_before);
738 ret = ret || temps.try_add_next_gridcell(eta, phi_after);
741 ret = ret || temps.try_add_next_gridcell(eta_before, phi);
745 ret = ret || temps.try_add_next_gridcell(eta_after, phi);
752 temps.counter[0] = 0;
753 temps.counter[1] = 0;
754 temps.select =
false;
760 for (
int phi = 0; phi < phi_grid; ++phi)
769 const int phi_before = (phi == 0 ? phi_grid - 1 : phi - 1);
770 const int phi_after = (phi == phi_grid - 1 ? 0 : phi + 1);
771 const int eta_before = (eta == 0 || eta == eta_grid ? -1 : eta - 1);
772 const int eta_after = (eta == eta_grid - 1 || eta ==
s_eta_grid_size - 1 ? -1 : eta + 1);
774 temps.try_add_next_gridcell(eta, phi);
776 temps.try_add_next_gridcell(eta, phi_before);
777 temps.try_add_next_gridcell(eta, phi_after);
780 temps.try_add_next_gridcell(eta_before, phi);
784 temps.try_add_next_gridcell(eta_after, phi);
791 temps.clear_next_gridcells();
793 #if CALORECGPU_ETA_PHI_MAP_DEBUG
795 int equal_iter_counter = 0;
798 while (temps.get_counter() > 0)
800 for (
int i = 0;
i < temps.get_counter(); ++
i)
803 temps.get_gridcell(
i, eta, phi);
804 process_cell(eta, phi);
807 #if CALORECGPU_ETA_PHI_MAP_DEBUG
810 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Init %d: %d | %d %d (%d)\n",
811 sampling_number, iter_count, temps.get_counter(), temps.get_next_counter(), equal_iter_counter);
813 if (temps.get_counter() == temps.get_next_counter())
817 for (
int i = 0;
i < temps.get_counter(); ++
i)
819 count_same += (temps.get_gridcells()[
i] == temps.get_next_gridcells()[
i]);
821 if (count_same == temps.get_counter())
823 ++equal_iter_counter;
824 if (equal_iter_counter >= 4)
827 temps.clear_next_gridcells();
829 if (temps.get_counter() < 10)
831 for (
int i = 0;
i < temps.get_counter(); ++
i)
834 temps.get_gridcell(
i, eta, phi);
835 printf(
" %d %d", eta, phi);
838 if (temps.cells[eta][phi][j] < 0)
842 printf(
" (%d: %f %f)", temps.cells[eta][phi][j], temps.etas[eta][phi][j], temps.phis[eta][phi][j]);
850 equal_iter_counter = 0;
855 equal_iter_counter = 0;
859 for (
int i = 0;
i < temps.get_counter(); ++
i)
862 temps.get_gridcell(
i, eta, phi);
870 temps.clear_next_gridcells();
874 #if CALORECGPU_ETA_PHI_MAP_DEBUG
875 printf(
"CALORECGPU ETA PHI MAP DEBUG OUTPUT: Finished %d: %d (%d %d)\n",
896 float frac_eta = 0.f, frac_phi = 0.f;
901 if (eta_coord < 0 || eta_coord >=
s_eta_grid_size || phi_coord < 0 || phi_coord >= phi_grid)
908 auto check_coord = [](
const float test,
const float target)
931 const int this_cell =
m_cells[eta_coord][phi_coord][
i];
941 cell_arr[num_cells] = this_cell;
953 const int this_cell =
m_cells[eta_coord][phi_coord][
i];
962 const float this_delta_phi = Helpers::angular_difference(
m_phi_coordinates[eta_coord][phi_coord][
i], test_phi);
966 const float this_dist = fabsf(this_delta_eta) + fabsf(this_delta_phi);
992 float frac_eta = 0.f, frac_phi = 0.f;
997 if (eta_coord < 0 || eta_coord >=
s_eta_grid_size || phi_coord < 0 || phi_coord >= phi_grid)
1004 auto check_coord = [](
const float test,
const float target)
1006 using namespace std;
1027 if (
m_cells[eta_coord][phi_coord][
i] < 0)
1055 for (
int phi = 0; phi < phi_grid; ++phi)
1071 if (this_count > ret)
1120 static_assert(
NumSamplings == 28,
"Written under the assumption there are 28 samplings.");
1123 template <
class Func,
class ...
Args>
1126 F(sampling_0, std::forward<Args>(
args)...);
1127 F(sampling_1, std::forward<Args>(
args)...);
1128 F(sampling_2, std::forward<Args>(
args)...);
1129 F(sampling_3, std::forward<Args>(
args)...);
1130 F(sampling_4, std::forward<Args>(
args)...);
1131 F(sampling_5, std::forward<Args>(
args)...);
1132 F(sampling_6, std::forward<Args>(
args)...);
1133 F(sampling_7, std::forward<Args>(
args)...);
1134 F(sampling_8, std::forward<Args>(
args)...);
1135 F(sampling_9, std::forward<Args>(
args)...);
1136 F(sampling_10, std::forward<Args>(
args)...);
1137 F(sampling_11, std::forward<Args>(
args)...);
1138 F(sampling_12, std::forward<Args>(
args)...);
1139 F(sampling_13, std::forward<Args>(
args)...);
1140 F(sampling_14, std::forward<Args>(
args)...);
1141 F(sampling_15, std::forward<Args>(
args)...);
1142 F(sampling_16, std::forward<Args>(
args)...);
1143 F(sampling_17, std::forward<Args>(
args)...);
1144 F(sampling_18, std::forward<Args>(
args)...);
1145 F(sampling_19, std::forward<Args>(
args)...);
1146 F(sampling_20, std::forward<Args>(
args)...);
1147 F(sampling_21, std::forward<Args>(
args)...);
1148 F(sampling_22, std::forward<Args>(
args)...);
1149 F(sampling_23, std::forward<Args>(
args)...);
1150 F(sampling_24, std::forward<Args>(
args)...);
1151 F(sampling_25, std::forward<Args>(
args)...);
1152 F(sampling_26, std::forward<Args>(
args)...);
1153 F(sampling_27, std::forward<Args>(
args)...);
1157 template <
class Func,
class ...
Args>
1160 F(sampling_0, std::forward<Args>(
args)...);
1161 F(sampling_1, std::forward<Args>(
args)...);
1162 F(sampling_2, std::forward<Args>(
args)...);
1163 F(sampling_3, std::forward<Args>(
args)...);
1164 F(sampling_4, std::forward<Args>(
args)...);
1165 F(sampling_5, std::forward<Args>(
args)...);
1166 F(sampling_6, std::forward<Args>(
args)...);
1167 F(sampling_7, std::forward<Args>(
args)...);
1168 F(sampling_8, std::forward<Args>(
args)...);
1169 F(sampling_9, std::forward<Args>(
args)...);
1170 F(sampling_10, std::forward<Args>(
args)...);
1171 F(sampling_11, std::forward<Args>(
args)...);
1172 F(sampling_12, std::forward<Args>(
args)...);
1173 F(sampling_13, std::forward<Args>(
args)...);
1174 F(sampling_14, std::forward<Args>(
args)...);
1175 F(sampling_15, std::forward<Args>(
args)...);
1176 F(sampling_16, std::forward<Args>(
args)...);
1177 F(sampling_17, std::forward<Args>(
args)...);
1178 F(sampling_18, std::forward<Args>(
args)...);
1179 F(sampling_19, std::forward<Args>(
args)...);
1180 F(sampling_20, std::forward<Args>(
args)...);
1181 F(sampling_21, std::forward<Args>(
args)...);
1182 F(sampling_22, std::forward<Args>(
args)...);
1183 F(sampling_23, std::forward<Args>(
args)...);
1184 F(sampling_24, std::forward<Args>(
args)...);
1185 F(sampling_25, std::forward<Args>(
args)...);
1186 F(sampling_26, std::forward<Args>(
args)...);
1187 F(sampling_27, std::forward<Args>(
args)...);
1191 template <
class Func,
class ...
Args>
1197 F(sampling_0, std::forward<Args>(
args)...);
1200 F(sampling_1, std::forward<Args>(
args)...);
1203 F(sampling_2, std::forward<Args>(
args)...);
1206 F(sampling_3, std::forward<Args>(
args)...);
1209 F(sampling_4, std::forward<Args>(
args)...);
1212 F(sampling_5, std::forward<Args>(
args)...);
1215 F(sampling_6, std::forward<Args>(
args)...);
1218 F(sampling_7, std::forward<Args>(
args)...);
1221 F(sampling_8, std::forward<Args>(
args)...);
1224 F(sampling_9, std::forward<Args>(
args)...);
1227 F(sampling_10, std::forward<Args>(
args)...);
1230 F(sampling_11, std::forward<Args>(
args)...);
1233 F(sampling_12, std::forward<Args>(
args)...);
1236 F(sampling_13, std::forward<Args>(
args)...);
1239 F(sampling_14, std::forward<Args>(
args)...);
1242 F(sampling_15, std::forward<Args>(
args)...);
1245 F(sampling_16, std::forward<Args>(
args)...);
1248 F(sampling_17, std::forward<Args>(
args)...);
1251 F(sampling_18, std::forward<Args>(
args)...);
1254 F(sampling_19, std::forward<Args>(
args)...);
1257 F(sampling_20, std::forward<Args>(
args)...);
1260 F(sampling_21, std::forward<Args>(
args)...);
1263 F(sampling_22, std::forward<Args>(
args)...);
1266 F(sampling_23, std::forward<Args>(
args)...);
1269 F(sampling_24, std::forward<Args>(
args)...);
1272 F(sampling_25, std::forward<Args>(
args)...);
1275 F(sampling_26, std::forward<Args>(
args)...);
1278 F(sampling_27, std::forward<Args>(
args)...);
1286 template <
class Func,
class ...
Args>
1292 F(sampling_0, std::forward<Args>(
args)...);
1295 F(sampling_1, std::forward<Args>(
args)...);
1298 F(sampling_2, std::forward<Args>(
args)...);
1301 F(sampling_3, std::forward<Args>(
args)...);
1304 F(sampling_4, std::forward<Args>(
args)...);
1307 F(sampling_5, std::forward<Args>(
args)...);
1310 F(sampling_6, std::forward<Args>(
args)...);
1313 F(sampling_7, std::forward<Args>(
args)...);
1316 F(sampling_8, std::forward<Args>(
args)...);
1319 F(sampling_9, std::forward<Args>(
args)...);
1322 F(sampling_10, std::forward<Args>(
args)...);
1325 F(sampling_11, std::forward<Args>(
args)...);
1328 F(sampling_12, std::forward<Args>(
args)...);
1331 F(sampling_13, std::forward<Args>(
args)...);
1334 F(sampling_14, std::forward<Args>(
args)...);
1337 F(sampling_15, std::forward<Args>(
args)...);
1340 F(sampling_16, std::forward<Args>(
args)...);
1343 F(sampling_17, std::forward<Args>(
args)...);
1346 F(sampling_18, std::forward<Args>(
args)...);
1349 F(sampling_19, std::forward<Args>(
args)...);
1352 F(sampling_20, std::forward<Args>(
args)...);
1355 F(sampling_21, std::forward<Args>(
args)...);
1358 F(sampling_22, std::forward<Args>(
args)...);
1361 F(sampling_23, std::forward<Args>(
args)...);
1364 F(sampling_24, std::forward<Args>(
args)...);
1367 F(sampling_25, std::forward<Args>(
args)...);
1370 F(sampling_26, std::forward<Args>(
args)...);
1373 F(sampling_27, std::forward<Args>(
args)...);
1388 template <
class Entry>
1397 template <
class Entry>
1406 template <
class Entry>
1408 const float cell_eta,
const float cell_phi,
1409 const float cell_deta,
const float cell_dphi )
const
1411 entry.register_cell(
cell, cell_eta, cell_phi, cell_deta, cell_dphi);
1417 template <
class Entry>
1420 using namespace std;
1421 ret =
max(ret,
entry.finish_initializing_buffer_size());
1427 template <
class Entry>
1438 template <
class Entry>
1439 constexpr
void operator() (Entry &
entry,
int & ret,
const float test_eta,
const float test_phi,
int * cell_arr)
const
1441 ret =
entry.get_possible_cells_from_coords(test_eta, test_phi, cell_arr);
1447 template <
class Entry>
1448 constexpr
void operator() (Entry &
entry,
bool & ret,
const float test_eta,
const float test_phi)
const
1450 ret =
entry.has_cell_in_coords(test_eta, test_phi);
1456 template <
class Entry>
1457 constexpr
void operator() (Entry &
entry,
int & ret,
const float test_eta,
const float test_phi,
int * cell_arr)
const
1459 ret +=
entry.get_possible_cells_from_coords(test_eta, test_phi, cell_arr + ret);
1465 template <
class Entry>
1466 constexpr
void operator() (Entry &
entry,
bool & ret,
const float test_eta,
const float test_phi)
const
1468 ret = ( ret ||
entry.has_cell_in_coords(test_eta, test_phi) );
1475 template <
class Entry>
1478 using namespace std;
1479 ret =
max(ret,
entry.get_max_real_overlap());
1497 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)
1569 #endif //CALORECGPU_ETAPHIMAP_H