5#ifndef ELASTICDECAYUTIL_H
6#define ELASTICDECAYUTIL_H 1
13#include <initializer_list>
19 template <
typename... T_Args>
22 template <
typename T_Arg1,
typename T_Arg2,
typename... T_Args>
23 EmptyProperty(T_Arg1, T_Arg2, std::initializer_list<int> &&, T_Args... ) {}
24 template <
typename T_Arg1,
typename T_Arg2,
typename... T_Args>
25 EmptyProperty(T_Arg1, T_Arg2, std::initializer_list<double> &&, T_Args... ) {}
29template <
bool IsDebug=false>
41 template <
class T_OutStream>
48 template <
typename... T_Args>
51 mutable typename std::conditional<IsDebug,std::mutex,Empty>::type m_mutex
ATLAS_THREAD_SAFE;
69 mutable typename std::conditional<IsDebug,ActsUtils::StatHist,Empty>::type m_nParentsStat
ATLAS_THREAD_SAFE {20,-.5,20.-.5};
Define macros for attributes used to control the static checker.
TruthParticle_v1 TruthParticle
Typedef to implementation.
std::conditional< IsDebug, std::mutex, Empty >::type m_mutex ATLAS_THREAD_SAFE
void dumpStatistics(T_OutStream &out) const
const xAOD::TruthParticle * getMother(const xAOD::TruthParticle &truth_particle, float max_energy_loss) const
follow decay chain upwards assuming quasi elastic processes.
void setEnergyLossBinning(const typename std::conditional< IsDebug, std::vector< float >, EmptyProperty >::type &binning)
const EmptyProperty & value()
EmptyProperty(T_Arg1, T_Arg2, std::initializer_list< int > &&, T_Args...)
EmptyProperty(T_Arg1, T_Arg2, std::initializer_list< double > &&, T_Args...)