![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
11 #ifndef __ZDCTriggerSim__h
12 #define __ZDCTriggerSim__h
15 #include <type_traits>
27 const std::vector<std::string>
TypeStrings = {
"CombLUTOutput",
"CombLUTInput",
"SideLUTsInput",
"ModAmplsInput"};
43 virtual void dump(std::ostream& strm)
const = 0;
64 unsigned int value = inValue;
70 unsigned int valueTruncZero =
std::max(
static_cast<unsigned int>( 0 ) ,
value);
71 unsigned int valueTruncBits =
std::min(valueTruncZero,
static_cast<unsigned int>((1<<NBits) - 1));
72 return valueTruncBits;
81 static_assert(NData > 0,
"ZDCTriggerSimData requires at least one datum");
82 static_assert(NBits > 0,
"ZDCTriggerSimData requires at least 1 bit");
89 static_assert(NData > 0,
"ZDCTriggerSimData requires at least one datum");
90 static_assert(NBits > 0,
"ZDCTriggerSimData requires at least 1 bit");
100 if (!
m_haveData)
throw std::logic_error(
"No data available for ZDCTriggerSimData");
105 if (NData != 1)
throw std::logic_error(
"ZDCTriggerSimData setDatum called with NData > 1");;
119 virtual void dump(std::ostream& strm)
const override
121 for (
auto datum :
m_data) {
159 typedef std::shared_ptr<const ZDCTriggerSimDataBase>
SimDataCPtr;
160 typedef std::shared_ptr<ZDCTriggerSimDataBase>
SimDataPtr;
171 typedef std::list<ZDCTriggerSim::SimDataCPtr>
SimStack;
180 m_stack.push_back(SimStack::value_type(ptr));
199 void dump(std::ostream& strm)
const;
229 std::array<unsigned int, 4096>
m_LUTA;
230 std::array<unsigned int, 4096>
m_LUTC;
244 const std::array<unsigned int, 4096>& sideCLUT,
245 const std::array<unsigned int, 256>& inCombLUT) :
277 const std::array<unsigned int, 4096>& sideCLUT,
278 const std::array<unsigned int, 256>& inCombLUT) :
virtual void doSimStage() override
char data[hepevt_bytes_allocation_ATLAS]
virtual void doSimStage() override
virtual unsigned int getNumData() const =0
virtual ZDCTriggerSim::DataType getType() const override
virtual unsigned int simLevel1Trig(const ZDCTriggerSim::SimDataCPtr &data)=0
unsigned int getNumData() const override
virtual unsigned int simLevel1Trig(const ZDCTriggerSim::SimDataCPtr &inputData) override
virtual unsigned int getValueTrunc(unsigned int idx=0) const =0
virtual unsigned int getValueTrunc(unsigned int idx=0) const override
ZDCTriggerSimData< float, 8, 12, TModAmplsInput > ModuleAmplInputsFloat
ZDCTriggerSimData(const std::vector< float > &conversionFactors)
ZDCTriggerSimData< float, 2, 12, TSideLUTsInput > SideLUTInputsFloat
virtual void doSimStage() override
virtual void doSimStage() override
unsigned int doConvTrunc(const T &inValue) const
virtual unsigned int simLevel1Trig(const ZDCTriggerSim::SimDataCPtr &inputData) override
const std::vector< std::string > TypeStrings
virtual ~ZDCTriggerSimBase()=default
unsigned int getNumBits() const override
std::list< ZDCTriggerSim::SimDataCPtr > SimStack
virtual void dump(std::ostream &strm) const override
const ZDCTriggerSim::SimDataCPtr & stackTopData() const
virtual ZDCTriggerSim::DataType getType() const =0
virtual void dump(std::ostream &strm) const =0
virtual unsigned int simLevel1Trig(const ZDCTriggerSim::SimDataCPtr &inputBits) override
ZDCTriggerSimCombLUT(const std::array< unsigned int, 256 > &inLUT)
virtual ~ZDCTriggerSimData() override
ZDCTriggerSimData< unsigned int, 2, 4, TCombLUTInput > CombLUTInputsInt
std::shared_ptr< const ZDCTriggerSimDataBase > SimDataCPtr
std::shared_ptr< ZDCTriggerSimDataBase > SimDataPtr
virtual ~ZDCTriggerSimDataBase()=default
virtual void doSimStage() override
void stackPush(const ZDCTriggerSim::SimDataCPtr &ptr)
virtual void doSimStage()=0
std::array< unsigned int, 4096 > m_LUTC
std::array< unsigned int, 256 > m_combLUT
ZDCTriggerSimModuleAmpls(const std::array< unsigned int, 4096 > &sideALUT, const std::array< unsigned int, 4096 > &sideCLUT, const std::array< unsigned int, 256 > &inCombLUT)
ZDCTriggerSimData< unsigned int, 2, 12, TSideLUTsInput > SideLUTInputsInt
std::vector< float > m_convertFactors
ZDCTriggerSimData< unsigned int, 1, 3, TCombLUTOutput > CombLUTOutput
ZDCTriggerSimBase()=default
void dump(std::ostream &strm) const
void setData(const std::vector< T > &inData)
virtual void doSimStage() override
ZDCTriggerSimData< unsigned int, 8, 12, TModAmplsInput > ModuleAmplInputsInt
std::array< unsigned int, 4096 > m_LUTA
virtual unsigned int getNumBits() const =0
ZDCTriggerSimAllLUTs(const std::array< unsigned int, 4096 > &sideALUT, const std::array< unsigned int, 4096 > &sideCLUT, const std::array< unsigned int, 256 > &inCombLUT)