ATLAS Offline Software
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
ElasticDecayUtil< IsDebug > Struct Template Reference

#include <ElasticDecayUtil.h>

Collaboration diagram for ElasticDecayUtil< IsDebug >:

Classes

struct  Empty
 

Public Types

enum  ParticleTypes {
  kNoSibling, kElectron, kPhoton, kOther,
  kNParticleTypes
}
 

Public Member Functions

const xAOD::TruthParticlegetMother (const xAOD::TruthParticle &truth_particle, float max_energy_loss) const
 follow decay chain upwards assuming quasi elastic processes. More...
 
template<class T_OutStream >
void dumpStatistics (T_OutStream &out) const
 
void setEnergyLossBinning (const typename std::conditional< IsDebug, std::vector< float >, EmptyProperty >::type &binning)
 

Public Attributes

std::conditional< IsDebug, std::mutex, Empty >::type m_mutex ATLAS_THREAD_SAFE
 
std::conditional< IsDebug, std::set< int >, Empty >::type m_outgoingPdgIds ATLAS_THREAD_SAFE
 
std::conditional< IsDebug, std::set< int >, Empty >::type m_outgoingMotherPdgIds ATLAS_THREAD_SAFE
 PDG IDs of parents. More...
 
std::conditional< IsDebug, std::array< ActsUtils::StatHist, kNParticleTypes >, Empty >::type m_energyLossStat ATLAS_THREAD_SAFE
 energy less per vertex. More...
 
std::conditional< IsDebug, ActsUtils::StatHist, Empty >::type m_nParentsStat ATLAS_THREAD_SAFE {20,-.5,20.-.5}
 

Detailed Description

template<bool IsDebug = false>
struct ElasticDecayUtil< IsDebug >

Definition at line 30 of file ElasticDecayUtil.h.

Member Enumeration Documentation

◆ ParticleTypes

template<bool IsDebug = false>
enum ElasticDecayUtil::ParticleTypes
Enumerator
kNoSibling 
kElectron 
kPhoton 
kOther 
kNParticleTypes 

Definition at line 58 of file ElasticDecayUtil.h.

58  {
59  kNoSibling,
60  kElectron,
61  kPhoton,
62  kOther,
64  };

Member Function Documentation

◆ dumpStatistics()

template<bool IsDebug = false>
template<class T_OutStream >
void ElasticDecayUtil< IsDebug >::dumpStatistics ( T_OutStream &  out) const

◆ getMother()

template<bool IsDebug = false>
const xAOD::TruthParticle* ElasticDecayUtil< IsDebug >::getMother ( const xAOD::TruthParticle truth_particle,
float  max_energy_loss 
) const

follow decay chain upwards assuming quasi elastic processes.

Parameters
truth_particlethe truth particle to follow which must not be nullptr.
max_energy_lossif the energy loss is larger than this stop following the particle.
Returns
a pointer to the top most particle of the quasi elastic decay chain Follow the decay chain upwards if the process is quasi elastic i.e. one parent of same PDG id, at most one sibling. If IsDebug is true some histograms are filled and some statistics is gathered.

◆ setEnergyLossBinning()

template<bool IsDebug = false>
void ElasticDecayUtil< IsDebug >::setEnergyLossBinning ( const typename std::conditional< IsDebug, std::vector< float >, EmptyProperty >::type &  binning)

Member Data Documentation

◆ ATLAS_THREAD_SAFE [1/5]

template<bool IsDebug = false>
std::conditional<IsDebug,std::mutex,Empty>::type m_mutex ElasticDecayUtil< IsDebug >::ATLAS_THREAD_SAFE
mutable

Definition at line 51 of file ElasticDecayUtil.h.

◆ ATLAS_THREAD_SAFE [2/5]

template<bool IsDebug = false>
std::conditional<IsDebug,std::set<int>, Empty>::type m_outgoingPdgIds ElasticDecayUtil< IsDebug >::ATLAS_THREAD_SAFE
mutable

Definition at line 54 of file ElasticDecayUtil.h.

◆ ATLAS_THREAD_SAFE [3/5]

template<bool IsDebug = false>
std::conditional<IsDebug,std::set<int>, Empty>::type m_outgoingMotherPdgIds ElasticDecayUtil< IsDebug >::ATLAS_THREAD_SAFE
mutable

PDG IDs of parents.

Definition at line 57 of file ElasticDecayUtil.h.

◆ ATLAS_THREAD_SAFE [4/5]

template<bool IsDebug = false>
std::conditional<IsDebug,std::array<ActsUtils::StatHist,kNParticleTypes>, Empty>::type m_energyLossStat ElasticDecayUtil< IsDebug >::ATLAS_THREAD_SAFE
mutable

energy less per vertex.

Definition at line 66 of file ElasticDecayUtil.h.

◆ ATLAS_THREAD_SAFE [5/5]

template<bool IsDebug = false>
std::conditional<IsDebug,ActsUtils::StatHist,Empty>::type m_nParentsStat ElasticDecayUtil< IsDebug >::ATLAS_THREAD_SAFE {20,-.5,20.-.5}
mutable

Definition at line 69 of file ElasticDecayUtil.h.


The documentation for this struct was generated from the following file:
ElasticDecayUtil::kOther
@ kOther
Definition: ElasticDecayUtil.h:62
ElasticDecayUtil::kPhoton
@ kPhoton
Definition: ElasticDecayUtil.h:61
ElasticDecayUtil::kElectron
@ kElectron
Definition: ElasticDecayUtil.h:60
ElasticDecayUtil::kNParticleTypes
@ kNParticleTypes
Definition: ElasticDecayUtil.h:63
ElasticDecayUtil::kNoSibling
@ kNoSibling
Definition: ElasticDecayUtil.h:59