Project
Loading...
Searching...
No Matches
Constants.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
15
16#ifndef TRACKINGITSU_INCLUDE_CONSTANTS_H_
17#define TRACKINGITSU_INCLUDE_CONSTANTS_H_
18
19#include <array>
20#include <utility>
21
23{
24
25constexpr float KB = 1024.f;
26constexpr float MB = KB * KB;
27constexpr float GB = MB * KB;
28constexpr bool DoTimeBenchmarks = true;
29constexpr bool SaveTimeBenchmarks = false;
30constexpr float Tolerance = 1e-12; // numerical tolerance
31constexpr int ClustersPerCell = 3; // number of clusters for a cell
32constexpr int UnusedIndex = -1; // global unused flag
33constexpr float UnsetValue = -999.f; // global unset value
34constexpr float Radl = 9.36f; // Radiation length of Si [cm]
35constexpr float Rho = 2.33f; // Density of Si [g/cm^3]
36constexpr int MaxIter = 4; // Max. supported iterations
37constexpr int MaxSelectedTrackletsPerCluster = 100; // vertexer: max lines per cluster
38constexpr int NumberOfConcurrentSeeds = 16; // default split per worker for the final track fit/extraploation step
39constexpr int MinNumberOfConcurrentSeeds = (1 << 8); // minimum chunk size for a worker for the final track fit/extraploation step
40constexpr int MaxNumberOfConcurrentSeeds = (1 << 12); // maximum chunk size for a worker for the final track fit/extraploation step
41constexpr float MaxTrackSeedQ2Pt = 1.e3f; // maximum q/pt for track seeds
42constexpr int GPUBlocks = 60; // default CUDA/HIP launch blocks
43constexpr int GPUThreads = 256; // default CUDA/HIP launch threads
44constexpr int GPUThreadsTotal = GPUBlocks * GPUThreads; // default CUDA/HIP total launched threads
45
46namespace helpers
47{
48
49// initialize a std::array at compile time fully with T
50template <typename T, std::size_t N, T Value>
51constexpr std::array<T, N> initArray()
52{
53 return []<std::size_t... Is>(std::index_sequence<Is...>) { return std::array<T, N>{(static_cast<void>(Is), Value)...}; }(std::make_index_sequence<N>{});
54}
55
56} // namespace helpers
57} // namespace o2::its::constants
58
59#endif /* TRACKINGITSU_INCLUDE_CONSTANTS_H_ */
o2::monitoring::tags::Value Value
constexpr std::array< T, N > initArray()
Definition Constants.h:51
constexpr int UnusedIndex
Definition Constants.h:32
constexpr int MinNumberOfConcurrentSeeds
Definition Constants.h:39
constexpr int MaxNumberOfConcurrentSeeds
Definition Constants.h:40
constexpr int MaxSelectedTrackletsPerCluster
Definition Constants.h:37
constexpr float Radl
Definition Constants.h:34
constexpr int ClustersPerCell
Definition Constants.h:31
constexpr int GPUBlocks
Definition Constants.h:42
constexpr int GPUThreadsTotal
Definition Constants.h:44
constexpr float Tolerance
Definition Constants.h:30
constexpr int GPUThreads
Definition Constants.h:43
constexpr float GB
Definition Constants.h:27
constexpr float Rho
Definition Constants.h:35
constexpr float UnsetValue
Definition Constants.h:33
constexpr float KB
Definition Constants.h:25
constexpr float MB
Definition Constants.h:26
constexpr bool DoTimeBenchmarks
Definition Constants.h:28
constexpr int MaxIter
Definition Constants.h:36
constexpr bool SaveTimeBenchmarks
Definition Constants.h:29
constexpr float MaxTrackSeedQ2Pt
Definition Constants.h:41
constexpr int NumberOfConcurrentSeeds
Definition Constants.h:38