Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
#ifndef DataFormats_SiPixelClusterSoA_interface_ClusteringConstants_h
#define DataFormats_SiPixelClusterSoA_interface_ClusteringConstants_h

#include <cstdint>
#include <limits>

//TODO: move this to TrackerTraits!
namespace pixelClustering {
#ifdef GPU_SMALL_EVENTS
  // kept for testing and debugging
  constexpr uint32_t maxHitsInIter() { return 64; }
#else
  // optimized for real data PU 50
  // tested on MC events with 55-75 pileup events
  constexpr uint32_t maxHitsInIter() { return 160; }  //TODO better tuning for PU 140-200
#endif
  constexpr uint32_t maxHitsInModule() { return 1024; }

  constexpr uint16_t clusterThresholdLayerOne = 2000;
  constexpr uint16_t clusterThresholdOtherLayers = 4000;

  constexpr uint16_t clusterThresholdPhase2LayerOne = 4000;
  constexpr uint16_t clusterThresholdPhase2OtherLayers = 4000;

  constexpr uint32_t maxNumDigis = 3 * 256 * 1024;  // @PU=200 µ=530k σ=50k this is >4σ away
  constexpr uint16_t maxNumModules = 5000;          // This is an upperlimit taking into account D110 has 4000 modules

  constexpr int32_t maxNumClustersPerModules = maxHitsInModule();
  constexpr uint16_t invalidModuleId = std::numeric_limits<uint16_t>::max() - 1;
  constexpr int invalidClusterId = -9999;
  static_assert(invalidModuleId > maxNumModules);  // invalidModuleId must be > maxNumModules

}  // namespace pixelClustering

#endif  // DataFormats_SiPixelClusterSoA_interface_ClusteringConstants_h