hep-mc  0.8
Public Types | Public Member Functions | List of all members
hep::multi_channel_integrand< T, F, M, distributions > Class Template Reference

Detailed Description

template<typename T, typename F, typename M, bool distributions>
class hep::multi_channel_integrand< T, F, M, distributions >

Class representing a function that can be integrated using the multi channel algorithms.

Inheritance diagram for hep::multi_channel_integrand< T, F, M, distributions >:
hep::integrand< T, F, distributions >

Public Types

using map_type = M
 
- Public Types inherited from hep::integrand< T, F, distributions >
using numeric_type = T
 
using function_type = F
 

Public Member Functions

template<typename G , typename N >
 multi_channel_integrand (G &&function, std::size_t dimensions, N &&map, std::size_t map_dimensions, std::size_t channels, std::vector< distribution_parameters< T >> const &parameters)
 
map_typemap ()
 
std::size_t map_dimensions () const
 
std::size_t channels () const
 
- Public Member Functions inherited from hep::integrand< T, F, distributions >
template<typename G >
 integrand (G &&function, std::size_t dimensions, std::vector< distribution_parameters< T >> const &parameters)
 
std::size_t dimensions () const
 
F & function ()
 
std::vector< distribution_parameters< T > > const & parameters () const
 

Additional Inherited Members

- Static Public Attributes inherited from hep::integrand< T, F, distributions >
static constexpr bool has_distributions = distributions
 

Member Typedef Documentation

◆ map_type

template<typename T , typename F , typename M , bool distributions>
using hep::multi_channel_integrand< T, F, M, distributions >::map_type = M

Type of the density function.

Constructor & Destructor Documentation

◆ multi_channel_integrand()

template<typename T , typename F , typename M , bool distributions>
template<typename G , typename N >
hep::multi_channel_integrand< T, F, M, distributions >::multi_channel_integrand ( G &&  function,
std::size_t  dimensions,
N &&  map,
std::size_t  map_dimensions,
std::size_t  channels,
std::vector< distribution_parameters< T >> const &  parameters 
)
inline

Constructor. Instead of using the constructor directly you should consider using one of the helper functions make_multi_channel_integrand.

Member Function Documentation

◆ channels()

template<typename T , typename F , typename M , bool distributions>
std::size_t hep::multi_channel_integrand< T, F, M, distributions >::channels ( ) const
inline

Returns the number of channels.

◆ map()

template<typename T , typename F , typename M , bool distributions>
map_type& hep::multi_channel_integrand< T, F, M, distributions >::map ( )
inline

Returns the density functions.

◆ map_dimensions()

template<typename T , typename F , typename M , bool distributions>
std::size_t hep::multi_channel_integrand< T, F, M, distributions >::map_dimensions ( ) const
inline

Returns the size of the vector the mappings map onto.