1 #ifndef RecoTracker_FinalTrackSelectors_trackAlgoPriorityOrder_h 2 #define RecoTracker_FinalTrackSelectors_trackAlgoPriorityOrder_h 77 static_assert(
reco::TrackBase::algoSize ==
sizeof(algoPriorityOrder)/
sizeof(
unsigned int),
"Please update me too after adding new enumerators to reco::TrackBase::TrackAlgorithm");
89 (algo == algoPriorityOrder[
index] ? index :
findIndex(algo, index+1)) :
90 throw "Index out of bounds, this means that some reco::TrackBase::TrackAlgorithm enumerator is missing from impl::algoPriorityOrder array.";
122 template <
typename T,
size_t N,
size_t I>
124 template <
typename ...Args>
134 template <
typename T,
size_t N>
136 template <
typename ...Args>
139 return std::array<T, N>{{std::forward<Args>(
args)...}};
152 template <
typename T,
size_t N>
167 #endif // DataFormats_TrackReco_trackAlgoPriorityOrder_h
static std::array< T, N > value(Args &&...args)
std::array< T, N > makeArray()
unsigned int findIndex(const reco::TrackBase::TrackAlgorithm algo, const unsigned int index)
unsigned int priorityForAlgo(const reco::TrackBase::TrackAlgorithm algo)
TrackAlgorithm
track algorithm
const std::complex< double > I
static std::array< T, N > value(Args &&...args)
std::array< unsigned int, reco::TrackBase::algoSize > trackAlgoPriorityOrder
reco::TrackBase::TrackAlgorithm algoPriorityOrder[]