CMS 3D CMS Logo

HGCalTilesConstants.h
Go to the documentation of this file.
1 // Authors: Felice Pantaleo - felice.pantaleo@cern.ch
2 // Date: 03/2019
3 
4 #ifndef RecoLocalCalo_HGCalRecAlgos_interface_HGCalTilesConstants_h
5 #define RecoLocalCalo_HGCalRecAlgos_interface_HGCalTilesConstants_h
6 
7 #include <cstdint>
8 #include <array>
9 
11 
12  constexpr int32_t ceil(float num) {
13  return (static_cast<float>(static_cast<int32_t>(num)) == num) ? static_cast<int32_t>(num)
14  : static_cast<int32_t>(num) + ((num > 0) ? 1 : 0);
15  }
16 
17  constexpr float tileSize = 5.f;
18  constexpr float minX = -285.f;
19  constexpr float maxX = 285.f;
20  constexpr float minY = -285.f;
21  constexpr float maxY = 285.f;
22  constexpr int nColumns = hgcaltilesconstants::ceil((maxX - minX) / tileSize);
23  constexpr int nRows = hgcaltilesconstants::ceil((maxY - minY) / tileSize);
24  constexpr float tileSizeEtaPhi = 0.15f;
25  constexpr float minEta = -3.f;
26  constexpr float maxEta = 3.f;
27  //To properly construct search box for cells in phi=[-3.15,-3.] and [3.,3.15], cells in phi=[3.,3.15] are copied to the first bin and cells in phi=[-3.15,-3.] are copied to the last bin
28  constexpr float minPhi = -3.3f;
29  constexpr float maxPhi = 3.3f;
30  constexpr int nColumnsEta = hgcaltilesconstants::ceil((maxEta - minEta) / tileSizeEtaPhi);
31  constexpr int nRowsPhi = hgcaltilesconstants::ceil((maxPhi - minPhi) / tileSizeEtaPhi);
32  constexpr int nTiles = nColumns * nRows + nColumnsEta * nRowsPhi;
33 
34 } // namespace hgcaltilesconstants
35 
36 #endif // RecoLocalCalo_HGCalRecAlgos_interface_HGCalTilesConstants_h
constexpr float tileSize
constexpr float minEta
constexpr int32_t ceil(float num)
constexpr float tileSizeEtaPhi
constexpr float maxPhi
constexpr float minPhi
constexpr float maxEta
#define constexpr