#include <Rtypes.h>#include <TError.h>#include <algorithm>#include <cmath>#include <cstring>#include <limits>#include <new>#include <numeric>#include <sstream>#include <stdexcept>#include <string>#include <tuple>#include <type_traits>#include <utility>#include <vector>Classes | |
| class | ROOT::VecOps::RVec< T > |
| A "std::vector"-like collection of values implementing handy operation to analyse them. More... | |
| class | ROOT::Detail::VecOps::RVecImpl< T > |
| This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. More... | |
| struct | ROOT::Internal::VecOps::RVecInlineStorageSize< T > |
| The size of the inline storage of an RVec. More... | |
| class | ROOT::VecOps::RVecN< T, N > |
| struct | ROOT::Internal::VecOps::SmallVectorAlignmentAndSize< T > |
| Used to figure out the offset of the first element of an RVec. More... | |
| class | ROOT::Internal::VecOps::SmallVectorBase |
| This is all the stuff common to all SmallVectors. More... | |
| struct | ROOT::Internal::VecOps::SmallVectorStorage< T, N > |
| Storage for the SmallVector elements. More... | |
| struct | ROOT::Internal::VecOps::SmallVectorStorage< T, 0 > |
| We need the storage to be properly aligned even for small-size of 0 so that the pointer math in SmallVectorTemplateCommon::getFirstEl() is well-defined. More... | |
| class | ROOT::Internal::VecOps::SmallVectorTemplateBase< T, bool > |
| SmallVectorTemplateBase<TriviallyCopyable = false> - This is where we put method implementations that are designed to work with non-trivial T's. More... | |
| class | ROOT::Internal::VecOps::SmallVectorTemplateBase< T, true > |
| SmallVectorTemplateBase<TriviallyCopyable = true> - This is where we put method implementations that are designed to work with trivially copyable T's. More... | |
| class | ROOT::Internal::VecOps::SmallVectorTemplateCommon< T > |
| This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. More... | |
Namespaces | |
| namespace | ROOT |
| tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tbb::task_arena without forward declaring tbb::interface7 | |
| namespace | ROOT::Detail |
| Special implementation of ROOT::RRangeCast for TCollection, including a check that the cast target type inherits from TObject and a new constructor that takes the TCollection by pointer. | |
| namespace | ROOT::Detail::VecOps |
| namespace | ROOT::Internal |
| namespace | ROOT::Internal::VecOps |
| namespace | ROOT::VecOps |
Macros | |
| #define | _VECOPS_USE_EXTERN_TEMPLATES true |
| #define | R__RVEC_NODISCARD |
RVec Unary Arithmetic Operators | |
| #define | RVEC_UNARY_OPERATOR(OP) |
RVec Binary Arithmetic Operators | |
| #define | ERROR_MESSAGE(OP) "Cannot call operator " #OP " on vectors of different sizes." |
| #define | RVEC_BINARY_OPERATOR(OP) |
RVec Assignment Arithmetic Operators | |
| #define | RVEC_ASSIGNMENT_OPERATOR(OP) |
RVec Comparison and Logical Operators | |
| #define | RVEC_LOGICAL_OPERATOR(OP) |
RVec Standard Mathematical Functions | |
| #define | RVEC_BINARY_FUNCTION(NAME, FUNC) |
| #define | RVEC_STD_BINARY_FUNCTION(F) RVEC_BINARY_FUNCTION(F, std::F) |
| #define | RVEC_STD_UNARY_FUNCTION(F) RVEC_UNARY_FUNCTION(F, std::F) |
| #define | RVEC_UNARY_FUNCTION(NAME, FUNC) |
Typedefs | |
| template<typename T > | |
| using | ROOT::Internal::VecOps::RVec = ROOT::VecOps::RVec< T > |
| using | ROOT::RVecB = ROOT::VecOps::RVec< bool > |
| using | ROOT::RVecC = ROOT::VecOps::RVec< char > |
| using | ROOT::RVecD = ROOT::VecOps::RVec< double > |
| using | ROOT::RVecF = ROOT::VecOps::RVec< float > |
| using | ROOT::RVecI = ROOT::VecOps::RVec< int > |
| using | ROOT::RVecL = ROOT::VecOps::RVec< long int > |
| using | ROOT::RVecLL = ROOT::VecOps::RVec< long long int > |
| using | ROOT::RVecU = ROOT::VecOps::RVec< unsigned int > |
| using | ROOT::RVecUL = ROOT::VecOps::RVec< unsigned long int > |
| using | ROOT::RVecULL = ROOT::VecOps::RVec< unsigned long long int > |
Functions | |
| template<typename T > | |
| auto | ROOT::VecOps::All (const RVec< T > &v) -> decltype(v[0]==false) |
| Return true if all of the elements equate to true, return false otherwise. | |
| template<typename T > | |
| auto | ROOT::VecOps::Any (const RVec< T > &v) -> decltype(v[0]==true) |
| Return true if any of the elements equates to true, return false otherwise. | |
| template<typename T > | |
| std::size_t | ROOT::VecOps::ArgMax (const RVec< T > &v) |
| Get the index of the greatest element of an RVec In case of multiple occurrences of the maximum values, the index corresponding to the first occurrence is returned. | |
| template<typename T > | |
| std::size_t | ROOT::VecOps::ArgMin (const RVec< T > &v) |
| Get the index of the smallest element of an RVec In case of multiple occurrences of the minimum values, the index corresponding to the first occurrence is returned. | |
| template<typename T > | |
| RVec< typename RVec< T >::size_type > | ROOT::VecOps::Argsort (const RVec< T > &v) |
| Return an RVec of indices that sort the input RVec. | |
| template<typename T , typename Compare > | |
| RVec< typename RVec< T >::size_type > | ROOT::VecOps::Argsort (const RVec< T > &v, Compare &&c) |
| Return an RVec of indices that sort the input RVec based on a comparison function. | |
| template<typename T , unsigned N> | |
| size_t | ROOT::VecOps::CapacityInBytes (const RVecN< T, N > &X) |
| template<typename T > | |
| RVec< RVec< typename RVec< T >::size_type > > | ROOT::VecOps::Combinations (const RVec< T > &v, const typename RVec< T >::size_type n) |
| Return the indices that represent all unique combinations of the elements of a given RVec. | |
| template<typename T1 , typename T2 > | |
| RVec< RVec< typename RVec< T1 >::size_type > > | ROOT::VecOps::Combinations (const RVec< T1 > &v1, const RVec< T2 > &v2) |
| Return the indices that represent all combinations of the elements of two RVecs. | |
| RVec< RVec< std::size_t > > | ROOT::VecOps::Combinations (const std::size_t size1, const std::size_t size2) |
| Return the indices that represent all combinations of the elements of two RVecs. | |
| template<typename T0 , typename T1 , typename Common_t = typename std::common_type<T0, T1>::type> | |
| RVec< Common_t > | ROOT::VecOps::Concatenate (const RVec< T0 > &v0, const RVec< T1 > &v1) |
| Return the concatenation of two RVecs. | |
| template<typename T , typename... Args_t> | |
| RVec< T > | ROOT::VecOps::Construct (const RVec< Args_t > &... args) |
| Build an RVec of objects starting from RVecs of input to their constructors. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::DeltaPhi (const RVec< T > &v1, const RVec< T > &v2, const T c=M_PI) |
| Return the angle difference \(\Delta \phi\) in radians of two vectors. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::DeltaPhi (const RVec< T > &v1, T v2, const T c=M_PI) |
| Return the angle difference \(\Delta \phi\) in radians of a vector and a scalar. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::DeltaPhi (T v1, const RVec< T > &v2, const T c=M_PI) |
| Return the angle difference \(\Delta \phi\) in radians of a scalar and a vector. | |
| template<typename T > | |
| T | ROOT::VecOps::DeltaPhi (T v1, T v2, const T c=M_PI) |
| Return the angle difference \(\Delta \phi\) of two scalars. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::DeltaR (const RVec< T > &eta1, const RVec< T > &eta2, const RVec< T > &phi1, const RVec< T > &phi2, const T c=M_PI) |
| Return the distance on the \(\eta\)- \(\phi\) plane ( \(\Delta R\)) from the collections eta1, eta2, phi1 and phi2. | |
| template<typename T > | |
| T | ROOT::VecOps::DeltaR (T eta1, T eta2, T phi1, T phi2, const T c=M_PI) |
| Return the distance on the \(\eta\)- \(\phi\) plane ( \(\Delta R\)) from the scalars eta1, eta2, phi1 and phi2. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::DeltaR2 (const RVec< T > &eta1, const RVec< T > &eta2, const RVec< T > &phi1, const RVec< T > &phi2, const T c=M_PI) |
| Return the square of the distance on the \(\eta\)- \(\phi\) plane ( \(\Delta R\)) from the collections eta1, eta2, phi1 and phi2. | |
| template<typename T , typename V > | |
| auto | ROOT::VecOps::Dot (const RVec< T > &v0, const RVec< V > &v1) -> decltype(v0[0] *v1[0]) |
| Inner product. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Drop (const RVec< T > &v, RVec< typename RVec< T >::size_type > idxs) |
| Return a copy of the container without the elements at the specified indices. | |
| template<typename T , typename F > | |
| RVec< T > | ROOT::VecOps::Filter (const RVec< T > &v, F &&f) |
| Create a new collection with the elements passing the filter expressed by the predicate. | |
| template<typename... T> | |
| std::size_t | ROOT::Internal::VecOps::GetVectorsSize (const std::string &id, const RVec< T > &... vs) |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Intersect (const RVec< T > &v1, const RVec< T > &v2, bool v2_is_sorted=false) |
| Return the intersection of elements of two RVecs. | |
| template<typename T > | |
| T | ROOT::VecOps::InvariantMass (const RVec< T > &pt, const RVec< T > &eta, const RVec< T > &phi, const RVec< T > &mass) |
| Return the invariant mass of multiple particles given the collections of the quantities transverse momentum (pt), rapidity (eta), azimuth (phi) and mass. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::InvariantMasses (const RVec< T > &pt1, const RVec< T > &eta1, const RVec< T > &phi1, const RVec< T > &mass1, const RVec< T > &pt2, const RVec< T > &eta2, const RVec< T > &phi2, const RVec< T > &mass2) |
| Return the invariant mass of two particles given the collections of the quantities transverse momentum (pt), rapidity (eta), azimuth (phi) and mass. | |
| template<typename T > | |
| bool | ROOT::Detail::VecOps::IsAdopting (const ROOT::VecOps::RVec< T > &v) |
| template<typename T > | |
| bool | ROOT::Detail::VecOps::IsSmall (const ROOT::VecOps::RVec< T > &v) |
| template<typename... Args> | |
| auto | ROOT::VecOps::Map (Args &&... args) |
| Create new collection applying a callable to the elements of the input collection. | |
| template<typename Tuple_t , std::size_t... Is> | |
| auto | ROOT::Internal::VecOps::MapFromTuple (Tuple_t &&t, std::index_sequence< Is... >) -> decltype(MapImpl(std::get< std::tuple_size< Tuple_t >::value - 1 >(t), std::get< Is >(t)...)) |
| template<typename F , typename... T> | |
| auto | ROOT::Internal::VecOps::MapImpl (F &&f, const RVec< T > &... vs) -> RVec< decltype(f(vs[0]...))> |
| template<typename T > | |
| T | ROOT::VecOps::Max (const RVec< T > &v) |
| Get the greatest element of an RVec. | |
| template<typename T > | |
| double | ROOT::VecOps::Mean (const RVec< T > &v) |
| Get the mean of the elements of an RVec. | |
| template<typename T , typename R = T> | |
| R | ROOT::VecOps::Mean (const RVec< T > &v, const R zero) |
| Get the mean of the elements of an RVec with custom initial value. | |
| template<typename T > | |
| T | ROOT::VecOps::Min (const RVec< T > &v) |
| Get the smallest element of an RVec. | |
| uint64_t | ROOT::Internal::VecOps::NextPowerOf2 (uint64_t A) |
| Return the next power of two (in 64-bits) that is strictly greater than A. | |
| template<typename T > | |
| RVec< typename RVec< T >::size_type > | ROOT::VecOps::Nonzero (const RVec< T > &v) |
| Return the indices of the elements which are not zero. | |
| template<class T > | |
| std::ostream & | ROOT::VecOps::operator<< (std::ostream &os, const RVec< T > &v) |
| Print a RVec at the prompt: | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Reverse (const RVec< T > &v) |
| Return copy of reversed vector. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Sort (const RVec< T > &v) |
| Return copy of RVec with elements sorted in ascending order. | |
| template<typename T , typename Compare > | |
| RVec< T > | ROOT::VecOps::Sort (const RVec< T > &v, Compare &&c) |
| Return copy of RVec with elements sorted based on a comparison operator. | |
| template<typename T > | |
| RVec< typename RVec< T >::size_type > | ROOT::VecOps::StableArgsort (const RVec< T > &v) |
| Return an RVec of indices that sort the input RVec while keeping the order of equal elements. | |
| template<typename T , typename Compare > | |
| RVec< typename RVec< T >::size_type > | ROOT::VecOps::StableArgsort (const RVec< T > &v, Compare &&c) |
| Return an RVec of indices that sort the input RVec based on a comparison function while keeping the order of equal elements. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::StableSort (const RVec< T > &v) |
| Return copy of RVec with elements sorted in ascending order while keeping the order of equal elements. | |
| template<typename T , typename Compare > | |
| RVec< T > | ROOT::VecOps::StableSort (const RVec< T > &v, Compare &&c) |
| Return copy of RVec with elements sorted based on a comparison operator while keeping the order of equal elements. | |
| template<typename T > | |
| double | ROOT::VecOps::StdDev (const RVec< T > &v) |
| Get the standard deviation of the elements of an RVec. | |
| template<typename T , typename R = T> | |
| R | ROOT::VecOps::Sum (const RVec< T > &v, const R zero=R(0)) |
| Sum elements of an RVec. | |
| template<typename T > | |
| void | ROOT::VecOps::swap (RVec< T > &lhs, RVec< T > &rhs) |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Take (const RVec< T > &v, const int n) |
Return first or last n elements of an RVec. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Take (const RVec< T > &v, const RVec< typename RVec< T >::size_type > &i) |
| Return elements of a vector at given indices. | |
| template<typename T > | |
| double | ROOT::VecOps::Var (const RVec< T > &v) |
| Get the variance of the elements of an RVec. | |
| template<typename T , bool TriviallyCopyable> | |
| ROOT::Internal::VecOps::void (off) SmallVectorTemplateBase< T | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Where (const RVec< int > &c, const RVec< T > &v1, const RVec< T > &v2) |
| Return the elements of v1 if the condition c is true and v2 if the condition c is false. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Where (const RVec< int > &c, const RVec< T > &v1, typename RVec< T >::value_type v2) |
| Return the elements of v1 if the condition c is true and sets the value v2 if the condition c is false. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Where (const RVec< int > &c, T v1, T v2) |
| Return a vector with the value v2 if the condition c is false and sets the value v1 if the condition c is true. | |
| template<typename T > | |
| RVec< T > | ROOT::VecOps::Where (const RVec< int > &c, typename RVec< T >::value_type v1, const RVec< T > &v2) |
| Return the elements of v2 if the condition c is false and sets the value v1 if the condition c is true. | |