ATLAS Offline Software
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
LArRodBlockAccumulatedV3 Class Reference

This class provides decoding/encoding from/to ROD format. More...

#include <LArRodBlockAccumulatedV3.h>

Inheritance diagram for LArRodBlockAccumulatedV3:
Collaboration diagram for LArRodBlockAccumulatedV3:

Public Types

enum  {
  NWTot, NWTot_h, FEBID, FEBID_h,
  FEB_SN, FEB_SN_h, ResultsOff1, ResultsDim1,
  ResultsOff2, ResultsDim2, RawDataBlkOff, RawDataBlkDim,
  EventStatus, EventStatus_h, NGains, NSamples,
  FirstSampleIndex, FebConfig, InFPGAFormat, InFPGAFormat_h,
  endtag
}
 
enum  { NTrigger, NTrigger_h, StepIndex, NStep }
 

Public Member Functions

 LArRodBlockAccumulatedV3 ()
 
std::string BlockType ()
 
virtual uint8_t getTDCPhase () const
 
virtual int getNextRawData (int &channelNumber, std::vector< short > &samples, uint32_t &gain)
 
virtual int getNextAccumulatedDigit (int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &corr2Sum, uint32_t &gain)
 
virtual uint32_t getNumberOfSamples () const
 
virtual uint32_t getNumberOfGains () const
 
virtual uint32_t getRadd (uint32_t adc, uint32_t sample) const
 
virtual uint16_t getResults1Size () const
 
virtual uint16_t getResults2Size () const
 
virtual uint16_t getRawDataSize () const
 
virtual uint16_t getCtrl1 (uint32_t adc) const
 
virtual uint16_t getCtrl2 (uint32_t adc) const
 
virtual uint16_t getCtrl3 (uint32_t adc) const
 
virtual uint32_t getStatus () const
 
virtual int setGain (const int GainValue)
 
virtual uint32_t hasAccumBlock () const
 
virtual uint32_t hasRawDataBlock () const
 
virtual uint32_t hasControlWords () const
 
uint16_t getNTrigger () const
 
uint16_t getStepIndex () const
 
uint16_t getNStep () const
 
uint16_t getFebConfig () const
 
uint16_t getFirstSampleIndex () const
 
virtual bool canSetAccumulated ()
 
virtual void initializeFragment (std::vector< uint32_t > &fragment)
 
virtual void initializeFEB (const uint32_t id)
 
virtual void setNumberOfSamples (const uint8_t n)
 
virtual void setNumberOfGains (const uint8_t n)
 
virtual void setTDCPhase (const uint8_t n)
 
virtual void setNextEnergy (const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
 
virtual void setRawData (const int channel, const std::vector< short > &samples, const uint32_t gain)
 
virtual void setRawDataFixed (const int channel, const std::vector< short > &samples, const uint32_t gain)
 
virtual void setEtQ (const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
 
virtual void setDAC (const uint16_t DACValue)
 
virtual void setDelay (const uint16_t DelayValue)
 
virtual void setPulsed (const unsigned channelNumber)
 
virtual void setNTrigger (const uint16_t NTrigger)
 
virtual void finalizeFEB ()
 
virtual void setEx (double)
 
virtual void setEy (double)
 
virtual void setEz (double)
 
virtual void setSumE (double)
 
virtual void sortDataVector (std::vector< const LArRawChannel * > &)
 
virtual void sortDataVector (std::vector< const LArDigit * > &)
 
virtual void sortDataVector (std::vector< const LArCalibDigit * > &)
 
virtual void sortDataVector (std::vector< const LArAccumulatedCalibDigit * > &)
 
virtual void sortDataVector (std::vector< const LArAccumulatedDigit * > &)
 
virtual void concatinateFEBs ()
 
virtual bool canSetEnergy ()
 
virtual bool canSetRawData ()
 
virtual bool canSetRawDataFixed ()
 
virtual bool canSetCalibration ()
 
virtual bool canSetNTrigger ()
 
virtual bool canIncludeRawData ()
 
bool setFragment (const uint32_t *p, uint32_t n)
 
bool nextFEB ()
 
uint32_t getNumberOfWords () const
 
uint32_t getFEBID () const
 
uint32_t getFEBSN () const
 
virtual int32_t getEx () const
 
virtual int32_t getEy () const
 
virtual int32_t getEz () const
 
virtual int32_t getSumE () const
 
virtual uint32_t getVROBFebId ()
 
virtual int32_t getVROBEx () const
 
virtual int32_t getVROBEy () const
 
virtual int32_t getVROBEz () const
 
virtual int32_t getVROBSumE () const
 
virtual uint32_t hasCalibBlock () const
 
virtual uint32_t hasPhysicsBlock () const
 
virtual int getNextEnergy (int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
 
virtual int getNextAccumulatedCalibDigit (int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &Samples2Sum, uint32_t &nStepTriggers, uint32_t &gain)
 
virtual bool getPulsed (unsigned channelNumber) const
 
virtual uint16_t getDAC () const
 
virtual uint16_t getDelay () const
 
virtual uint16_t getNbSweetCells1 () const
 
virtual uint16_t getNbSweetCells2 () const
 
virtual uint32_t getDspCodeVersion () const
 
virtual int32_t getDspEventCounter () const
 
virtual uint32_t onlineCheckSum () const
 
virtual uint32_t offlineCheckSum () const
 
virtual int setFragmentVirtualROB (const uint32_t *p, uint32_t n)
 
virtual void dumpFragment ()
 
void setFirstSample (const int rearrangeFirstSample)
 
uint32_t RawToOfflineGain (const uint32_t gain) const
 
uint32_t OfflineToRawGain (const uint32_t gain) const
 
virtual int FebToRodChannel (int ch) const
 
bool report_error (void) const
 

Protected Types

enum  {
  NWTot, NWTot_h, FEBID, FEBID_h,
  FEBSN, FEBSN_h, endtag
}
 
typedef std::map< uint32_t, std::vector< uint32_t > > FEBMAPTYPE
 

Protected Member Functions

void setHeader16 (const unsigned n, const uint16_t w)
 
void setHeader32 (const unsigned n, const uint32_t w)
 
virtual bool setPointers ()
 
uint16_t getVectorHeader16 (const unsigned n) const
 
uint32_t getVectorHeader32 (const unsigned n) const
 
uint16_t getHeader16 (const unsigned n) const
 
uint32_t getHeader32 (const unsigned n) const
 
uint16_t LE_getHeader16 (const unsigned n) const
 
void LE_setHeader16 (const unsigned n, const uint16_t w)
 
uint16_t LE_getVectorHeader16 (const unsigned n) const
 
void setBit (uint32_t *const p, const unsigned chan)
 
int getBit (const uint32_t *const p, const unsigned chan) const
 

Protected Attributes

int32_t m_Ex
 
int32_t m_Ey
 
int32_t m_Ez
 
int32_t m_SumE
 
uint32_t m_numberOfEx
 
uint32_t m_numberOfEy
 
uint32_t m_numberOfEz
 
uint32_t m_numberOfSumE
 
unsigned short m_iHeadBlockSize
 
int m_channelsPerFEB
 
const uint32_t * m_FebBlock
 
const uint32_t * m_RodBlock
 
int32_t m_FebBlockSize
 
int32_t m_RodBlockSize
 
std::vector< uint32_t > * m_vFragment
 
std::vector< uint32_t > * m_pRODblock
 
FEBMAPTYPE m_mFebBlocks
 
int32_t m_MiddleHeaderSize
 
unsigned int m_rearrangeFirstSample
 
bool m_error_next_feb
 
uint32_t m_virtualROBJump
 
int32_t m_ROB_to_decode
 
const uint32_t * m_virtualROBPointer
 
const uint32_t * m_virtualROBPointerLocal
 

Static Protected Attributes

static const uint32_t m_RawToOfflineGainMap [4] ={0, 2, 1,0}
 
static const uint32_t m_OfflineToRawGainMap [3] ={3,2,1}
 

Private Member Functions

void clearBlocks ()
 
virtual void resetPointers ()
 

Private Attributes

int m_Result1Counter = 0
 
int m_Result1Index = 0
 
int m_Result2Counter = 0
 
int m_Result2Index = 0
 
int m_RawDataCounter = 0
 
int m_RawDataIndex = 0
 
unsigned m_fixedGain
 

Detailed Description

This class provides decoding/encoding from/to ROD format.

Authors
W. Lampl, R. Lafaye
Version
0-0-1 , Jul 17, 2003

Modified, 04.01.2006, IWS new format with averages Modified, 25.04.2006, IWS new format with averages sub-steps

Definition at line 23 of file LArRodBlockAccumulatedV3.h.

Member Typedef Documentation

◆ FEBMAPTYPE

typedef std::map<uint32_t, std::vector<uint32_t> > LArRodBlockStructure::FEBMAPTYPE
protectedinherited

Definition at line 233 of file LArRodBlockStructure.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NWTot 
NWTot_h 
FEBID 
FEBID_h 
FEB_SN 
FEB_SN_h 
ResultsOff1 
ResultsDim1 
ResultsOff2 
ResultsDim2 
RawDataBlkOff 
RawDataBlkDim 
EventStatus 
EventStatus_h 
NGains 
NSamples 
FirstSampleIndex 
FebConfig 
InFPGAFormat 
InFPGAFormat_h 
endtag 

Definition at line 27 of file LArRodBlockAccumulatedV3.h.

27  {
28  NWTot, // First words: DSP event header
29  NWTot_h,
30  FEBID,
31  FEBID_h,
32  FEB_SN, // FEB serial number
33  FEB_SN_h, // FEB serial number
34  ResultsOff1, // Size of results (Accumulated averages in DSP)
35  ResultsDim1, // Offset to results
36  ResultsOff2, // Size of times (in physics)
37  ResultsDim2, // Offset to times (in physics)
39  RawDataBlkDim, // Raw FEB event offset
40  EventStatus, // Bits describing the event
42  NGains,
43  NSamples,
45  FebConfig,
46  InFPGAFormat, // added 08.09.2005 - wrong 28.09.2005?
48  endtag //This tag needs to be an odd number, see *) for constructor
49  };

◆ anonymous enum

anonymous enum
Enumerator
NTrigger 
NTrigger_h 
StepIndex 
NStep 

Definition at line 50 of file LArRodBlockAccumulatedV3.h.

50  {
51  NTrigger,
52  NTrigger_h,
53  StepIndex,
54  NStep
55  };

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
NWTot 
NWTot_h 
FEBID 
FEBID_h 
FEBSN 
FEBSN_h 
endtag 

Definition at line 51 of file LArRodBlockStructure.h.

51  {
52  NWTot, // Number of words in DSP block
53  NWTot_h,
54  FEBID, // FEB ID
55  FEBID_h,
56  FEBSN, // FEB Serial Number
57  FEBSN_h,
58  endtag // This tag needs to be an odd number, see *) for constructor
59  };

Constructor & Destructor Documentation

◆ LArRodBlockAccumulatedV3()

LArRodBlockAccumulatedV3::LArRodBlockAccumulatedV3 ( )

Definition at line 25 of file LArRodBlockAccumulatedV3.cxx.

26 {
27  m_iHeadBlockSize=endtag/2; // The implicit cast rounds down to the right size
30 }

Member Function Documentation

◆ BlockType()

std::string LArRodBlockAccumulatedV3::BlockType ( )
inline

Definition at line 60 of file LArRodBlockAccumulatedV3.h.

60 { return std::string("RodBlockAccumulatedV3");}

◆ canIncludeRawData()

virtual bool LArRodBlockStructure::canIncludeRawData ( )
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6, and LArRodBlockPhysicsV5.

Definition at line 101 of file LArRodBlockStructure.h.

101 {return false;}

◆ canSetAccumulated()

virtual bool LArRodBlockAccumulatedV3::canSetAccumulated ( )
inlinevirtual

Definition at line 112 of file LArRodBlockAccumulatedV3.h.

112 {return false;}

◆ canSetCalibration()

virtual bool LArRodBlockStructure::canSetCalibration ( )
inlinevirtualinherited

◆ canSetEnergy()

virtual bool LArRodBlockStructure::canSetEnergy ( )
inlinevirtualinherited

◆ canSetNTrigger()

virtual bool LArRodBlockStructure::canSetNTrigger ( )
inlinevirtualinherited

Definition at line 100 of file LArRodBlockStructure.h.

100 {return false;}

◆ canSetRawData()

virtual bool LArRodBlockStructure::canSetRawData ( )
inlinevirtualinherited

◆ canSetRawDataFixed()

virtual bool LArRodBlockStructure::canSetRawDataFixed ( )
inlinevirtualinherited

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 98 of file LArRodBlockStructure.h.

98 {return false;}

◆ clearBlocks()

void LArRodBlockAccumulatedV3::clearBlocks ( )
private

◆ concatinateFEBs()

void LArRodBlockStructure::concatinateFEBs ( )
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 81 of file LArRodBlockStructure.cxx.

82 {
83  std::cout << "ERROR: Function concatinateFEBs not implemented in this instance of LArRodBlockStructure!\n";
84  return;
85 }

◆ dumpFragment()

void LArRodBlockStructure::dumpFragment ( )
virtualinherited

Definition at line 175 of file LArRodBlockStructure.cxx.

176 {
177  std::cout << "ERROR: Function dumpFragment() not implemented in this instance of LArRodBlockStructure!\n";
178  return;
179 }

◆ FebToRodChannel()

virtual int LArRodBlockStructure::FebToRodChannel ( int  ch) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV2, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 175 of file LArRodBlockStructure.h.

176  { return (ch>>3) + ((ch&0x7)<<4); };

◆ finalizeFEB()

void LArRodBlockStructure::finalizeFEB ( )
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 194 of file LArRodBlockStructure.cxx.

195 {
196  std::cout << "ERROR: Function finalizeFEB not implemented in this instance of LArRodBlockStructure!\n";
197  return;
198 }

◆ getBit()

int LArRodBlockStructure::getBit ( const uint32_t *const  p,
const unsigned  chan 
) const
inlineprotectedinherited

Definition at line 433 of file LArRodBlockStructure.h.

434 {// chan = (0,127)
435  // int a = chan/32;
436  // int r = chan%32;
437  int a = chan>>5;
438  int r = chan&0x1f;
439  // a = (0,3), r = ( 0, 31 )
440  return (*(p+a)>>r) & 0x1;
441 }

◆ getCtrl1()

uint16_t LArRodBlockAccumulatedV3::getCtrl1 ( uint32_t  adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 331 of file LArRodBlockAccumulatedV3.cxx.

332 {
335  if(adc&0x1) x=x>>16;
336  else x=x&0xffff;
337  uint16_t ctrl=x;
338  return ctrl;
339  /*
340  int index=getHeader16(RawDataBlkOff)-16;
341  uint32_t x=m_FebBlock[index];
342  if(adc&0x1) return x>>16;
343  return x&0xffff;
344  */
345 }

◆ getCtrl2()

uint16_t LArRodBlockAccumulatedV3::getCtrl2 ( uint32_t  adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 347 of file LArRodBlockAccumulatedV3.cxx.

348 {
351  if(adc&0x1) x=x>>16;
352  else x=x&0xffff;
353  uint16_t ctrl=x;
354  return ctrl;
355  /*
356  int index=getHeader16(RawDataBlkOff)-8 ;
357  uint32_t x=m_FebBlock[index];
358  if(adc&0x1) return x>>16;
359  return x&0xffff;
360  */
361 }

◆ getCtrl3()

uint16_t LArRodBlockAccumulatedV3::getCtrl3 ( uint32_t  adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 363 of file LArRodBlockAccumulatedV3.cxx.

364 {
366  int ngains=getHeader16(NGains);
367  int offset=nsamples*(8+64*ngains)+adc/2;
370  if(adc&0x1) x=x>>16;
371  else x=x&0xffff;
372  uint16_t ctrl=x;
373  return ctrl;
374  /*
375  int index=getHeader16(RawDataBlkOff)-3;
376  uint32_t x=m_FebBlock[index];
377  x=x>>16;
378  uint16_t ctrl=x;
379  return ctrl;
380  */
381 }

◆ getDAC()

uint16_t LArRodBlockStructure::getDAC ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockCalibrationV3, LArRodBlockCalibrationV2, LArRodBlockCalibrationV1, and LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 468 of file LArRodBlockStructure.h.

469 {
470  std::cout << "ERROR: Function getDAC not implemented in this instance of LArRodBlockStructure!\n";
471  return 0;
472 }

◆ getDelay()

uint16_t LArRodBlockStructure::getDelay ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockCalibrationV3, LArRodBlockCalibrationV2, LArRodBlockCalibrationV1, and LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 474 of file LArRodBlockStructure.h.

475 {
476  std::cout << "ERROR: Function getDelay not implemented in this instance of LArRodBlockStructure!\n";
477  return 0;
478 }

◆ getDspCodeVersion()

uint32_t LArRodBlockStructure::getDspCodeVersion ( ) const
virtualinherited

Definition at line 258 of file LArRodBlockStructure.cxx.

259 {
260  int i=getNumberOfWords()-2;
261  return m_FebBlock[i];
262 }

◆ getDspEventCounter()

int32_t LArRodBlockStructure::getDspEventCounter ( ) const
virtualinherited

Definition at line 264 of file LArRodBlockStructure.cxx.

265 {
266  int i=getNumberOfWords()-1;
267  return m_FebBlock[i];
268 }

◆ getEx()

int32_t LArRodBlockStructure::getEx ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, LArRodBlockPhysicsV6, and LArRodBlockPhysicsV4.

Definition at line 303 of file LArRodBlockStructure.h.

303  {
304  return 0;
305 }

◆ getEy()

int32_t LArRodBlockStructure::getEy ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, LArRodBlockPhysicsV6, and LArRodBlockPhysicsV4.

Definition at line 307 of file LArRodBlockStructure.h.

307  {
308  return 0;
309 }

◆ getEz()

int32_t LArRodBlockStructure::getEz ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, LArRodBlockPhysicsV6, and LArRodBlockPhysicsV4.

Definition at line 311 of file LArRodBlockStructure.h.

311  {
312  return 0;
313 }

◆ getFebConfig()

uint16_t LArRodBlockAccumulatedV3::getFebConfig ( ) const
inline

Definition at line 131 of file LArRodBlockAccumulatedV3.h.

132 {
133  return getHeader16(FebConfig);
134 }

◆ getFEBID()

uint32_t LArRodBlockStructure::getFEBID ( ) const
inlineinherited

Definition at line 297 of file LArRodBlockStructure.h.

298 {return getHeader32(FEBID);}

◆ getFEBSN()

uint32_t LArRodBlockStructure::getFEBSN ( ) const
inlineinherited

Definition at line 300 of file LArRodBlockStructure.h.

301 {return getHeader32(FEBSN);}

◆ getFirstSampleIndex()

uint16_t LArRodBlockAccumulatedV3::getFirstSampleIndex ( ) const
inline

Definition at line 136 of file LArRodBlockAccumulatedV3.h.

137 {
139 }

◆ getHeader16()

uint16_t LArRodBlockStructure::getHeader16 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 355 of file LArRodBlockStructure.h.

356 {
357  // std::cout << "getHeader16: " << m_FebBlock << " " << m_FebBlock[5] << " "
358  // << n << " " << (n>>1) << " " << (m_FebBlock[5]&0xffff) << std::endl;
359  if (n&0x1) //n is a odd number
360  return m_FebBlock[n>>1] & 0xffff; //1,3,5... are fetched from lower bits
361  else //n is a even number
362  return m_FebBlock[n>>1] >> 16; //0,2,4... are fetched from higher bits
363 }

◆ getHeader32()

uint32_t LArRodBlockStructure::getHeader32 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 365 of file LArRodBlockStructure.h.

366 {return m_FebBlock[n>>1];}

◆ getNbSweetCells1()

uint16_t LArRodBlockStructure::getNbSweetCells1 ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 255 of file LArRodBlockStructure.cxx.

255 { return 0; }

◆ getNbSweetCells2()

uint16_t LArRodBlockStructure::getNbSweetCells2 ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 256 of file LArRodBlockStructure.cxx.

256 { return 0; }

◆ getNextAccumulatedCalibDigit()

int LArRodBlockStructure::getNextAccumulatedCalibDigit ( int &  channelNumber,
std::vector< uint64_t > &  SamplesSum,
std::vector< uint64_t > &  Samples2Sum,
uint32_t &  nStepTriggers,
uint32_t &  gain 
)
virtualinherited

Reimplemented in LArRodBlockCalibrationV3.

Definition at line 94 of file LArRodBlockStructure.cxx.

95 {
96  std::cout << "ERROR: Function getNextAccumulatedCalibDigit not implemented in this instance of LArRodBlockStructure!\n";
97  return 0;
98 }

◆ getNextAccumulatedDigit()

int LArRodBlockAccumulatedV3::getNextAccumulatedDigit ( int &  channelNumber,
std::vector< uint64_t > &  SamplesSum,
std::vector< uint64_t > &  corr2Sum,
uint32_t &  gain 
)
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 146 of file LArRodBlockAccumulatedV3.cxx.

148 {
149 #ifdef LARBSDBGOUTPUT
150  MsgStream logstr(Athena::getMessageSvc(), BlockType());
151 #endif
152  //Debug output
153  LARBSDBG("m_Result1Counter" << m_Result1Counter << " m_Result1Index="<< m_Result1Index
154  << " m_channelsPerFEB=" << m_channelsPerFEB);
155  LARBSDBG("requested gain= " << m_fixedGain);
156  if (m_Result1Counter>=m_channelsPerFEB) { //Already beyond maximal number of channels
157  LARBSDBG("Maximum number of channels reached");
158  return 0;
159  }
160  uint16_t block = getHeader16(ResultsOff1);//Position of the AccumulatedCalibDigits FEB data block
161  uint16_t bsize = getHeader16(ResultsDim1);//Position of the AccumulatedCalibDigits FEB data block
163  if (!block) { //Block does not exist
164  LARBSDBG("No Accumulated Digit Block in this FEB");
165  // std::cout << "index= " << ResultsOff1 << "word= " << getHeader16(ResultsOff1) << std::endl;
166  return 0;
167  }
168  //The m_Result1Channel keeps track of the last read channel
169  //std::cout << "endtag=" << endtag << " m_iHeadBlockSize=" << m_iHeadBlockSize << std::endl;
170 
171  // Get next channel
172  channelNumber=m_Result1Counter;
173 
174  // This is just for fun; these data are not stored here but in RodBlockDecoder.cxx
175  // IWS 08.08.2005 This part is useless in fact - just for debugging
176  const unsigned int nsamples = getHeader16(NSamples);
177  const unsigned int ngains = getHeader16(NGains);
178 
179  //if(channelNumber==0) {
180  // for(uint3_t i=0;i<size;i++) {
181  // if(i==0)
182  // std::cout << std::hex << i << " : NWTot " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
183  // else if(i==1)
184  // std::cout << std::hex << i << " : FEBid " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
185  // else if(i==2)
186  // std::cout << std::hex << i << " : FEBsn " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
187  // else if(i==3)
188  // std::cout << std::hex << i << " : Block1 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
189  // else if(i==4)
190  // std::cout << std::hex << i << " : Block2 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
191  // else if(i==5)
192  // std::cout << std::hex << i << " : Block3 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
193  // else if(i==6)
194  // std::cout << std::hex << i << " : Status " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
195  // else if(i==7)
196  // std::cout << std::hex << i << " : Gain/Sample " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
197  // else if(i==8)
198  // std::cout << std::hex << i << " : 1st/FebConf " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
199  // else if(i==9)
200  // std::cout << std::hex << i << " : InFPGA " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
201  // else if (i<block)
202  // std::cout << std::hex << i << " : raw data " << i-12 << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
203  // else if(i-block<bsize) {
204  // if (i<block+1)
205  // std::cout << std::hex << i << " : ntrigger " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
206  // else if (i<block+2)
207  // std::cout << std::hex << i << " : step i&n " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
208  // else if (((i-block-2)%(2*nsamples))<nsamples)
209  // std::cout << std::hex << i << " " << (i-block-2)/(2*nsamples) << " : sum channel " << (i-block-2)/(nsamples+1) << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
210  // else
211  // std::cout << std::hex << i << " " << (i-block-2)/(2*nsamples) << " : sum*sum " << (i-block-2)%(nsamples+1) << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
212  // }
213  // else if(i<size-3)
214  // std::cout << std::hex << i << " : raw data " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::dec << std::endl;
215  // else
216  // std::cout << std::hex << i << " : trailer " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::dec << std::endl;
217  // }
218  //}
219 
220  const unsigned int FebConfig = (int) getFebConfig();
221  if(ngains==0 || nsamples==0) return 0;
222  // Loop over gains to look for m_fixedGain
223  //unsigned int this_gain=0;
224  int offset;
225  uint32_t x;
226 
227  if (FebConfig==0 || FebConfig>3) {
228  //Converter can currently not deal with this situation
229  LARBSDBG("Suspicious FebConfig valud" << FebConfig << ", don't know what to do for Accumulated Calib Digit - return 0");
230  return 0;
231  }
232 
233  const uint32_t febgain=FebConfig&0x3; // to be done better when this is better understood
234  gain=RawToOfflineGain(febgain);
235 
237  gain!=m_fixedGain) {
238  LARBSDBG("Requested gain: " << m_fixedGain << " got " << gain << " data ingored.");
239  return 0;
240  }
241 
242 
243  // 2 is the size of the accumulated header
244  offset=block + 2 + (channelNumber&0x7F)*(nsamples*2); // needs to be updated for loop on gains
245  if(offset+2*nsamples>size-3) return 0;
246  if((channelNumber&0x7F)*nsamples*2>bsize) return 0;
247 
248 
249  samplesSum.resize(nsamples);
250  corr2Sum.resize(nsamples);
251 
252  for (unsigned int i=0;i<nsamples;i++)
253  {
254  x=m_FebBlock[offset+i];
255  samplesSum[i]=x;
256  //std::cout << "SUM[" << i-1 << "] = " << std::hex << x << std::endl;
257  }
258  offset+=nsamples;
259  for (unsigned int i=0;i<nsamples;i++)
260  {
261  x=m_FebBlock[offset+i];
262  corr2Sum[i]=x;
263  //std::cout << "SUMSQ[" << i-1 << "] = " << std::hex << x << std::endl;
264  }
265 
266  gain=RawToOfflineGain(febgain);
267 
269  return 1;
270 }

◆ getNextEnergy()

int LArRodBlockStructure::getNextEnergy ( int &  channelNumber,
int32_t &  energy,
int32_t &  time,
int32_t &  quality,
uint32_t &  gain 
)
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 456 of file LArRodBlockStructure.h.

457 {
458  std::cout << "ERROR: Function getNextEnergy not implemented in this instance of LArRodBlockStructure!\n";
459  return 0;
460 }

◆ getNextRawData()

int LArRodBlockAccumulatedV3::getNextRawData ( int &  channelNumber,
std::vector< short > &  samples,
uint32_t &  gain 
)
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 47 of file LArRodBlockAccumulatedV3.cxx.

48 {
49 #ifdef LARBSDBGOUTPUT
50  MsgStream logstr(Athena::getMessageSvc(), BlockType());
51 #endif
52  //Debug output
53  /*
54  LARBSDBG("GetNextRawData for FEB 0x" << MSG::hex << (uint32_t)getHeader32(FEBID) << MSG::dec);
55  LARBSDBG("m_RawDataCounter=" << m_RawDataCounter << " m_RawDataIndex="<< m_RawDataIndex
56  << " m_channelsPerFEB=" << m_channelsPerFEB);
57  LARBSDBG("requested gain= " << m_fixedGain);
58  */
59  //std::cout << "RAWDATA " << m_RawDataCounter << std::endl;
60  if (m_RawDataCounter>=m_channelsPerFEB) { //Already beyond maximal number of channels
61  LARBSDBG("Maximum number of channels reached");
62  return 0;
63  }
64  //const uint16_t block = getHeader16(m_RawDataOff);//Position of the raw FEB data block
65  const uint16_t block = getHeader16(RawDataBlkOff);
66  if (!block) { //Block does not exist
67  LARBSDBG("No Raw Data Block in this FEB");
68  return 0;
69  }
70  //The m_RawDataChannel keeps track of the last read channel
71  //std::cout << "endtag=" << endtag << " m_iHeadBlockSize=" << m_iHeadBlockSize << std::endl;
72 
73  // Get next channel
74  channelNumber=m_RawDataCounter;
75  uint32_t febgain=0;
76  const unsigned int nsamples = getHeader16(NSamples) & 0xff;
77  const unsigned int ngains = getHeader16(NGains);
78  /*
79  LARBSDBG("This FEB has " << nsamples << " samples");
80  LARBSDBG("This FEB has " << ngains << " gains");
81  */
82  if(ngains==0 || nsamples==0) return 0;
83  // Loop over gains to look for m_fixedGain
84  unsigned int this_gain=0;
85  int offset;
86  LARBSDBG(" ===> fixedGain= " << m_fixedGain << " CaloGain = " << CaloGain::LARNGAIN);
87  if (m_fixedGain!=CaloGain::LARNGAIN) { //Fixed gain: Search for gain
88  offset=block + 8 + ((channelNumber&0x3F)>>3) + ((channelNumber & 0x7)<<3);
89  for(this_gain=0;this_gain<ngains;this_gain++) {
90  int index = offset + 64*this_gain;
92  if(channelNumber>=64)
93  x = (x & 0x3000) >> 12;
94  else
95  x = (x & 0x30000000) >> 28;
96  unsigned data_gain = RawToOfflineGain(x);
97  if(data_gain==m_fixedGain) break;
98  }
99  }
100  if (this_gain<ngains) { //Gain found in this fragment
101  int s_size = 8 + 64 * ngains; // Size of one sample block 16 RADD of 16 bit + 128 channels (16 bit data)
102  offset = block + 8 + ((channelNumber&0x3F)>>3) + ((channelNumber & 0x7)<<3) + 64*this_gain;
103  int index = offset;
105  if(channelNumber>=64) { //low channels on lower bits
106  // First decode gain
107  febgain = (x & 0x3000) >> 12; // gain on bits 12 and 13
108  // Than samples
109  for(unsigned int s=0;s<nsamples;s++) {
110  index = offset + s*s_size;
111  x = m_FebBlock[index];
112  // if((s==0) && (channelNumber==64)) std::cout << "===> " << std::dec << channelNumber << " " << (x&0xfff) << " " << std::endl;
113  samples.push_back((short) (x & 0x0fff)); // sample on bits 0 to 11
114  }
115  } else { //high channels on higher bits
116  // First decode gain
117  febgain = (x & 0x30000000) >> 28; // gain on bits 12 and 13
118  // Than samples
119  for(unsigned int s=0;s<nsamples;s++) {
120  index = offset + s*s_size;
121  x = (m_FebBlock[index]) >> 16;
122  samples.push_back((short) (x & 0x0fff)); // sample on bits 0 to 11
123  }
124  }
125  gain=RawToOfflineGain(febgain);
126  }
127  //std::cout << "Gain= " << gain << " Febgain=" << febgain << std::endl;
129  unsigned rearrangeFirstSample=0;
131  rearrangeFirstSample=m_rearrangeFirstSample; //Overwrite by jobOptions
132  else
133  rearrangeFirstSample=getFirstSampleIndex();
134  //std::cout << "FebConfig: "<< getFebConfig() << " FirstSampleIndex " << getFirstSampleIndex() <<std::endl;
135  if (rearrangeFirstSample && rearrangeFirstSample<samples.size()) //FIXME: Very ugly hack! See explanation in LArRodDecoder.h file
136  {//Change e.g. 3 0 1 2 4 to 0 1 2 3 4
137  short movedSample=samples[0];
138  for (unsigned i=1;i<=rearrangeFirstSample;i++)
139  samples[i-1]=samples[i];
140  samples[rearrangeFirstSample]=movedSample;
141  }
142  LARBSDBG("GetNextRawData for FEB finished 0x" << MSG::hex << (uint32_t)getHeader32(FEBID) << MSG::dec);
143  return 1;
144 }

◆ getNStep()

uint16_t LArRodBlockAccumulatedV3::getNStep ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 313 of file LArRodBlockAccumulatedV3.cxx.

314 {
317  return (uint16_t) x;
318 }

◆ getNTrigger()

uint16_t LArRodBlockAccumulatedV3::getNTrigger ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 283 of file LArRodBlockAccumulatedV3.cxx.

284 {
285 
288  return (uint16_t) x;
289 }

◆ getNumberOfGains()

uint32_t LArRodBlockAccumulatedV3::getNumberOfGains ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 278 of file LArRodBlockAccumulatedV3.cxx.

279 {
280  return getHeader16(NGains);
281 }

◆ getNumberOfSamples()

uint32_t LArRodBlockAccumulatedV3::getNumberOfSamples ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 273 of file LArRodBlockAccumulatedV3.cxx.

274 {
275  return getHeader16(NSamples);
276 }

◆ getNumberOfWords()

uint32_t LArRodBlockStructure::getNumberOfWords ( ) const
inlineinherited

Definition at line 428 of file LArRodBlockStructure.h.

429 {
430  return getHeader32(NWTot);
431 }

◆ getPulsed()

bool LArRodBlockStructure::getPulsed ( unsigned  channelNumber) const
inlinevirtualinherited

Reimplemented in LArRodBlockCalibrationV3, LArRodBlockCalibrationV2, LArRodBlockCalibrationV1, and LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 462 of file LArRodBlockStructure.h.

463 {
464  std::cout << "ERROR: Function getPulsed not implemented in this instance of LArRodBlockStructure!\n";
465  return 0;
466 }

◆ getRadd()

uint32_t LArRodBlockAccumulatedV3::getRadd ( uint32_t  adc,
uint32_t  sample 
) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 320 of file LArRodBlockAccumulatedV3.cxx.

321 {
322  int ngain=getHeader16(NGains);
324  if(index<=0) return 0;
325  index+=(8+64*ngain)*sample+adc/2;
327  if(adc&0x1) return x>>16;
328  return x&0xffff;
329 }

◆ getRawDataSize()

uint16_t LArRodBlockAccumulatedV3::getRawDataSize ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 308 of file LArRodBlockAccumulatedV3.cxx.

309 {
310  return getHeader16(RawDataBlkDim);
311 }

◆ getResults1Size()

uint16_t LArRodBlockAccumulatedV3::getResults1Size ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 298 of file LArRodBlockAccumulatedV3.cxx.

299 {
300  return getHeader16(ResultsDim1);
301 }

◆ getResults2Size()

uint16_t LArRodBlockAccumulatedV3::getResults2Size ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 303 of file LArRodBlockAccumulatedV3.cxx.

304 {
305  return getHeader16(ResultsDim2);
306 }

◆ getStatus()

uint32_t LArRodBlockAccumulatedV3::getStatus ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 383 of file LArRodBlockAccumulatedV3.cxx.

384 {
385  // Old version: get Dsp status word
386  if(getNumberOfWords()<EventStatus/2) return 0;
388  return x;
389 
390  // New verion: get Rod status word
391  //int nsamples = getHeader16(NSamples);
392  //int ngains = getHeader16(NGains);
393  //int offset = nsamples*(8+64*ngains)+8;
394  //int index = getHeader16(RawDataBlkOff)+offset;
395  //uint32_t x = m_FebBlock[index];
396  //return x;
397 }

◆ getStepIndex()

uint16_t LArRodBlockAccumulatedV3::getStepIndex ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 291 of file LArRodBlockAccumulatedV3.cxx.

292 {
294  uint32_t x = m_FebBlock[index+StepIndex/2]&0xffff;
295  return (uint16_t) x;
296 }

◆ getSumE()

int32_t LArRodBlockStructure::getSumE ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 315 of file LArRodBlockStructure.h.

315  {
316  return 0;
317 }

◆ getTDCPhase()

uint8_t LArRodBlockAccumulatedV3::getTDCPhase ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 42 of file LArRodBlockAccumulatedV3.cxx.

43 {
44  return (getHeader16(NSamples)>>8);
45 }

◆ getVectorHeader16()

uint16_t LArRodBlockStructure::getVectorHeader16 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 368 of file LArRodBlockStructure.h.

369 { if (n&0x1) //n is a odd number
370  return (std::as_const(*m_vFragment).at(n>>1) & 0xffff);
371  else //n is a even number
372  return (std::as_const(*m_vFragment).at(n>>1) >> 16);
373 }

◆ getVectorHeader32()

uint32_t LArRodBlockStructure::getVectorHeader32 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 375 of file LArRodBlockStructure.h.

376 {
377  return (*m_vFragment)[n>>1];
378 }

◆ getVROBEx()

int32_t LArRodBlockStructure::getVROBEx ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6, and LArRodBlockPhysicsV5.

Definition at line 323 of file LArRodBlockStructure.h.

323  {
324 return 0;
325 }

◆ getVROBEy()

int32_t LArRodBlockStructure::getVROBEy ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6, and LArRodBlockPhysicsV5.

Definition at line 327 of file LArRodBlockStructure.h.

327  {
328 return 0;
329 }

◆ getVROBEz()

int32_t LArRodBlockStructure::getVROBEz ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6, and LArRodBlockPhysicsV5.

Definition at line 331 of file LArRodBlockStructure.h.

331  {
332 return 0;
333 }

◆ getVROBFebId()

uint32_t LArRodBlockStructure::getVROBFebId ( )
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6, and LArRodBlockPhysicsV5.

Definition at line 319 of file LArRodBlockStructure.h.

319  {
320 return 0;
321 }

◆ getVROBSumE()

int32_t LArRodBlockStructure::getVROBSumE ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 335 of file LArRodBlockStructure.h.

335  {
336 return 0;
337 }

◆ hasAccumBlock()

virtual uint32_t LArRodBlockAccumulatedV3::hasAccumBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 83 of file LArRodBlockAccumulatedV3.h.

83 {return getHeader16(ResultsOff1);} ;

◆ hasCalibBlock()

virtual uint32_t LArRodBlockStructure::hasCalibBlock ( ) const
inlinevirtualinherited

◆ hasControlWords()

virtual uint32_t LArRodBlockAccumulatedV3::hasControlWords ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 85 of file LArRodBlockAccumulatedV3.h.

85 {return getHeader16(RawDataBlkOff);} ;

◆ hasPhysicsBlock()

virtual uint32_t LArRodBlockStructure::hasPhysicsBlock ( ) const
inlinevirtualinherited

◆ hasRawDataBlock()

virtual uint32_t LArRodBlockAccumulatedV3::hasRawDataBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 84 of file LArRodBlockAccumulatedV3.h.

84 {return getHeader16(RawDataBlkOff);} ;

◆ initializeFEB()

void LArRodBlockStructure::initializeFEB ( const uint32_t  id)
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 182 of file LArRodBlockStructure.cxx.

183 {
184  std::cout << "ERROR: Function initializeFEB not implemented in this instance of LArRodBlockStructure!\n";
185  return;
186 }

◆ initializeFragment()

void LArRodBlockStructure::initializeFragment ( std::vector< uint32_t > &  fragment)
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 188 of file LArRodBlockStructure.cxx.

189 {
190  std::cout << "ERROR: Function initializeFragment not implemented in this instance of LArRodBlockStructure!\n";
191  return;
192 }

◆ LE_getHeader16()

uint16_t LArRodBlockStructure::LE_getHeader16 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 405 of file LArRodBlockStructure.h.

406 {
407  return (reinterpret_cast<const uint16_t*>(m_FebBlock))[n];
408 }

◆ LE_getVectorHeader16()

uint16_t LArRodBlockStructure::LE_getVectorHeader16 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 410 of file LArRodBlockStructure.h.

411 {
412  const uint32_t* data32 = std::as_const(*m_vFragment).data();
413  const uint16_t* data16 = reinterpret_cast<const uint16_t*> (data32);
414  return data16[n];
415 }

◆ LE_setHeader16()

void LArRodBlockStructure::LE_setHeader16 ( const unsigned  n,
const uint16_t  w 
)
inlineprotectedinherited

Definition at line 417 of file LArRodBlockStructure.h.

418 {
419 #ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
420  if ((unsigned)n>=m_vFragment->size()*2) {
421  std::cout << "LArRodBlockStructure::LE_setHeader16 ERROR: WRITE BEYOND ARRAY BONDARY!" << std::endl;
422  std::abort();
423  }
424 #endif
425  ((uint16_t*)(&(m_vFragment->front())))[n] = w;
426 }

◆ nextFEB()

bool LArRodBlockStructure::nextFEB ( )
inlineinherited

Definition at line 497 of file LArRodBlockStructure.h.

498 {
499  resetPointers();
500 
501  const int32_t FebOffset = m_FebBlockSize+m_MiddleHeaderSize;
502  const int32_t LeftSize = m_RodBlockSize-FebOffset+m_RodBlock-m_FebBlock;
503  if ( LeftSize<=0 ) return false; //No next feb
504 
505  m_FebBlock += FebOffset; //Jump to the next FEB fragment
506  const int32_t BlockSize = getNumberOfWords();
507  //std::cout << "LeftSize=" << LeftSize << " BlockSize=" << BlockSize << std::endl;
508  if (BlockSize>LeftSize) {
509  std::cout << "ERROR while decoding LArByteStream: Found FEB block of size " << BlockSize << " in a ROD block of size " << LeftSize << std::endl;
510  m_error_next_feb = true;
511  return false;
512  }
513  //std::cout << "Second FEB ok, size= " << LeftSize <<std::endl;
514 
515  //m_FebBlockSize = LeftSize; //should be =BlockSize;
516  m_FebBlockSize=BlockSize;
517 
518  //std::cout << "2: FEB found with size " << m_FebBlockSize << std::endl;
519  setPointers();
520  return true;
521 }

◆ offlineCheckSum()

uint32_t LArRodBlockStructure::offlineCheckSum ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV4.

Definition at line 163 of file LArRodBlockStructure.cxx.

164 {
165  int end = getNumberOfWords()-3;
166  int start = 1;
167  uint32_t sum = 0;
169  for(int i=start;i<end;i++) {
170  sum += m_FebBlock[i];
171  }
172  return sum & 0x7fffffff;
173 }

◆ OfflineToRawGain()

uint32_t LArRodBlockStructure::OfflineToRawGain ( const uint32_t  gain) const
inlineinherited

Definition at line 352 of file LArRodBlockStructure.h.

353 {return m_OfflineToRawGainMap[gain];} //For efficency, don't check range

◆ onlineCheckSum()

uint32_t LArRodBlockStructure::onlineCheckSum ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV4.

Definition at line 155 of file LArRodBlockStructure.cxx.

156 {
157  int offset = getNumberOfWords()-1;
158  if(offset>=m_FebBlockSize) return 0;
159  if(offset<0) return 0;
160  return m_FebBlock[offset];
161 }

◆ RawToOfflineGain()

uint32_t LArRodBlockStructure::RawToOfflineGain ( const uint32_t  gain) const
inlineinherited

Definition at line 349 of file LArRodBlockStructure.h.

350 {return m_RawToOfflineGainMap[gain];} //For efficency, don't check range

◆ report_error()

bool LArRodBlockStructure::report_error ( void  ) const
inlineinherited

Definition at line 177 of file LArRodBlockStructure.h.

177 { return m_error_next_feb;}

◆ resetPointers()

void LArRodBlockAccumulatedV3::resetPointers ( )
privatevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 32 of file LArRodBlockAccumulatedV3.cxx.

33 {
40 }

◆ setBit()

void LArRodBlockStructure::setBit ( uint32_t *const  p,
const unsigned  chan 
)
inlineprotectedinherited

Definition at line 444 of file LArRodBlockStructure.h.

445 {
446  // chan = (0,127)
447  // int a = chan/32;
448  // int r = chan%32;
449  int a = chan>>5;
450  int r = chan&0x1f;
451  // a = (0,3), r = ( 0, 31 )
452  *(p+a) |= (1<<r) ;
453  return;
454 }

◆ setDAC()

void LArRodBlockStructure::setDAC ( const uint16_t  DACValue)
virtualinherited

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 57 of file LArRodBlockStructure.cxx.

58 {
59  std::cout << "ERROR: Function setDAC not implemented in this instance of LArRodBlockStructure!\n";
60  return;
61 }

◆ setDelay()

void LArRodBlockStructure::setDelay ( const uint16_t  DelayValue)
virtualinherited

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 63 of file LArRodBlockStructure.cxx.

64 {
65  std::cout << "ERROR: Function setDelay not implemented in this instance of LArRodBlockStructure!\n";
66  return;
67 }

◆ setEtQ()

void LArRodBlockStructure::setEtQ ( const int  channel,
const int32_t  energy,
const int32_t  time,
const int32_t  quality,
const uint32_t  gain 
)
virtualinherited

Definition at line 120 of file LArRodBlockStructure.cxx.

121 {
122  std::cout << "ERROR: Function setEtQ not implemented in this instance of LArRodBlockStructure!\n";
123  return;
124 }

◆ setEx()

void LArRodBlockStructure::setEx ( double  )
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV3.

Definition at line 200 of file LArRodBlockStructure.cxx.

201 {
202  // Do not set anything
203  return;
204 }

◆ setEy()

void LArRodBlockStructure::setEy ( double  )
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV3.

Definition at line 206 of file LArRodBlockStructure.cxx.

207 {
208  // Do not set anything
209  return;
210 }

◆ setEz()

void LArRodBlockStructure::setEz ( double  )
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV3.

Definition at line 212 of file LArRodBlockStructure.cxx.

213 {
214  // Do not set anything
215  return;
216 }

◆ setFirstSample()

void LArRodBlockStructure::setFirstSample ( const int  rearrangeFirstSample)
inlineinherited

Definition at line 168 of file LArRodBlockStructure.h.

169  {m_rearrangeFirstSample=rearrangeFirstSample;}

◆ setFragment()

bool LArRodBlockStructure::setFragment ( const uint32_t *  p,
uint32_t  n 
)
inlineinherited

Definition at line 252 of file LArRodBlockStructure.h.

253 {
254  resetPointers();
255  m_FebBlock = p;
257  m_RodBlockSize = n;
258  uint32_t BlockSize = 0;
259 
260  if (n==0) {
261  std::cout << "ERROR while decoding LArByteStream: Got Rod block size 0" << std::endl;
262  return false;
263  }
264 
265  BlockSize = getNumberOfWords();
266  if (BlockSize>n) {
267  std::cout << "ERROR while decoding LArByteStream: Found FEB block of size " << BlockSize << " in a ROD block of size " << n << std::endl;
268  return false;
269  }
270  m_FebBlockSize = BlockSize;
271 
272  m_error_next_feb = false;
273  //std::cout << "1: FEB found with size " << m_FebBlockSize << std::endl;
274 
275  return setPointers();
276 }

◆ setFragmentVirtualROB()

int LArRodBlockStructure::setFragmentVirtualROB ( const uint32_t *  p,
uint32_t  n 
)
inlinevirtualinherited

Definition at line 280 of file LArRodBlockStructure.h.

281  {
282  m_ROB_to_decode=0;
286  if ( n<2 ) { std::cout << "ERROR" << std::endl; return 0;}
287  m_virtualROBJump = ((*p)>>16)>>1; // Divide by two (two FEBs-1ROB)
288  m_ROB_to_decode = ( (*p) & 0xFFFF )<<1; // Multiply by two
289  if ( (n - m_virtualROBJump*m_ROB_to_decode-1) ){
290  std::cout << "ERROR AGAIN" << std::endl;
291  return 0;
292  }
294  return m_ROB_to_decode;
295 }

◆ setGain()

int LArRodBlockAccumulatedV3::setGain ( const int  GainValue)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 116 of file LArRodBlockAccumulatedV3.h.

117 {//This RodBlockStructure allows only predefined gains
118  /*
119  std::cout << " Set fixed gain Value " << GainValue << std::endl;
120  std::cout << " Number of words in Gain Block " << std::endl;
121  std::cout << "\tHigh (1): " << getHeader16(NWRawData1) << std::endl;
122  std::cout << "\tMedium (2): " << getHeader16(NWRawData2) << std::endl;
123  std::cout << "\tLow (3): " << getHeader16(NWRawData3) << std::endl;
124  */
125  if (GainValue<0 || GainValue>3)
126  return 0;
127  m_fixedGain=GainValue;
128  return 1;
129 }

◆ setHeader16()

void LArRodBlockStructure::setHeader16 ( const unsigned  n,
const uint16_t  w 
)
inlineprotectedinherited

Definition at line 380 of file LArRodBlockStructure.h.

381 {
382 #ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
383  if ((unsigned)n>=m_vFragment->size()*2) {
384  std::cout << "ERROR WRITE BEYOND ARRAY BONDARY!" << std::endl;
385  std::abort();
386  }
387 #endif
388  if (n&0x1) // n is a odd number
389  m_vFragment->at(n>>1)=((m_vFragment->at(n>>1) & 0xffff0000) | w);
390  else
391  m_vFragment->at(n>>1)=((m_vFragment->at(n>>1) & 0xffff) | (w << 16));
392 }

◆ setHeader32()

void LArRodBlockStructure::setHeader32 ( const unsigned  n,
const uint32_t  w 
)
inlineprotectedinherited

Definition at line 394 of file LArRodBlockStructure.h.

395 {
396 #ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
397  if ((unsigned)n>=m_vFragment->size()*2) {
398  std::cout << "ERROR WRITE BEYOND ARRAY BONDARY!" << std::endl;
399  std::abort();
400  }
401 #endif
402  m_vFragment->at(n>>1) = w;
403 }

◆ setNextEnergy()

void LArRodBlockStructure::setNextEnergy ( const int  channel,
const int32_t  energy,
const int32_t  time,
const int32_t  quality,
const uint32_t  gain 
)
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, and LArRodBlockPhysicsV2.

Definition at line 106 of file LArRodBlockStructure.cxx.

107 {
108  std::cout << "ERROR: Function setNextEnergy not implemented in this instance of LArRodBlockStructure!\n";
109  return;
110 }

◆ setNTrigger()

void LArRodBlockStructure::setNTrigger ( const uint16_t  NTrigger)
virtualinherited

Definition at line 75 of file LArRodBlockStructure.cxx.

76 {
77  std::cout << "ERROR: Function setNTrigger not implemented in this instance of LArRodBlockStructure!\n";
78  return;
79 }

◆ setNumberOfGains()

void LArRodBlockStructure::setNumberOfGains ( const uint8_t  n)
virtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 138 of file LArRodBlockStructure.cxx.

139 {
140  std::cout << "ERROR: Function setNumberOfGains not implemented in this instance of LArRodBlockStructure!\n";
141  return;
142 }

◆ setNumberOfSamples()

void LArRodBlockStructure::setNumberOfSamples ( const uint8_t  n)
virtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 132 of file LArRodBlockStructure.cxx.

133 {
134  std::cout << "ERROR: Function setNumberOfSamples not implemented in this instance of LArRodBlockStructure!\n";
135  return;
136 }

◆ setPointers()

virtual bool LArRodBlockStructure::setPointers ( )
inlineprotectedvirtualinherited

◆ setPulsed()

void LArRodBlockStructure::setPulsed ( const unsigned  channelNumber)
virtualinherited

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 69 of file LArRodBlockStructure.cxx.

70 {
71  std::cout << "ERROR: Function setPulsed not implemented in this instance of LArRodBlockStructure!\n";
72  return;
73 }

◆ setRawData()

void LArRodBlockStructure::setRawData ( const int  channel,
const std::vector< short > &  samples,
const uint32_t  gain 
)
virtualinherited

Reimplemented in LArRodBlockPhysicsV6, LArRodBlockPhysicsV5, LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, and LArRodBlockPhysicsV2.

Definition at line 113 of file LArRodBlockStructure.cxx.

114 {
115  std::cout << "ERROR: Function setRawData not implemented in this instance of LArRodBlockStructure!\n";
116  return;
117 }

◆ setRawDataFixed()

void LArRodBlockStructure::setRawDataFixed ( const int  channel,
const std::vector< short > &  samples,
const uint32_t  gain 
)
virtualinherited

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 126 of file LArRodBlockStructure.cxx.

127 {
128  std::cout << "ERROR: Function setRawDataFixed not implemented in this instance of LArRodBlockStructure!\n";
129  return;
130 }

◆ setSumE()

void LArRodBlockStructure::setSumE ( double  )
virtualinherited

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 218 of file LArRodBlockStructure.cxx.

219 {
220  // Do not set anything
221  return;
222 }

◆ setTDCPhase()

void LArRodBlockStructure::setTDCPhase ( const uint8_t  n)
virtualinherited

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 144 of file LArRodBlockStructure.cxx.

145 {
146  std::cout << "ERROR: Function setTDCPhase not implemented in this instance of LArRodBlockStructure!\n";
147  return;
148 }

◆ sortDataVector() [1/5]

void LArRodBlockStructure::sortDataVector ( std::vector< const LArAccumulatedCalibDigit * > &  )
virtualinherited

Definition at line 239 of file LArRodBlockStructure.cxx.

240 {return;}

◆ sortDataVector() [2/5]

void LArRodBlockStructure::sortDataVector ( std::vector< const LArAccumulatedDigit * > &  )
virtualinherited

Definition at line 242 of file LArRodBlockStructure.cxx.

243 {return;}

◆ sortDataVector() [3/5]

void LArRodBlockStructure::sortDataVector ( std::vector< const LArCalibDigit * > &  )
virtualinherited

Definition at line 236 of file LArRodBlockStructure.cxx.

237 {return;}

◆ sortDataVector() [4/5]

void LArRodBlockStructure::sortDataVector ( std::vector< const LArDigit * > &  )
virtualinherited

◆ sortDataVector() [5/5]

void LArRodBlockStructure::sortDataVector ( std::vector< const LArRawChannel * > &  )
virtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, and LArRodBlockPhysicsV2.

Definition at line 230 of file LArRodBlockStructure.cxx.

231 {return;}

Member Data Documentation

◆ m_channelsPerFEB

int LArRodBlockStructure::m_channelsPerFEB
protectedinherited

Definition at line 225 of file LArRodBlockStructure.h.

◆ m_error_next_feb

bool LArRodBlockStructure::m_error_next_feb
protectedinherited

Definition at line 243 of file LArRodBlockStructure.h.

◆ m_Ex

int32_t LArRodBlockStructure::m_Ex
protectedinherited

Definition at line 207 of file LArRodBlockStructure.h.

◆ m_Ey

int32_t LArRodBlockStructure::m_Ey
protectedinherited

Definition at line 208 of file LArRodBlockStructure.h.

◆ m_Ez

int32_t LArRodBlockStructure::m_Ez
protectedinherited

Definition at line 209 of file LArRodBlockStructure.h.

◆ m_FebBlock

const uint32_t* LArRodBlockStructure::m_FebBlock
protectedinherited

Definition at line 227 of file LArRodBlockStructure.h.

◆ m_FebBlockSize

int32_t LArRodBlockStructure::m_FebBlockSize
protectedinherited

Definition at line 229 of file LArRodBlockStructure.h.

◆ m_fixedGain

unsigned LArRodBlockAccumulatedV3::m_fixedGain
private

Definition at line 103 of file LArRodBlockAccumulatedV3.h.

◆ m_iHeadBlockSize

unsigned short LArRodBlockStructure::m_iHeadBlockSize
protectedinherited

Definition at line 221 of file LArRodBlockStructure.h.

◆ m_mFebBlocks

FEBMAPTYPE LArRodBlockStructure::m_mFebBlocks
protectedinherited

Definition at line 234 of file LArRodBlockStructure.h.

◆ m_MiddleHeaderSize

int32_t LArRodBlockStructure::m_MiddleHeaderSize
protectedinherited

Definition at line 239 of file LArRodBlockStructure.h.

◆ m_numberOfEx

uint32_t LArRodBlockStructure::m_numberOfEx
protectedinherited

Definition at line 214 of file LArRodBlockStructure.h.

◆ m_numberOfEy

uint32_t LArRodBlockStructure::m_numberOfEy
protectedinherited

Definition at line 215 of file LArRodBlockStructure.h.

◆ m_numberOfEz

uint32_t LArRodBlockStructure::m_numberOfEz
protectedinherited

Definition at line 216 of file LArRodBlockStructure.h.

◆ m_numberOfSumE

uint32_t LArRodBlockStructure::m_numberOfSumE
protectedinherited

Definition at line 217 of file LArRodBlockStructure.h.

◆ m_OfflineToRawGainMap

const uint32_t LArRodBlockStructure::m_OfflineToRawGainMap ={3,2,1}
staticprotectedinherited

Definition at line 238 of file LArRodBlockStructure.h.

◆ m_pRODblock

std::vector<uint32_t>* LArRodBlockStructure::m_pRODblock
protectedinherited

Definition at line 232 of file LArRodBlockStructure.h.

◆ m_RawDataCounter

int LArRodBlockAccumulatedV3::m_RawDataCounter = 0
private

Definition at line 100 of file LArRodBlockAccumulatedV3.h.

◆ m_RawDataIndex

int LArRodBlockAccumulatedV3::m_RawDataIndex = 0
private

Definition at line 101 of file LArRodBlockAccumulatedV3.h.

◆ m_RawToOfflineGainMap

const uint32_t LArRodBlockStructure::m_RawToOfflineGainMap ={0, 2, 1,0}
staticprotectedinherited

Definition at line 237 of file LArRodBlockStructure.h.

◆ m_rearrangeFirstSample

unsigned int LArRodBlockStructure::m_rearrangeFirstSample
protectedinherited

Definition at line 241 of file LArRodBlockStructure.h.

◆ m_Result1Counter

int LArRodBlockAccumulatedV3::m_Result1Counter = 0
private

Definition at line 96 of file LArRodBlockAccumulatedV3.h.

◆ m_Result1Index

int LArRodBlockAccumulatedV3::m_Result1Index = 0
private

Definition at line 97 of file LArRodBlockAccumulatedV3.h.

◆ m_Result2Counter

int LArRodBlockAccumulatedV3::m_Result2Counter = 0
private

Definition at line 98 of file LArRodBlockAccumulatedV3.h.

◆ m_Result2Index

int LArRodBlockAccumulatedV3::m_Result2Index = 0
private

Definition at line 99 of file LArRodBlockAccumulatedV3.h.

◆ m_ROB_to_decode

int32_t LArRodBlockStructure::m_ROB_to_decode
protectedinherited

Definition at line 246 of file LArRodBlockStructure.h.

◆ m_RodBlock

const uint32_t* LArRodBlockStructure::m_RodBlock
protectedinherited

Definition at line 228 of file LArRodBlockStructure.h.

◆ m_RodBlockSize

int32_t LArRodBlockStructure::m_RodBlockSize
protectedinherited

Definition at line 230 of file LArRodBlockStructure.h.

◆ m_SumE

int32_t LArRodBlockStructure::m_SumE
protectedinherited

Definition at line 210 of file LArRodBlockStructure.h.

◆ m_vFragment

std::vector<uint32_t>* LArRodBlockStructure::m_vFragment
protectedinherited

Definition at line 231 of file LArRodBlockStructure.h.

◆ m_virtualROBJump

uint32_t LArRodBlockStructure::m_virtualROBJump
protectedinherited

Definition at line 245 of file LArRodBlockStructure.h.

◆ m_virtualROBPointer

const uint32_t* LArRodBlockStructure::m_virtualROBPointer
protectedinherited

Definition at line 247 of file LArRodBlockStructure.h.

◆ m_virtualROBPointerLocal

const uint32_t* LArRodBlockStructure::m_virtualROBPointerLocal
protectedinherited

Definition at line 248 of file LArRodBlockStructure.h.


The documentation for this class was generated from the following files:
beamspotman.r
def r
Definition: beamspotman.py:676
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LArRodBlockStructure::m_vFragment
std::vector< uint32_t > * m_vFragment
Definition: LArRodBlockStructure.h:231
LArRodBlockAccumulatedV3::EventStatus
@ EventStatus
Definition: LArRodBlockAccumulatedV3.h:40
LArRodBlockStructure::FEBID_h
@ FEBID_h
Definition: LArRodBlockStructure.h:55
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
LArRodBlockAccumulatedV3::InFPGAFormat
@ InFPGAFormat
Definition: LArRodBlockAccumulatedV3.h:46
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LArRodBlockAccumulatedV3::NGains
@ NGains
Definition: LArRodBlockAccumulatedV3.h:42
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LArRodBlockStructure::LArRodBlockStructure
LArRodBlockStructure()
Definition: LArRodBlockStructure.cxx:22
LArRodBlockStructure::getNumberOfWords
uint32_t getNumberOfWords() const
Definition: LArRodBlockStructure.h:428
index
Definition: index.py:1
LArRodBlockStructure::NWTot_h
@ NWTot_h
Definition: LArRodBlockStructure.h:53
LArRodBlockStructure::m_FebBlockSize
int32_t m_FebBlockSize
Definition: LArRodBlockStructure.h:229
LArRodBlockStructure::FEBSN
@ FEBSN
Definition: LArRodBlockStructure.h:56
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
LArRodBlockAccumulatedV3::m_Result2Counter
int m_Result2Counter
Definition: LArRodBlockAccumulatedV3.h:98
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArRodBlockAccumulatedV3::RawDataBlkOff
@ RawDataBlkOff
Definition: LArRodBlockAccumulatedV3.h:38
LArRodBlockAccumulatedV3::endtag
@ endtag
Definition: LArRodBlockAccumulatedV3.h:48
LArRodBlockStructure::m_error_next_feb
bool m_error_next_feb
Definition: LArRodBlockStructure.h:243
LArRodBlockStructure::m_FebBlock
const uint32_t * m_FebBlock
Definition: LArRodBlockStructure.h:227
LArRodBlockAccumulatedV3::ResultsDim1
@ ResultsDim1
Definition: LArRodBlockAccumulatedV3.h:35
LArRodBlockAccumulatedV3::RawDataBlkDim
@ RawDataBlkDim
Definition: LArRodBlockAccumulatedV3.h:39
CaloGain::LARNGAIN
@ LARNGAIN
Definition: CaloGain.h:19
x
#define x
LArRodBlockAccumulatedV3::NTrigger
@ NTrigger
Definition: LArRodBlockAccumulatedV3.h:51
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
LArRodBlockAccumulatedV3::ResultsDim2
@ ResultsDim2
Definition: LArRodBlockAccumulatedV3.h:37
LArRodBlockStructure::setPointers
virtual bool setPointers()
Definition: LArRodBlockStructure.h:189
LArRodBlockStructure::m_iHeadBlockSize
unsigned short m_iHeadBlockSize
Definition: LArRodBlockStructure.h:221
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
LArRodBlockStructure::m_rearrangeFirstSample
unsigned int m_rearrangeFirstSample
Definition: LArRodBlockStructure.h:241
LArRodBlockAccumulatedV3::FebConfig
@ FebConfig
Definition: LArRodBlockAccumulatedV3.h:45
LArRodBlockStructure::getHeader32
uint32_t getHeader32(const unsigned n) const
Definition: LArRodBlockStructure.h:365
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
LArRodBlockStructure::RawToOfflineGain
uint32_t RawToOfflineGain(const uint32_t gain) const
Definition: LArRodBlockStructure.h:349
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
LArRodBlockAccumulatedV3::StepIndex
@ StepIndex
Definition: LArRodBlockAccumulatedV3.h:53
lumiFormat.i
int i
Definition: lumiFormat.py:92
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
beamspotman.n
n
Definition: beamspotman.py:731
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
LArRodBlockAccumulatedV3::getFirstSampleIndex
uint16_t getFirstSampleIndex() const
Definition: LArRodBlockAccumulatedV3.h:136
LArRodBlockAccumulatedV3::resetPointers
virtual void resetPointers()
Definition: LArRodBlockAccumulatedV3.cxx:32
LArRodBlockAccumulatedV3::InFPGAFormat_h
@ InFPGAFormat_h
Definition: LArRodBlockAccumulatedV3.h:47
LArRodBlockAccumulatedV3::m_Result1Index
int m_Result1Index
Definition: LArRodBlockAccumulatedV3.h:97
LArRodBlockStructure::m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointerLocal
Definition: LArRodBlockStructure.h:248
LArRodBlockStructure::resetPointers
virtual void resetPointers()
Definition: LArRodBlockStructure.h:187
LArRodBlockAccumulatedV3::EventStatus_h
@ EventStatus_h
Definition: LArRodBlockAccumulatedV3.h:41
LArRodBlockAccumulatedV3::BlockType
std::string BlockType()
Definition: LArRodBlockAccumulatedV3.h:60
LArRodBlockAccumulatedV3::m_Result2Index
int m_Result2Index
Definition: LArRodBlockAccumulatedV3.h:99
LArRodBlockStructure::m_RawToOfflineGainMap
static const uint32_t m_RawToOfflineGainMap[4]
Definition: LArRodBlockStructure.h:237
LArRodBlockStructure::m_ROB_to_decode
int32_t m_ROB_to_decode
Definition: LArRodBlockStructure.h:246
LArRodBlockAccumulatedV3::m_RawDataCounter
int m_RawDataCounter
Definition: LArRodBlockAccumulatedV3.h:100
LArRodBlockAccumulatedV3::FEB_SN
@ FEB_SN
Definition: LArRodBlockAccumulatedV3.h:32
LArRodBlockStructure::endtag
@ endtag
Definition: LArRodBlockStructure.h:58
LArRodBlockStructure::m_virtualROBPointer
const uint32_t * m_virtualROBPointer
Definition: LArRodBlockStructure.h:247
LArRodBlockAccumulatedV3::m_fixedGain
unsigned m_fixedGain
Definition: LArRodBlockAccumulatedV3.h:103
LArRodBlockAccumulatedV3::getFebConfig
uint16_t getFebConfig() const
Definition: LArRodBlockAccumulatedV3.h:131
LArRodBlockAccumulatedV3::m_Result1Counter
int m_Result1Counter
Definition: LArRodBlockAccumulatedV3.h:96
LArRodBlockStructure::FEBSN_h
@ FEBSN_h
Definition: LArRodBlockStructure.h:57
LArRodBlockAccumulatedV3::ResultsOff1
@ ResultsOff1
Definition: LArRodBlockAccumulatedV3.h:34
ReadOfcFromCool.nsamples
nsamples
Definition: ReadOfcFromCool.py:115
LArRodBlockAccumulatedV3::NWTot
@ NWTot
Definition: LArRodBlockAccumulatedV3.h:28
LArRodBlockStructure::m_MiddleHeaderSize
int32_t m_MiddleHeaderSize
Definition: LArRodBlockStructure.h:239
LArRodBlockStructure::NWTot
@ NWTot
Definition: LArRodBlockStructure.h:52
DeMoScan.index
string index
Definition: DeMoScan.py:362
a
TList * a
Definition: liststreamerinfos.cxx:10
LARBSDBG
#define LARBSDBG(text)
Definition: LArRodBlockAccumulatedV3.cxx:21
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
LArRodBlockAccumulatedV3::FEB_SN_h
@ FEB_SN_h
Definition: LArRodBlockAccumulatedV3.h:33
LArRodBlockAccumulatedV3::NTrigger_h
@ NTrigger_h
Definition: LArRodBlockAccumulatedV3.h:52
LArRodBlockAccumulatedV3::FEBID_h
@ FEBID_h
Definition: LArRodBlockAccumulatedV3.h:31
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
LArRodBlockAccumulatedV3::FEBID
@ FEBID
Definition: LArRodBlockAccumulatedV3.h:30
LArRodBlockStructure::m_OfflineToRawGainMap
static const uint32_t m_OfflineToRawGainMap[3]
Definition: LArRodBlockStructure.h:238
PlotCalibFromCool.ngain
ngain
Definition: PlotCalibFromCool.py:565
LArRodBlockStructure::m_RodBlockSize
int32_t m_RodBlockSize
Definition: LArRodBlockStructure.h:230
LArRodBlockStructure::m_RodBlock
const uint32_t * m_RodBlock
Definition: LArRodBlockStructure.h:228
LArRodBlockAccumulatedV3::NSamples
@ NSamples
Definition: LArRodBlockAccumulatedV3.h:43
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
LArRodBlockAccumulatedV3::FirstSampleIndex
@ FirstSampleIndex
Definition: LArRodBlockAccumulatedV3.h:44
LArRodBlockAccumulatedV3::ResultsOff2
@ ResultsOff2
Definition: LArRodBlockAccumulatedV3.h:36
LArRodBlockAccumulatedV3::NStep
@ NStep
Definition: LArRodBlockAccumulatedV3.h:54
LArRodBlockStructure::m_channelsPerFEB
int m_channelsPerFEB
Definition: LArRodBlockStructure.h:225
LArRodBlockAccumulatedV3::m_RawDataIndex
int m_RawDataIndex
Definition: LArRodBlockAccumulatedV3.h:101
LArRodBlockStructure::getHeader16
uint16_t getHeader16(const unsigned n) const
Definition: LArRodBlockStructure.h:355
LArRodBlockStructure::m_virtualROBJump
uint32_t m_virtualROBJump
Definition: LArRodBlockStructure.h:245
LArRodBlockStructure::FEBID
@ FEBID
Definition: LArRodBlockStructure.h:54
LArRodBlockAccumulatedV3::NWTot_h
@ NWTot_h
Definition: LArRodBlockAccumulatedV3.h:29