Hydra  4.0.1
A header-only templated C++ framework to perform data analysis on massively parallel platforms.
hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS > Struct Template Reference

#include <EvalMothers.h>

Collaboration diagram for hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >:

Public Types

typedef hydra::thrust::tuple< FUNCTOR, FUNCTORS... > functors_tuple_type
 
typedef hydra::detail::tuple_cat_type< hydra::thrust::tuple< GReal_t >, return_tuple_type >::type result_tuple_type
 
typedef hydra::thrust::tuple< typename FUNCTOR::return_type, typename FUNCTORS::return_type... > return_tuple_type
 

Public Member Functions

 EvalMothers (const GReal_t(&masses)[N], double maxweight, double ecm, size_t seed, FUNCTOR const &functor, FUNCTORS const &...functors)
 
 EvalMothers (EvalMothers< N, GRND, FUNCTOR, FUNCTORS... > const &other)
 
__hydra_host__ __hydra_device__ void bbsort (GReal_t *array, GInt_t n)
 
template<typename Tuple >
__hydra_host__ __hydra_device__ result_tuple_type operator() (Tuple &particles)
 
__hydra_host__ __hydra_device__ GReal_t process (const GInt_t evt, Vector4R(&particles)[N+1])
 

Static Public Member Functions

__hydra_host__ __hydra_device__ static constexpr size_t hash (const size_t a, const size_t b)
 
__hydra_host__ static __hydra_device__ GReal_t pdk (const GReal_t a, const GReal_t b, const GReal_t c)
 

Data Fields

GReal_t fECM
 
functors_tuple_type fFunctors
 
GReal_t fMasses [N]
 
GReal_t fMaxWeight
 
size_t fSeed
 

Detailed Description

template<size_t N, typename GRND, typename FUNCTOR, typename ... FUNCTORS>
struct hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >

Member Typedef Documentation

◆ functors_tuple_type

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
typedef hydra::thrust::tuple<FUNCTOR,FUNCTORS...> hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::functors_tuple_type

◆ result_tuple_type

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
typedef hydra::detail::tuple_cat_type<hydra::thrust::tuple<GReal_t> , return_tuple_type>::type hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::result_tuple_type

◆ return_tuple_type

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
typedef hydra::thrust::tuple<typename FUNCTOR::return_type, typename FUNCTORS::return_type...> hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::return_tuple_type

Constructor & Destructor Documentation

◆ EvalMothers() [1/2]

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::EvalMothers ( const GReal_t(&)  masses[N],
double  maxweight,
double  ecm,
size_t  seed,
FUNCTOR const &  functor,
FUNCTORS const &...  functors 
)
inline

◆ EvalMothers() [2/2]

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::EvalMothers ( EvalMothers< N, GRND, FUNCTOR, FUNCTORS... > const &  other)
inline

Member Function Documentation

◆ bbsort()

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
__hydra_host__ __hydra_device__ void hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::bbsort ( GReal_t array,
GInt_t  n 
)
inline

◆ hash()

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
__hydra_host__ __hydra_device__ static constexpr size_t hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::hash ( const size_t  a,
const size_t  b 
)
inlinestatic

◆ operator()()

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
template<typename Tuple >
__hydra_host__ __hydra_device__ result_tuple_type hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::operator() ( Tuple &  particles)
inline

◆ pdk()

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
__hydra_host__ static __hydra_device__ GReal_t hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::pdk ( const GReal_t  a,
const GReal_t  b,
const GReal_t  c 
)
inlinestatic

◆ process()

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
__hydra_host__ __hydra_device__ GReal_t hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::process ( const GInt_t  evt,
Vector4R(&)  particles[N+1] 
)
inline

Field Documentation

◆ fECM

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
GReal_t hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::fECM

◆ fFunctors

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
functors_tuple_type hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::fFunctors

◆ fMasses

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
GReal_t hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::fMasses[N]

◆ fMaxWeight

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
GReal_t hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::fMaxWeight

◆ fSeed

template<size_t N, typename GRND , typename FUNCTOR , typename ... FUNCTORS>
size_t hydra::detail::EvalMothers< N, GRND, FUNCTOR, FUNCTORS >::fSeed

The documentation for this struct was generated from the following file: