Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-07-03 04:18:11

0001 
0002 // Authors: Felice Pantaleo - felice.pantaleo@cern.ch
0003 // Date: 03/2019
0004 
0005 #ifndef RecoLocalCalo_HGCalRecProducer_HGCalTilesConstants_h
0006 #define RecoLocalCalo_HGCalRecProducer_HGCalTilesConstants_h
0007 
0008 #include "DataFormats/Math/interface/constexpr_cmath.h"
0009 #include <cmath>
0010 #include <cstdint>
0011 #include <array>
0012 
0013 struct HGCalSiliconTilesConstants {
0014   static constexpr float tileSize = 5.f;
0015   static constexpr float minDim1 = -285.f;
0016   static constexpr float maxDim1 = 285.f;
0017   static constexpr float minDim2 = -285.f;
0018   static constexpr float maxDim2 = 285.f;
0019   static constexpr int nColumns = reco::ceil((maxDim1 - minDim1) / tileSize);
0020   static constexpr int nRows = reco::ceil((maxDim2 - minDim2) / tileSize);
0021   static constexpr int nTiles = nColumns * nRows;
0022   static constexpr float invDim1BinSize = nColumns / (maxDim1 - minDim1);
0023   static constexpr float invDim2BinSize = nRows / (maxDim2 - minDim2);
0024   static constexpr int maxTileDepth = 64;  // For accelerators.
0025 };
0026 
0027 struct HGCalScintillatorTilesConstants {
0028   static constexpr float tileSize = 0.15f;
0029   static constexpr float minDim1 = -3.f;
0030   static constexpr float maxDim1 = 3.f;
0031   static constexpr float minDim2 = -3.f;
0032   static constexpr float maxDim2 = 3.f;
0033   static constexpr int nColumns = reco::ceil((maxDim1 - minDim1) / tileSize);
0034   static constexpr int nRows = reco::ceil(2. * M_PI / tileSize);
0035   static constexpr int nTiles = nColumns * nRows;
0036   static constexpr float invDim1BinSize = nColumns / (maxDim1 - minDim1);
0037   static constexpr float invDim2BinSize = nRows / (maxDim2 - minDim2);
0038   static constexpr int maxTileDepth = 32;  // For accelerators.
0039 };
0040 
0041 #endif