Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ZDCTriggerSimData< T, NData, NBits, Type > Class Template Reference

#include <ZDCTriggerSim.h>

Inheritance diagram for ZDCTriggerSimData< T, NData, NBits, Type >:
Collaboration diagram for ZDCTriggerSimData< T, NData, NBits, Type >:

Public Member Functions

 ZDCTriggerSimData ()
 
 ZDCTriggerSimData (const std::vector< float > &conversionFactors)
 
virtual ~ZDCTriggerSimData () override
 
unsigned int getNumBits () const override
 
unsigned int getNumData () const override
 
virtual ZDCTriggerSim::DataType getType () const override
 
virtual unsigned int getValueTrunc (unsigned int idx=0) const override
 
void setDatum (T datum)
 
void setData (const std::vector< T > &inData)
 
void clearData ()
 
virtual void dump (std::ostream &strm) const override
 

Private Member Functions

unsigned int doConvTrunc (const T &inValue) const
 

Private Attributes

bool m_doConvert {}
 
std::vector< float > m_convertFactors
 
std::vector< T > m_data
 
bool m_haveData {}
 

Detailed Description

template<typename T, unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
class ZDCTriggerSimData< T, NData, NBits, Type >

Definition at line 58 of file ZDCTriggerSim.h.

Constructor & Destructor Documentation

◆ ZDCTriggerSimData() [1/2]

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
ZDCTriggerSimData< T, NData, NBits, Type >::ZDCTriggerSimData ( )
inline

Definition at line 80 of file ZDCTriggerSim.h.

81  : m_doConvert(false), m_data(NData, 0), m_haveData(false) {
82  static_assert(NData > 0, "ZDCTriggerSimData requires at least one datum");
83  static_assert(NBits > 0, "ZDCTriggerSimData requires at least 1 bit");
84  }

◆ ZDCTriggerSimData() [2/2]

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
ZDCTriggerSimData< T, NData, NBits, Type >::ZDCTriggerSimData ( const std::vector< float > &  conversionFactors)
inline

Definition at line 86 of file ZDCTriggerSim.h.

87  : m_doConvert(true),
88  m_convertFactors(conversionFactors),
89  m_data(NData, 0),
90  m_haveData(false) {
91  static_assert(NData > 0, "ZDCTriggerSimData requires at least one datum");
92  static_assert(NBits > 0, "ZDCTriggerSimData requires at least 1 bit");
93  }

◆ ~ZDCTriggerSimData()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
virtual ZDCTriggerSimData< T, NData, NBits, Type >::~ZDCTriggerSimData ( )
inlineoverridevirtual

Definition at line 95 of file ZDCTriggerSim.h.

95 {}

Member Function Documentation

◆ clearData()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
void ZDCTriggerSimData< T, NData, NBits, Type >::clearData ( )
inline

Definition at line 121 of file ZDCTriggerSim.h.

121 { m_haveData = false; }

◆ doConvTrunc()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
unsigned int ZDCTriggerSimData< T, NData, NBits, Type >::doConvTrunc ( const T &  inValue) const
inlineprivate

Definition at line 65 of file ZDCTriggerSim.h.

65  {
66  unsigned int value = inValue;
67 
68  if (m_doConvert) {
69  value = std::floor(inValue * m_convertFactors.at(0));
70  }
71 
72  unsigned int valueTruncZero = std::max(static_cast<unsigned int>(0), value);
73  unsigned int valueTruncBits =
74  std::min(valueTruncZero, static_cast<unsigned int>((1 << NBits) - 1));
75  return valueTruncBits;
76  }

◆ dump()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
virtual void ZDCTriggerSimData< T, NData, NBits, Type >::dump ( std::ostream &  strm) const
inlineoverridevirtual

Implements ZDCTriggerSimDataBase.

Definition at line 123 of file ZDCTriggerSim.h.

123  {
124  strm << "Data for Type: " << Type << ": ";
125  for (auto datum : m_data) {
126  strm << doConvTrunc(datum) << " ";
127  }
128  strm << std::endl;
129  }

◆ getNumBits()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
unsigned int ZDCTriggerSimData< T, NData, NBits, Type >::getNumBits ( ) const
inlineoverridevirtual

Implements ZDCTriggerSimDataBase.

Definition at line 97 of file ZDCTriggerSim.h.

97 { return NBits; }

◆ getNumData()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
unsigned int ZDCTriggerSimData< T, NData, NBits, Type >::getNumData ( ) const
inlineoverridevirtual

Implements ZDCTriggerSimDataBase.

Definition at line 98 of file ZDCTriggerSim.h.

98 { return NData; }

◆ getType()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
virtual ZDCTriggerSim::DataType ZDCTriggerSimData< T, NData, NBits, Type >::getType ( ) const
inlineoverridevirtual

Implements ZDCTriggerSimDataBase.

Definition at line 99 of file ZDCTriggerSim.h.

99 { return Type; }

◆ getValueTrunc()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
virtual unsigned int ZDCTriggerSimData< T, NData, NBits, Type >::getValueTrunc ( unsigned int  idx = 0) const
inlineoverridevirtual

Implements ZDCTriggerSimDataBase.

Definition at line 101 of file ZDCTriggerSim.h.

101  {
102  if (!m_haveData)
103  throw std::logic_error("No data available for ZDCTriggerSimData");
104  return doConvTrunc(m_data.at(idx));
105  }

◆ setData()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
void ZDCTriggerSimData< T, NData, NBits, Type >::setData ( const std::vector< T > &  inData)
inline

Definition at line 116 of file ZDCTriggerSim.h.

116  {
117  m_data = inData;
118  m_haveData = true;
119  }

◆ setDatum()

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
void ZDCTriggerSimData< T, NData, NBits, Type >::setDatum ( datum)
inline

Definition at line 107 of file ZDCTriggerSim.h.

107  {
108  if (NData != 1)
109  throw std::logic_error(
110  "ZDCTriggerSimData setDatum called with NData > 1");
111  ;
112  m_haveData = true;
113  m_data[0] = datum;
114  }

Member Data Documentation

◆ m_convertFactors

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
std::vector<float> ZDCTriggerSimData< T, NData, NBits, Type >::m_convertFactors
private

Definition at line 60 of file ZDCTriggerSim.h.

◆ m_data

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
std::vector<T> ZDCTriggerSimData< T, NData, NBits, Type >::m_data
private

Definition at line 62 of file ZDCTriggerSim.h.

◆ m_doConvert

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
bool ZDCTriggerSimData< T, NData, NBits, Type >::m_doConvert {}
private

Definition at line 59 of file ZDCTriggerSim.h.

◆ m_haveData

template<typename T , unsigned int NData, unsigned int NBits, ZDCTriggerSim::DataType Type>
bool ZDCTriggerSimData< T, NData, NBits, Type >::m_haveData {}
private

Definition at line 63 of file ZDCTriggerSim.h.


The documentation for this class was generated from the following file:
ZDCTriggerSimData::m_data
std::vector< T > m_data
Definition: ZDCTriggerSim.h:62
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
athena.value
value
Definition: athena.py:124
ZDCTriggerSimData::doConvTrunc
unsigned int doConvTrunc(const T &inValue) const
Definition: ZDCTriggerSim.h:65
ZDCTriggerSimData::m_haveData
bool m_haveData
Definition: ZDCTriggerSim.h:63
Type
RootType Type
Definition: TrigTSerializer.h:30
xAODType
Definition: ObjectType.h:13
ZDCTriggerSimData::m_convertFactors
std::vector< float > m_convertFactors
Definition: ZDCTriggerSim.h:60
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
ZDCTriggerSimData::m_doConvert
bool m_doConvert
Definition: ZDCTriggerSim.h:59