6#include "GaudiKernel/ServiceHandle.h"
22 return (StatusCode::SUCCESS);
31 const std::vector<unsigned>& Pattern,
const std::vector<unsigned>&
DAC,
const std::vector<unsigned>&
Delay)
38 for (
unsigned i=0;i<
DAC.size();i++)
40 for (
unsigned i=0;i<
Delay.size();i++)
42 for (
unsigned i=0;i<Pattern.size();i++) {
50 const std::vector<unsigned>&
DAC,
const std::vector<unsigned>&
Delay)
56 for (
unsigned i=0;i<
DAC.size();i++)
58 for (
unsigned i=0;i<
Delay.size();i++)
60 for (
unsigned i=0;i<Pattern.size();i++)
77 unsigned iPattern=(
event/PatternStepSize)%(
m_Pattern.size()/4);
79 const unsigned nWord=lineNumber>>5;
80 const unsigned Pattern=
m_Pattern[iPattern+nWord];
81 const unsigned nBit=lineNumber&0x1f;
82 return Pattern>>nBit & 0x1;
89 const unsigned iDelay=(
event/DelayStepSize)%
m_Delay.size();
97 const unsigned iDAC=
event/DACStepSize;
98 if (iDAC<
m_DAC.size()) {
104 log << MSG::ERROR <<
"Event #" <<
event <<
": DAC index out of range! ("
105 << iDAC <<
"max=" <<
m_DAC.size() <<
"). Return kmaxDAC" <<
endmsg;
119 log << MSG::ERROR <<
"LArOnlineID not defined! Can't determine Delay value." <<
endmsg;
123 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=
m_mCalibBoards.find(calibModuleID);
127 return map_it->second.Delay(event);
138 log << MSG::ERROR <<
"LArOnlineID not defined! Can't determine DAC value." <<
endmsg;
142 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=
m_mCalibBoards.find(calibModuleID);
146 return map_it->second.DAC(event);
156 log << MSG::ERROR <<
"LArOnlineID not defined! Can't determine isPulsed value." <<
endmsg;
164 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=
m_mCalibBoards.find(calibModuleID);
169 return map_it->second.isPulsed(event,line);
177 const unsigned nConfig=
m_mCalibBoards.begin()->second.m_DAC.size()*
182 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=
m_mCalibBoards.find(calibModuleID);
186 const unsigned nConfig=map_it->second.m_DAC.size()*
187 map_it->second.m_Delay.size()*map_it->second.m_Pattern.size()/4;
200 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=
m_mCalibBoards.find(calibModuleID);
204 return map_it->second.m_nTrigger;
221 const unsigned nPatt =
m_mCalibBoards.begin()->second.m_Pattern.size()/4;
225 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=
m_mCalibBoards.find(calibModuleID);
229 const unsigned nPatt = map_it->second.m_Pattern.size()/4;
Helpers for checking error return status codes and reporting errors.
#define CHECK_WITH_CONTEXT(...)
Evaluate an expression and check for errors, with an explicitly specified context name.
#define kmaxDAC
This class contains the LAr Calibration Board settings and a set of functions to decoded them.
value_type get_compact() const
Get the compact id.
bool isPulsed(const unsigned event, const unsigned short calibLine) const
unsigned DAC(const unsigned event) const
std::vector< unsigned > m_DAC
std::vector< unsigned > m_Delay
unsigned Delay(const unsigned event) const
std::vector< unsigned > m_Pattern
const LArOnlineID * m_onlineHelper
unsigned Delay(const unsigned event, const HWIdentifier calibLineID) const
bool isPulsed(const unsigned event, const HWIdentifier calibLineID) const
virtual StatusCode initialize()
unsigned getNumberPatterns(const HWIdentifier calibModuleID) const
void set(const HWIdentifier CalibModuleID, const unsigned nTrigger, const std::vector< unsigned > &Pattern, const std::vector< unsigned > &DAC, const std::vector< unsigned > &Delay)
unsigned getNumberConfig(const HWIdentifier calibModuleID) const
std::map< HWIdentifier, CalibBoard > m_mCalibBoards
virtual ~LArCalibParams()
unsigned DAC(const unsigned event, const HWIdentifier calibLineID) const
unsigned NTrigger(const HWIdentifier calibModuleID) const
IMessageSvc * getMessageSvc(bool quiet=false)