Classes | |
struct | MakeArray |
struct | MakeArray< T, N, 0 > |
Functions | |
constexpr unsigned int | findIndex (const reco::TrackBase::TrackAlgorithm algo, const unsigned int index) |
template<typename T , size_t N> | |
constexpr std::array< T, N > | makeArray () |
constexpr unsigned int | priorityForAlgo (const reco::TrackBase::TrackAlgorithm algo) |
Variables | |
constexpr reco::TrackBase::TrackAlgorithm | algoPriorityOrder [] |
To obtain the priority order, please use the TrackAlgoPriorityOrder class instead. This header is internal to it, and exists in a separate file only to allow a unit test to be run.
The trackAlgoPriorityOrder maps an reco::TrackBase::TrackAlgorithm enumerator to its priority in track list merging. The mapping is needed because the order of the enumerators themselves does not, in general, convey useful information.
constexpr unsigned int impl::findIndex | ( | const reco::TrackBase::TrackAlgorithm | algo, |
const unsigned int | index | ||
) |
Recursive implementation of searching the index of an algorithm in the algoPriorityOrder
algo | Algorithm whose index is searched for |
index | Current index |
Definition at line 86 of file trackAlgoPriorityOrder.h.
References algoPriorityOrder.
Referenced by priorityForAlgo().
Create compile-time an std::array mapping reco::TrackBase::TrackAlgorithm enumerators to their order priorities as defined in impl::algoPriorityOrder array.
T | value_type of the std::array |
N | Size of the std::array |
Definition at line 147 of file trackAlgoPriorityOrder.h.
References impl::MakeArray< T, N, I >::value().
constexpr unsigned int impl::priorityForAlgo | ( | const reco::TrackBase::TrackAlgorithm | algo | ) |
Find the order priority for a track algorithm
algo | algorithm whose index is searched for |
Definition at line 101 of file trackAlgoPriorityOrder.h.
References findIndex().
Referenced by impl::MakeArray< T, N, I >::value().
constexpr reco::TrackBase::TrackAlgorithm impl::algoPriorityOrder[] |
This array defines the priority order in merging for the algorithms. The order is ascending, i.e. the first algorithm has the highest priority etc. The size of the array should be reco::TrackBase:algoSize (checked below with static_assert), and each reco::TrackBase::TrackAlgorithm enumerator should be in the array exactly once (checked below in findIndex() function).
Definition at line 28 of file trackAlgoPriorityOrder.h.
Referenced by findIndex().