CMS 3D CMS Logo

CAConstants.h
Go to the documentation of this file.
1 #ifndef RecoPixelVertexing_PixelTriplets_plugins_CAConstants_h
2 #define RecoPixelVertexing_PixelTriplets_plugins_CAConstants_h
3 
4 #include <cstdint>
5 
6 #include <cuda_runtime.h>
7 
12 
13 //#define ONLY_PHICUT
14 
15 // Cellular automaton constants
16 namespace caConstants {
17 
18  // constants
19 #ifdef ONLY_PHICUT
20  constexpr uint32_t maxCellNeighbors = 64;
21  constexpr uint32_t maxCellTracks = 64;
22  constexpr uint32_t maxNumberOfTuples = 48 * 1024;
23  constexpr uint32_t maxNumberOfDoublets = 2 * 1024 * 1024;
24  constexpr uint32_t maxCellsPerHit = 8 * 128;
25 #else // ONLY_PHICUT
26  constexpr uint32_t maxCellNeighbors = 36;
27  constexpr uint32_t maxCellTracks = 48;
28 #ifdef GPU_SMALL_EVENTS
29  // kept for testing and debugging
30  constexpr uint32_t maxNumberOfTuples = 3 * 1024;
31  constexpr uint32_t maxNumberOfDoublets = 128 * 1024;
32  constexpr uint32_t maxCellsPerHit = 128 / 2;
33 #else // GPU_SMALL_EVENTS
34  // tested on MC events with 55-75 pileup events
35  constexpr uint32_t maxNumberOfTuples = 24 * 1024;
36  constexpr uint32_t maxNumberOfDoublets = 512 * 1024;
37  constexpr uint32_t maxCellsPerHit = 128;
38 #endif // GPU_SMALL_EVENTS
39 #endif // ONLY_PHICUT
40  constexpr uint32_t maxNumOfActiveDoublets = maxNumberOfDoublets / 8;
42 
43  constexpr uint32_t maxNumberOfLayerPairs = 20;
44  constexpr uint32_t maxNumberOfLayers = 10;
45  constexpr uint32_t maxTuples = maxNumberOfTuples;
46 
47  // Modules constants
48  constexpr uint32_t max_ladder_bpx0 = 12;
49  constexpr uint32_t first_ladder_bpx0 = 0;
50  constexpr float module_length_bpx0 = 6.7f;
51  constexpr float module_tolerance_bpx0 = 0.4f; // projection to cylinder is inaccurate on BPIX1
52  constexpr uint32_t max_ladder_bpx4 = 64;
53  constexpr uint32_t first_ladder_bpx4 = 84;
54  constexpr float radius_even_ladder = 15.815f;
55  constexpr float radius_odd_ladder = 16.146f;
56  constexpr float module_length_bpx4 = 6.7f;
57  constexpr float module_tolerance_bpx4 = 0.2f;
58  constexpr float barrel_z_length = 26.f;
59  constexpr float forward_z_begin = 32.f;
60 
61  // Last indexes
62  constexpr uint32_t last_bpix1_detIndex = 96;
63  constexpr uint32_t last_barrel_detIndex = 1184;
64 
65  // types
66  using hindex_type = uint32_t; // FIXME from siPixelRecHitsHeterogeneousProduct
67  using tindex_type = uint16_t; // for tuples
68 
71 
74 
77  using HitToTuple = cms::cuda::OneToManyAssoc<tindex_type, -1, 4 * maxTuples>; // 3.5 should be enough
79 
80 } // namespace caConstants
81 
82 #endif // RecoPixelVertexing_PixelTriplets_plugins_CAConstants_h
caConstants::hindex_type
uint32_t hindex_type
Definition: CAConstants.h:66
caConstants::radius_even_ladder
constexpr float radius_even_ladder
Definition: CAConstants.h:54
caConstants::maxTuples
constexpr uint32_t maxTuples
Definition: CAConstants.h:45
caConstants::last_bpix1_detIndex
constexpr uint32_t last_bpix1_detIndex
Definition: CAConstants.h:62
caConstants::maxNumberOfDoublets
constexpr uint32_t maxNumberOfDoublets
Definition: CAConstants.h:36
caConstants::module_length_bpx0
constexpr float module_length_bpx0
Definition: CAConstants.h:50
caConstants::max_ladder_bpx0
constexpr uint32_t max_ladder_bpx0
Definition: CAConstants.h:48
caConstants::maxCellsPerHit
constexpr uint32_t maxCellsPerHit
Definition: CAConstants.h:37
caConstants::maxNumberOfQuadruplets
constexpr uint32_t maxNumberOfQuadruplets
Definition: CAConstants.h:41
cms::cuda::OneToManyAssoc
Definition: OneToManyAssoc.h:143
caConstants::last_barrel_detIndex
constexpr uint32_t last_barrel_detIndex
Definition: CAConstants.h:63
caConstants::tindex_type
uint16_t tindex_type
Definition: CAConstants.h:67
cms::cuda::SimpleVector
Definition: SimpleVector.h:15
caConstants::module_tolerance_bpx0
constexpr float module_tolerance_bpx0
Definition: CAConstants.h:51
caConstants::maxNumberOfTuples
constexpr uint32_t maxNumberOfTuples
Definition: CAConstants.h:35
caConstants::forward_z_begin
constexpr float forward_z_begin
Definition: CAConstants.h:59
SimpleVector.h
caConstants::barrel_z_length
constexpr float barrel_z_length
Definition: CAConstants.h:58
caConstants::maxNumOfActiveDoublets
constexpr uint32_t maxNumOfActiveDoublets
Definition: CAConstants.h:40
VecArray.h
caConstants::maxNumberOfLayers
constexpr uint32_t maxNumberOfLayers
Definition: CAConstants.h:44
caConstants::maxCellTracks
constexpr uint32_t maxCellTracks
Definition: CAConstants.h:27
caConstants::max_ladder_bpx4
constexpr uint32_t max_ladder_bpx4
Definition: CAConstants.h:52
gpuClusteringConstants.h
cms::cuda::VecArray
Definition: VecArray.h:14
caConstants::module_tolerance_bpx4
constexpr float module_tolerance_bpx4
Definition: CAConstants.h:57
caConstants::first_ladder_bpx4
constexpr uint32_t first_ladder_bpx4
Definition: CAConstants.h:53
caConstants::maxCellNeighbors
constexpr uint32_t maxCellNeighbors
Definition: CAConstants.h:26
HistoContainer.h
caConstants::module_length_bpx4
constexpr float module_length_bpx4
Definition: CAConstants.h:56
caConstants
Definition: CAConstants.h:16
caConstants::first_ladder_bpx0
constexpr uint32_t first_ladder_bpx0
Definition: CAConstants.h:49
caConstants::maxNumberOfLayerPairs
constexpr uint32_t maxNumberOfLayerPairs
Definition: CAConstants.h:43
caConstants::radius_odd_ladder
constexpr float radius_odd_ladder
Definition: CAConstants.h:55