Project
Loading...
Searching...
No Matches
o2::fit::DigitBlockBase< DigitType, SubDigitTypes > Class Template Reference

#include <DigitBlockBase.h>

Public Types

typedef DigitType Digit_t
 
typedef std::tuple< std::vector< DigitType >, std::vector< SubDigitTypes >... > TupleVecDigitObjs_t
 
typedef boost::mpl::vector< SubDigitTypes... > VecAllSubDigit_t
 
typedef DigitBlockHelper::GetVecSubDigit< VecAllSubDigit_tVecSubDigit_t
 
typedef DigitBlockHelper::GetVecSingleSubDigit< VecAllSubDigit_tVecSingleSubDigit_t
 
typedef DigitBlockHelper::GetSubDigitField< VecSubDigit_t >::vector_type SubDigit_t
 
typedef DigitBlockHelper::GetSubDigitField< VecSingleSubDigit_t >::type SingleSubDigit_t
 

Public Member Functions

 DigitBlockBase (const o2::InteractionRecord &intRec)
 
 DigitBlockBase (const DigitType &digit)
 
 DigitBlockBase ()=default
 
 DigitBlockBase (const DigitBlockBase &other)=default
 
 ~DigitBlockBase ()=default
 
template<typename VecDigit , typename... VecSubDigits>
auto getSubDigits (VecDigit &vecDigits, VecSubDigits &... vecSubDigits) -> std::enable_if_t< sizeof...(VecSubDigits)==sNSubDigits >
 
template<typename... T>
auto getSingleSubDigits (T &... vecSingleSubDigits) -> std::enable_if_t< sizeof...(T)==sNSingleSubDigits >
 
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto getSubDigit (std::tuple< T... > tupleVecSubDigits) -> std::enable_if_t<(N_TOTAL > 1)>
 
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto getSubDigit (std::tuple< T... > tupleVecSubDigits) -> std::enable_if_t<(N_TOTAL==1)>
 
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto getSingleSubDigit (std::tuple< T... > tupleVecSingleSubDigits) -> std::enable_if_t<(N_TOTAL > 1)>
 
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto getSingleSubDigit (std::tuple< T... > tupleVecSingleSubDigits) -> std::enable_if_t<(N_TOTAL==1)>
 
void print () const
 

Static Public Member Functions

template<typename DigitBlockType , typename DigitT , typename SubDigitT >
static auto makeDigitBlock (const std::vector< DigitT > &vecDigits, const std::vector< SubDigitT > &vecSubDigits) -> std::enable_if_t< DigitBlockHelper::GetDigitRefsN< DigitT >::value==1 &&DigitBlockHelper::IsSpecOfType< DigitBlockBase, typename DigitBlockType::DigitBlockBase_t >::value, std::vector< DigitBlockType > >
 
template<typename DigitBlockType , typename DigitT , typename... SubDigitT>
static auto makeDigitBlock (const std::vector< DigitT > &vecDigits, const std::vector< SubDigitT > &... vecSubDigits) -> std::enable_if_t<(DigitBlockHelper::GetDigitRefsN< DigitT >::value > 1) &&(DigitBlockHelper::IsSpecOfType< DigitBlockBase, typename DigitBlockType::DigitBlockBase_t >::value), std::vector< DigitBlockType > >
 
template<std::size_t N, typename DigitT , typename... T>
static void fillSubDigitTuple (const DigitT &digit, const std::tuple< T... > &tupleSrc, std::tuple< T... > &tupleDest)
 

Public Attributes

Digit_t mDigit
 
SubDigit_t mSubDigit
 
SingleSubDigit_t mSingleSubDigit
 

Static Public Attributes

static constexpr std::size_t sNSubDigits = DigitBlockHelper::GetSubDigitField<VecSubDigit_t>::size
 
static constexpr std::size_t sNSingleSubDigits = DigitBlockHelper::GetSubDigitField<VecSingleSubDigit_t>::size
 

Detailed Description

template<typename DigitType, typename... SubDigitTypes>
class o2::fit::DigitBlockBase< DigitType, SubDigitTypes >

Definition at line 159 of file DigitBlockBase.h.

Member Typedef Documentation

◆ Digit_t

template<typename DigitType , typename... SubDigitTypes>
typedef DigitType o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::Digit_t

Definition at line 173 of file DigitBlockBase.h.

◆ SingleSubDigit_t

template<typename DigitType , typename... SubDigitTypes>
typedef DigitBlockHelper::GetSubDigitField<VecSingleSubDigit_t>::type o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::SingleSubDigit_t

Definition at line 179 of file DigitBlockBase.h.

◆ SubDigit_t

template<typename DigitType , typename... SubDigitTypes>
typedef DigitBlockHelper::GetSubDigitField<VecSubDigit_t>::vector_type o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::SubDigit_t

Definition at line 178 of file DigitBlockBase.h.

◆ TupleVecDigitObjs_t

template<typename DigitType , typename... SubDigitTypes>
typedef std::tuple<std::vector<DigitType>, std::vector<SubDigitTypes>...> o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::TupleVecDigitObjs_t

Definition at line 174 of file DigitBlockBase.h.

◆ VecAllSubDigit_t

template<typename DigitType , typename... SubDigitTypes>
typedef boost::mpl::vector<SubDigitTypes...> o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::VecAllSubDigit_t

Definition at line 175 of file DigitBlockBase.h.

◆ VecSingleSubDigit_t

template<typename DigitType , typename... SubDigitTypes>
typedef DigitBlockHelper::GetVecSingleSubDigit<VecAllSubDigit_t> o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::VecSingleSubDigit_t

Definition at line 177 of file DigitBlockBase.h.

◆ VecSubDigit_t

template<typename DigitType , typename... SubDigitTypes>
typedef DigitBlockHelper::GetVecSubDigit<VecAllSubDigit_t> o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::VecSubDigit_t

Definition at line 176 of file DigitBlockBase.h.

Constructor & Destructor Documentation

◆ DigitBlockBase() [1/4]

template<typename DigitType , typename... SubDigitTypes>
o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::DigitBlockBase ( const o2::InteractionRecord intRec)
inline

Definition at line 162 of file DigitBlockBase.h.

◆ DigitBlockBase() [2/4]

template<typename DigitType , typename... SubDigitTypes>
o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::DigitBlockBase ( const DigitType &  digit)
inline

Definition at line 167 of file DigitBlockBase.h.

◆ DigitBlockBase() [3/4]

template<typename DigitType , typename... SubDigitTypes>
o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::DigitBlockBase ( )
default

◆ DigitBlockBase() [4/4]

template<typename DigitType , typename... SubDigitTypes>
o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::DigitBlockBase ( const DigitBlockBase< DigitType, SubDigitTypes > &  other)
default

◆ ~DigitBlockBase()

template<typename DigitType , typename... SubDigitTypes>
o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::~DigitBlockBase ( )
default

Member Function Documentation

◆ fillSubDigitTuple()

template<typename DigitType , typename... SubDigitTypes>
template<std::size_t N, typename DigitT , typename... T>
static void o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::fillSubDigitTuple ( const DigitT &  digit,
const std::tuple< T... > &  tupleSrc,
std::tuple< T... > &  tupleDest 
)
inlinestatic

Definition at line 266 of file DigitBlockBase.h.

◆ getSingleSubDigit() [1/2]

template<typename DigitType , typename... SubDigitTypes>
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::getSingleSubDigit ( std::tuple< T... >  tupleVecSingleSubDigits) -> std::enable_if_t<(N_TOTAL > 1)>
inline

Definition at line 221 of file DigitBlockBase.h.

◆ getSingleSubDigit() [2/2]

template<typename DigitType , typename... SubDigitTypes>
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::getSingleSubDigit ( std::tuple< T... >  tupleVecSingleSubDigits) -> std::enable_if_t<(N_TOTAL == 1)>
inline

Definition at line 229 of file DigitBlockBase.h.

◆ getSingleSubDigits()

template<typename DigitType , typename... SubDigitTypes>
template<typename... T>
auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::getSingleSubDigits ( T &...  vecSingleSubDigits) -> std::enable_if_t<sizeof...(T) == sNSingleSubDigits>
inline

Definition at line 196 of file DigitBlockBase.h.

◆ getSubDigit() [1/2]

template<typename DigitType , typename... SubDigitTypes>
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::getSubDigit ( std::tuple< T... >  tupleVecSubDigits) -> std::enable_if_t<(N_TOTAL > 1)>
inline

Definition at line 205 of file DigitBlockBase.h.

◆ getSubDigit() [2/2]

template<typename DigitType , typename... SubDigitTypes>
template<std::size_t N, std::size_t N_TOTAL, typename... T>
auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::getSubDigit ( std::tuple< T... >  tupleVecSubDigits) -> std::enable_if_t<(N_TOTAL == 1)>
inline

Definition at line 214 of file DigitBlockBase.h.

◆ getSubDigits()

template<typename DigitType , typename... SubDigitTypes>
template<typename VecDigit , typename... VecSubDigits>
auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::getSubDigits ( VecDigit &  vecDigits,
VecSubDigits &...  vecSubDigits 
) -> std::enable_if_t<sizeof...(VecSubDigits) == sNSubDigits>
inline

Definition at line 186 of file DigitBlockBase.h.

◆ makeDigitBlock() [1/2]

template<typename DigitType , typename... SubDigitTypes>
template<typename DigitBlockType , typename DigitT , typename... SubDigitT>
static auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::makeDigitBlock ( const std::vector< DigitT > &  vecDigits,
const std::vector< SubDigitT > &...  vecSubDigits 
) -> std::enable_if_t<(DigitBlockHelper::GetDigitRefsN<DigitT>::value > 1) && (DigitBlockHelper::IsSpecOfType<DigitBlockBase, typename DigitBlockType::DigitBlockBase_t>::value), std::vector<DigitBlockType>>
inlinestatic

Definition at line 253 of file DigitBlockBase.h.

◆ makeDigitBlock() [2/2]

template<typename DigitType , typename... SubDigitTypes>
template<typename DigitBlockType , typename DigitT , typename SubDigitT >
static auto o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::makeDigitBlock ( const std::vector< DigitT > &  vecDigits,
const std::vector< SubDigitT > &  vecSubDigits 
) -> std::enable_if_t<DigitBlockHelper::GetDigitRefsN<DigitT>::value == 1 && DigitBlockHelper::IsSpecOfType<DigitBlockBase, typename DigitBlockType::DigitBlockBase_t>::value, std::vector<DigitBlockType>>
inlinestatic

Definition at line 235 of file DigitBlockBase.h.

◆ print()

template<typename DigitType , typename... SubDigitTypes>
void o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::print ( ) const
inline

Definition at line 280 of file DigitBlockBase.h.

Member Data Documentation

◆ mDigit

template<typename DigitType , typename... SubDigitTypes>
Digit_t o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::mDigit

Definition at line 182 of file DigitBlockBase.h.

◆ mSingleSubDigit

template<typename DigitType , typename... SubDigitTypes>
SingleSubDigit_t o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::mSingleSubDigit

Definition at line 184 of file DigitBlockBase.h.

◆ mSubDigit

template<typename DigitType , typename... SubDigitTypes>
SubDigit_t o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::mSubDigit

Definition at line 183 of file DigitBlockBase.h.

◆ sNSingleSubDigits

template<typename DigitType , typename... SubDigitTypes>
constexpr std::size_t o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::sNSingleSubDigits = DigitBlockHelper::GetSubDigitField<VecSingleSubDigit_t>::size
staticconstexpr

Definition at line 181 of file DigitBlockBase.h.

◆ sNSubDigits

template<typename DigitType , typename... SubDigitTypes>
constexpr std::size_t o2::fit::DigitBlockBase< DigitType, SubDigitTypes >::sNSubDigits = DigitBlockHelper::GetSubDigitField<VecSubDigit_t>::size
staticconstexpr

Definition at line 180 of file DigitBlockBase.h.


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