|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include "GaudiKernel/MsgStream.h"
19 #define LARBSDBG(text) logstr<<MSG::DEBUG<<text<<endmsg
21 #define LARBSDBG(text)
61 LARBSDBG(
"Maximum number of channels reached");
67 LARBSDBG(
"No Raw Data Block in this FEB");
82 if(ngains==0 ||
nsamples==0)
return 0;
84 unsigned int this_gain=0;
88 offset=block + 8 + ((channelNumber&0x3F)>>3) + ((channelNumber & 0x7)<<3);
89 for(this_gain=0;this_gain<ngains;this_gain++) {
93 x = (
x & 0x3000) >> 12;
95 x = (
x & 0x30000000) >> 28;
100 if (this_gain<ngains) {
101 int s_size = 8 + 64 * ngains;
102 offset = block + 8 + ((channelNumber&0x3F)>>3) + ((channelNumber & 0x7)<<3) + 64*this_gain;
105 if(channelNumber>=64) {
107 febgain = (
x & 0x3000) >> 12;
113 samples.push_back((
short) (
x & 0x0fff));
117 febgain = (
x & 0x30000000) >> 28;
122 samples.push_back((
short) (
x & 0x0fff));
129 unsigned rearrangeFirstSample=0;
135 if (rearrangeFirstSample && rearrangeFirstSample<samples.size())
137 short movedSample=samples[0];
138 for (
unsigned i=1;
i<=rearrangeFirstSample;
i++)
139 samples[
i-1]=samples[
i];
140 samples[rearrangeFirstSample]=movedSample;
149 #ifdef LARBSDBGOUTPUT
157 LARBSDBG(
"Maximum number of channels reached");
164 LARBSDBG(
"No Accumulated Digit Block in this FEB");
221 if(ngains==0 ||
nsamples==0)
return 0;
229 LARBSDBG(
"Suspicious FebConfig valud" <<
FebConfig <<
", don't know what to do for Accumulated Calib Digit - return 0");
246 if((channelNumber&0x7F)*
nsamples*2>bsize)
return 0;
324 if(
index<=0)
return 0;
400 #ifdef LARBSDBGOUTPUT
401 #undef LARBSDBGOUTPUT
uint16_t getStepIndex() const
singleton-like access to IMessageSvc via open function and helper
uint32_t getNumberOfWords() const
virtual uint32_t getNumberOfGains() const
virtual uint16_t getResults2Size() const
virtual uint32_t getNumberOfSamples() const
const uint32_t * m_FebBlock
virtual uint16_t getResults1Size() const
virtual uint16_t getCtrl1(uint32_t adc) const
IMessageSvc * getMessageSvc(bool quiet=false)
unsigned short m_iHeadBlockSize
unsigned int m_rearrangeFirstSample
uint32_t getHeader32(const unsigned n) const
uint32_t RawToOfflineGain(const uint32_t gain) const
virtual uint32_t getStatus() const
uint16_t getFirstSampleIndex() const
virtual void resetPointers()
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
virtual uint16_t getCtrl3(uint32_t adc) const
virtual uint16_t getRawDataSize() const
uint16_t getNTrigger() const
virtual uint16_t getCtrl2(uint32_t adc) const
uint16_t getFebConfig() const
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
LArRodBlockAccumulatedV3()
virtual uint8_t getTDCPhase() const
uint16_t getNStep() const
uint16_t getHeader16(const unsigned n) const
virtual int getNextAccumulatedDigit(int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &corr2Sum, uint32_t &gain)