ATLAS Offline Software
Loading...
Searching...
No Matches
LArRodBlockStructure Class Reference

#include <LArRodBlockStructure.h>

Inherited by LArRodBlockAccumulatedV3, LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, LArRodBlockCalibrationV3, LArRodBlockPhysicsV0, LArRodBlockPhysicsV1, LArRodBlockPhysicsV2, LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, LArRodBlockPhysicsV6, and LArRodBlockTransparentV0< DSPHEADER >.

Collaboration diagram for LArRodBlockStructure:

Public Member Functions

 LArRodBlockStructure (IMessageSvc *msgSvc, const std::string &blockType)
virtual ~LArRodBlockStructure ()
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 hasAccumBlock () const
virtual uint32_t hasPhysicsBlock () const
virtual uint32_t hasRawDataBlock () const
virtual uint32_t hasControlWords () const
virtual int getNextEnergy (int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
virtual int getNextRawData (int &channelNumber, std::vector< short > &samples, 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 int getNextAccumulatedDigit (int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &corr2Sum, uint32_t &gain)
virtual bool getPulsed (unsigned channelNumber) const
virtual uint16_t getDAC () const
virtual uint16_t getDelay () const
virtual uint16_t getNTrigger () const
virtual uint16_t getStepIndex () const
virtual uint16_t getNStep () const
virtual uint8_t getTDCPhase () const
virtual int setGain (const int GainValue)
virtual uint32_t getNumberOfSamples () const
virtual uint32_t getNumberOfGains () const
virtual uint16_t getResults1Size () const
virtual uint16_t getResults2Size () const
virtual uint16_t getRawDataSize () const
virtual uint16_t getNbSweetCells1 () const
virtual uint16_t getNbSweetCells2 () const
virtual uint32_t getRadd (uint32_t adc, uint32_t sample) 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 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 void resetPointers ()
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
MsgStream m_logstr

Static Protected Attributes

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

Detailed Description

Definition at line 46 of file LArRodBlockStructure.h.

Member Typedef Documentation

◆ FEBMAPTYPE

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

Definition at line 227 of file LArRodBlockStructure.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
NWTot 
NWTot_h 
FEBID 
FEBID_h 
FEBSN 
FEBSN_h 
endtag 

Definition at line 50 of file LArRodBlockStructure.h.

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

Constructor & Destructor Documentation

◆ LArRodBlockStructure()

LArRodBlockStructure::LArRodBlockStructure ( IMessageSvc * msgSvc,
const std::string & blockType )

Definition at line 18 of file LArRodBlockStructure.cxx.

20 : m_Ex(0),
21 m_Ey(0),
22 m_Ez(0),
23 m_SumE(0),
25 m_error_next_feb(false),
28 m_logstr(msgSvc, blockType)
29{
30
34 m_RodBlock=NULL;
35 m_FebBlock=NULL;
38#ifndef NDEBUG
43#endif
44 m_pRODblock=NULL;
45 m_vFragment=NULL;
48}
const uint32_t * m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointer
std::vector< uint32_t > * m_pRODblock
std::vector< uint32_t > * m_vFragment

◆ ~LArRodBlockStructure()

LArRodBlockStructure::~LArRodBlockStructure ( )
virtual

Definition at line 50 of file LArRodBlockStructure.cxx.

51{
52}

Member Function Documentation

◆ canIncludeRawData()

virtual bool LArRodBlockStructure::canIncludeRawData ( )
inlinevirtual

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 100 of file LArRodBlockStructure.h.

100{return false;}

◆ canSetCalibration()

virtual bool LArRodBlockStructure::canSetCalibration ( )
inlinevirtual

◆ canSetEnergy()

virtual bool LArRodBlockStructure::canSetEnergy ( )
inlinevirtual

◆ canSetNTrigger()

virtual bool LArRodBlockStructure::canSetNTrigger ( )
inlinevirtual

Definition at line 99 of file LArRodBlockStructure.h.

99{return false;}

◆ canSetRawData()

virtual bool LArRodBlockStructure::canSetRawData ( )
inlinevirtual

◆ canSetRawDataFixed()

virtual bool LArRodBlockStructure::canSetRawDataFixed ( )
inlinevirtual

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 97 of file LArRodBlockStructure.h.

97{return false;}

◆ concatinateFEBs()

void LArRodBlockStructure::concatinateFEBs ( )
virtual

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

Definition at line 75 of file LArRodBlockStructure.cxx.

76{
77 m_logstr << MSG::ERROR << "Error: Function concatinateFEBs not implemented in this instance of LArRodBlockStructure!" << endmsg;
78}
#define endmsg

◆ dumpFragment()

void LArRodBlockStructure::dumpFragment ( )
virtual

Definition at line 160 of file LArRodBlockStructure.cxx.

161{
162 m_logstr << MSG::ERROR << "Error: Function dumpFragment() not implemented in this instance of LArRodBlockStructure!" << endmsg;
163}

◆ FebToRodChannel()

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

◆ finalizeFEB()

void LArRodBlockStructure::finalizeFEB ( )
virtual

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

Definition at line 176 of file LArRodBlockStructure.cxx.

177{
178 m_logstr << MSG::ERROR << "Error: Function finalizeFEB not implemented in this instance of LArRodBlockStructure!" << endmsg;
179 return;
180}

◆ getBit()

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

Definition at line 416 of file LArRodBlockStructure.h.

417{// chan = (0,127)
418 // int a = chan/32;
419 // int r = chan%32;
420 int a = chan>>5;
421 int r = chan&0x1f;
422 // a = (0,3), r = ( 0, 31 )
423 return (*(p+a)>>r) & 0x1;
424}
static Double_t a
int r
Definition globals.cxx:22

◆ getCtrl1()

◆ getCtrl2()

◆ getCtrl3()

◆ getDAC()

uint16_t LArRodBlockStructure::getDAC ( ) const
inlinevirtual

◆ getDelay()

uint16_t LArRodBlockStructure::getDelay ( ) const
inlinevirtual

◆ getDspCodeVersion()

uint32_t LArRodBlockStructure::getDspCodeVersion ( ) const
virtual

Definition at line 240 of file LArRodBlockStructure.cxx.

241{
242 int i=getNumberOfWords()-2;
243 return m_FebBlock[i];
244}
uint32_t getNumberOfWords() const

◆ getDspEventCounter()

int32_t LArRodBlockStructure::getDspEventCounter ( ) const
virtual

Definition at line 246 of file LArRodBlockStructure.cxx.

247{
248 int i=getNumberOfWords()-1;
249 return m_FebBlock[i];
250}

◆ getEx()

int32_t LArRodBlockStructure::getEx ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 298 of file LArRodBlockStructure.h.

298 {
299 return 0;
300}

◆ getEy()

int32_t LArRodBlockStructure::getEy ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 302 of file LArRodBlockStructure.h.

302 {
303 return 0;
304}

◆ getEz()

int32_t LArRodBlockStructure::getEz ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 306 of file LArRodBlockStructure.h.

306 {
307 return 0;
308}

◆ getFEBID()

uint32_t LArRodBlockStructure::getFEBID ( ) const
inline

Definition at line 292 of file LArRodBlockStructure.h.

293{return getHeader32(FEBID);}
uint32_t getHeader32(const unsigned n) const

◆ getFEBSN()

uint32_t LArRodBlockStructure::getFEBSN ( ) const
inline

Definition at line 295 of file LArRodBlockStructure.h.

296{return getHeader32(FEBSN);}

◆ getHeader16()

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

Definition at line 340 of file LArRodBlockStructure.h.

341{
342 if (n&0x1) //n is a odd number
343 return m_FebBlock[n>>1] & 0xffff; //1,3,5... are fetched from lower bits
344 else //n is a even number
345 return m_FebBlock[n>>1] >> 16; //0,2,4... are fetched from higher bits
346}

◆ getHeader32()

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

Definition at line 348 of file LArRodBlockStructure.h.

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

◆ getNbSweetCells1()

uint16_t LArRodBlockStructure::getNbSweetCells1 ( ) const
virtual

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 237 of file LArRodBlockStructure.cxx.

237{ return 0; }

◆ getNbSweetCells2()

uint16_t LArRodBlockStructure::getNbSweetCells2 ( ) const
virtual

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 238 of file LArRodBlockStructure.cxx.

238{ return 0; }

◆ getNextAccumulatedCalibDigit()

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

Reimplemented in LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, and LArRodBlockCalibrationV3.

Definition at line 87 of file LArRodBlockStructure.cxx.

88{
89 m_logstr << MSG::ERROR << "Error: Function getNextAccumulatedCalibDigit not implemented in this instance of LArRodBlockStructure!" << endmsg;
90 return 0;
91}

◆ getNextAccumulatedDigit()

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

Reimplemented in LArRodBlockAccumulatedV3.

Definition at line 93 of file LArRodBlockStructure.cxx.

94{
95 m_logstr << MSG::ERROR << "Error: Function getNextAccumulatedDigit not implemented in this instance of LArRodBlockStructure!" << endmsg;
96 return 0;
97}

◆ getNextEnergy()

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

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

Definition at line 439 of file LArRodBlockStructure.h.

440{
441 m_logstr << MSG::ERROR << "Error: Function getNextEnergy not implemented in this instance of LArRodBlockStructure!" << endmsg;
442 return 0;
443}

◆ getNextRawData()

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

Reimplemented in LArRodBlockAccumulatedV3, LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, LArRodBlockCalibrationV3, LArRodBlockPhysicsV0, LArRodBlockPhysicsV1, LArRodBlockPhysicsV2, LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, LArRodBlockPhysicsV6, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 81 of file LArRodBlockStructure.cxx.

82{
83 m_logstr << MSG::ERROR << "Error: Function getNextRawData not implemented in this instance of LArRodBlockStructure!" << endmsg;
84 return 0;
85}

◆ getNStep()

uint16_t LArRodBlockStructure::getNStep ( ) const
inlinevirtual

Reimplemented in LArRodBlockAccumulatedV3, and LArRodBlockCalibrationV3.

Definition at line 469 of file LArRodBlockStructure.h.

470{
471 return 0;
472}

◆ getNTrigger()

uint16_t LArRodBlockStructure::getNTrigger ( ) const
inlinevirtual

Reimplemented in LArRodBlockAccumulatedV3, LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, and LArRodBlockCalibrationV3.

Definition at line 460 of file LArRodBlockStructure.h.

461{
462 return 0;
463}

◆ getNumberOfGains()

◆ getNumberOfSamples()

◆ getNumberOfWords()

uint32_t LArRodBlockStructure::getNumberOfWords ( ) const
inline

Definition at line 411 of file LArRodBlockStructure.h.

412{
413 return getHeader32(NWTot);
414}

◆ getPulsed()

bool LArRodBlockStructure::getPulsed ( unsigned channelNumber) const
inlinevirtual

◆ getRadd()

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

◆ getRawDataSize()

uint16_t LArRodBlockStructure::getRawDataSize ( ) const
virtual

◆ getResults1Size()

uint16_t LArRodBlockStructure::getResults1Size ( ) const
virtual

◆ getResults2Size()

uint16_t LArRodBlockStructure::getResults2Size ( ) const
virtual

◆ getStatus()

◆ getStepIndex()

uint16_t LArRodBlockStructure::getStepIndex ( ) const
inlinevirtual

Reimplemented in LArRodBlockAccumulatedV3, and LArRodBlockCalibrationV3.

Definition at line 465 of file LArRodBlockStructure.h.

466{
467 return 0;
468}

◆ getSumE()

int32_t LArRodBlockStructure::getSumE ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 310 of file LArRodBlockStructure.h.

310 {
311 return 0;
312}

◆ getTDCPhase()

uint8_t LArRodBlockStructure::getTDCPhase ( ) const
virtual

◆ getVectorHeader16()

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

Definition at line 351 of file LArRodBlockStructure.h.

352{ if (n&0x1) //n is a odd number
353 return (std::as_const(*m_vFragment).at(n>>1) & 0xffff);
354 else //n is a even number
355 return (std::as_const(*m_vFragment).at(n>>1) >> 16);
356}

◆ getVectorHeader32()

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

Definition at line 358 of file LArRodBlockStructure.h.

359{
360 return (*m_vFragment)[n>>1];
361}

◆ getVROBEx()

int32_t LArRodBlockStructure::getVROBEx ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 318 of file LArRodBlockStructure.h.

318 {
319return 0;
320}

◆ getVROBEy()

int32_t LArRodBlockStructure::getVROBEy ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 322 of file LArRodBlockStructure.h.

322 {
323return 0;
324}

◆ getVROBEz()

int32_t LArRodBlockStructure::getVROBEz ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 326 of file LArRodBlockStructure.h.

326 {
327return 0;
328}

◆ getVROBFebId()

uint32_t LArRodBlockStructure::getVROBFebId ( )
inlinevirtual

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 314 of file LArRodBlockStructure.h.

314 {
315return 0;
316}

◆ getVROBSumE()

int32_t LArRodBlockStructure::getVROBSumE ( ) const
inlinevirtual

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 330 of file LArRodBlockStructure.h.

330 {
331return 0;
332}

◆ hasAccumBlock()

virtual uint32_t LArRodBlockStructure::hasAccumBlock ( ) const
inlinevirtual

Reimplemented in LArRodBlockAccumulatedV3.

Definition at line 121 of file LArRodBlockStructure.h.

121{return 0;} ;

◆ hasCalibBlock()

virtual uint32_t LArRodBlockStructure::hasCalibBlock ( ) const
inlinevirtual

◆ hasControlWords()

virtual uint32_t LArRodBlockStructure::hasControlWords ( ) const
inlinevirtual

◆ hasPhysicsBlock()

virtual uint32_t LArRodBlockStructure::hasPhysicsBlock ( ) const
inlinevirtual

◆ hasRawDataBlock()

◆ initializeFEB()

void LArRodBlockStructure::initializeFEB ( const uint32_t id)
virtual

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

Definition at line 166 of file LArRodBlockStructure.cxx.

167{
168 m_logstr << MSG::ERROR << "Error: Function initializeFEB not implemented in this instance of LArRodBlockStructure!" << endmsg;
169}

◆ initializeFragment()

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

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

Definition at line 171 of file LArRodBlockStructure.cxx.

172{
173 m_logstr << MSG::ERROR << "Error: Function initializeFragment not implemented in this instance of LArRodBlockStructure!" << endmsg;
174}

◆ LE_getHeader16()

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

Definition at line 388 of file LArRodBlockStructure.h.

389{
390 return (reinterpret_cast<const uint16_t*>(m_FebBlock))[n];
391}
setWord1 uint16_t

◆ LE_getVectorHeader16()

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

Definition at line 393 of file LArRodBlockStructure.h.

394{
395 const uint32_t* data32 = std::as_const(*m_vFragment).data();
396 const uint16_t* data16 = reinterpret_cast<const uint16_t*> (data32);
397 return data16[n];
398}
setEventNumber uint32_t

◆ LE_setHeader16()

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

Definition at line 400 of file LArRodBlockStructure.h.

401{
402#ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
403 if ((unsigned)n>=m_vFragment->size()*2) {
404 m_logstr << MSG::ERROR << "LArRodBlockStructure::LE_setHeader16 Error: WRITE BEYOND ARRAY BOUNDARY!" << endmsg;
405 std::abort();
406 }
407#endif
408 reinterpret_cast<uint16_t*>(m_vFragment->data())[n] = w;
409}

◆ nextFEB()

bool LArRodBlockStructure::nextFEB ( )
inline

Definition at line 474 of file LArRodBlockStructure.h.

475{
477
478 const int32_t FebOffset = m_FebBlockSize+m_MiddleHeaderSize;
479 const int32_t LeftSize = m_RodBlockSize-FebOffset+m_RodBlock-m_FebBlock;
480 if ( LeftSize<=0 ) return false; //No next feb
481
482 m_FebBlock += FebOffset; //Jump to the next FEB fragment
483 const int32_t BlockSize = getNumberOfWords();
484 if (BlockSize>LeftSize) {
485 m_logstr << MSG::ERROR << "Error while decoding LArByteStream: Found FEB block of size " << BlockSize << " in a ROD block of size " << LeftSize << endmsg;
486 m_error_next_feb = true;
487 return false;
488 }
489
490 m_FebBlockSize=BlockSize;
491
492 setPointers();
493 return true;
494}

◆ offlineCheckSum()

uint32_t LArRodBlockStructure::offlineCheckSum ( ) const
virtual

Reimplemented in LArRodBlockPhysicsV4.

Definition at line 148 of file LArRodBlockStructure.cxx.

◆ OfflineToRawGain()

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

Definition at line 337 of file LArRodBlockStructure.h.

338{return m_OfflineToRawGainMap[gain];} //For efficency, don't check range
static const uint32_t m_OfflineToRawGainMap[3]

◆ onlineCheckSum()

uint32_t LArRodBlockStructure::onlineCheckSum ( ) const
virtual

Reimplemented in LArRodBlockPhysicsV4.

Definition at line 140 of file LArRodBlockStructure.cxx.

141{
142 int offset = getNumberOfWords()-1;
143 if(offset>=m_FebBlockSize) return 0;
144 if(offset<0) return 0;
145 return m_FebBlock[offset];
146}

◆ RawToOfflineGain()

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

Definition at line 334 of file LArRodBlockStructure.h.

335{return m_RawToOfflineGainMap[gain];} //For efficency, don't check range
static const uint32_t m_RawToOfflineGainMap[4]

◆ report_error()

bool LArRodBlockStructure::report_error ( void ) const
inline

Definition at line 173 of file LArRodBlockStructure.h.

173{ return m_error_next_feb;}

◆ resetPointers()

◆ setBit()

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

Definition at line 427 of file LArRodBlockStructure.h.

428{
429 // chan = (0,127)
430 // int a = chan/32;
431 // int r = chan%32;
432 int a = chan>>5;
433 int r = chan&0x1f;
434 // a = (0,3), r = ( 0, 31 )
435 *(p+a) |= (1<<r) ;
436 return;
437}

◆ setDAC()

void LArRodBlockStructure::setDAC ( const uint16_t DACValue)
virtual

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 55 of file LArRodBlockStructure.cxx.

56{
57 m_logstr << MSG::ERROR << "Error: Function setDAC not implemented in this instance of LArRodBlockStructure!" << endmsg;
58}

◆ setDelay()

void LArRodBlockStructure::setDelay ( const uint16_t DelayValue)
virtual

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 60 of file LArRodBlockStructure.cxx.

61{
62 m_logstr << MSG::ERROR << "Error: Function setDelay not implemented in this instance of LArRodBlockStructure!" << endmsg;
63}

◆ setEtQ()

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

Definition at line 111 of file LArRodBlockStructure.cxx.

112{
113 m_logstr << MSG::ERROR << "Error: Function setEtQ not implemented in this instance of LArRodBlockStructure!" << endmsg;
114}

◆ setEx()

void LArRodBlockStructure::setEx ( double )
virtual

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 182 of file LArRodBlockStructure.cxx.

183{
184 // Do not set anything
185 return;
186}

◆ setEy()

void LArRodBlockStructure::setEy ( double )
virtual

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 188 of file LArRodBlockStructure.cxx.

189{
190 // Do not set anything
191 return;
192}

◆ setEz()

void LArRodBlockStructure::setEz ( double )
virtual

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 194 of file LArRodBlockStructure.cxx.

195{
196 // Do not set anything
197 return;
198}

◆ setFirstSample()

void LArRodBlockStructure::setFirstSample ( const int rearrangeFirstSample)
inline

Definition at line 166 of file LArRodBlockStructure.h.

167 {m_rearrangeFirstSample=rearrangeFirstSample;}

◆ setFragment()

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

Definition at line 248 of file LArRodBlockStructure.h.

249{
251 m_FebBlock = p;
254 uint32_t BlockSize = 0;
255
256 if (n==0) {
257 m_logstr << MSG::ERROR << "Error while decoding LArByteStream: Got Rod block size 0" << endmsg;
258 return false;
259 }
260
261 BlockSize = getNumberOfWords();
262 if (BlockSize>n) {
263 m_logstr << MSG::ERROR << "Error while decoding LArByteStream: Found FEB block of size " << BlockSize << " in a ROD block of size " << n << endmsg;
264 return false;
265 }
266 m_FebBlockSize = BlockSize;
267
268 m_error_next_feb = false;
269
270 return setPointers();
271}

◆ setFragmentVirtualROB()

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

Definition at line 275 of file LArRodBlockStructure.h.

276 {
281 if ( n<2 ) { m_logstr << MSG::ERROR << "Error" << endmsg; return 0;}
282 m_virtualROBJump = ((*p)>>16)>>1; // Divide by two (two FEBs-1ROB)
283 m_ROB_to_decode = ( (*p) & 0xFFFF )<<1; // Multiply by two
284 if ( (n - m_virtualROBJump*m_ROB_to_decode-1) ){
285 m_logstr << MSG::ERROR << "Error AGAIN" << endmsg;
286 return 0;
287 }
289 return m_ROB_to_decode;
290}

◆ setGain()

int LArRodBlockStructure::setGain ( const int GainValue)
virtual

◆ setHeader16()

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

Definition at line 363 of file LArRodBlockStructure.h.

364{
365#ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
366 if ((unsigned)n>=m_vFragment->size()*2) {
367 m_logstr << MSG::ERROR << "Error WRITE BEYOND ARRAY BOUNDARY!" << endmsg;
368 std::abort();
369 }
370#endif
371 if (n&0x1) // n is a odd number
372 m_vFragment->at(n>>1)=((m_vFragment->at(n>>1) & 0xffff0000) | w);
373 else
374 m_vFragment->at(n>>1)=((m_vFragment->at(n>>1) & 0xffff) | (w << 16));
375}

◆ setHeader32()

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

Definition at line 377 of file LArRodBlockStructure.h.

378{
379#ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
380 if ((unsigned)n>=m_vFragment->size()*2) {
381 m_logstr << MSG::ERROR << "Error WRITE BEYOND ARRAY BOUNDARY!" << endmsg
382 std::abort();
383 }
384#endif
385 m_vFragment->at(n>>1) = w;
386}

◆ setNextEnergy()

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

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

Definition at line 99 of file LArRodBlockStructure.cxx.

100{
101 m_logstr << MSG::ERROR << "Error: Function setNextEnergy not implemented in this instance of LArRodBlockStructure!" << endmsg;
102}

◆ setNTrigger()

void LArRodBlockStructure::setNTrigger ( const uint16_t NTrigger)
virtual

Definition at line 70 of file LArRodBlockStructure.cxx.

71{
72 m_logstr << MSG::ERROR << "Error: Function setNTrigger not implemented in this instance of LArRodBlockStructure!" << endmsg;
73}

◆ setNumberOfGains()

void LArRodBlockStructure::setNumberOfGains ( const uint8_t n)
virtual

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

Definition at line 126 of file LArRodBlockStructure.cxx.

127{
128 m_logstr << MSG::ERROR << "Error: Function setNumberOfGains not implemented in this instance of LArRodBlockStructure!" << endmsg;
129}

◆ setNumberOfSamples()

void LArRodBlockStructure::setNumberOfSamples ( const uint8_t n)
virtual

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

Definition at line 121 of file LArRodBlockStructure.cxx.

122{
123 m_logstr << MSG::ERROR << "Error: Function setNumberOfSamples not implemented in this instance of LArRodBlockStructure!" << endmsg;
124}

◆ setPointers()

virtual bool LArRodBlockStructure::setPointers ( )
inlineprotectedvirtual

◆ setPulsed()

void LArRodBlockStructure::setPulsed ( const unsigned channelNumber)
virtual

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 65 of file LArRodBlockStructure.cxx.

66{
67 m_logstr << MSG::ERROR << "Error: Function setPulsed not implemented in this instance of LArRodBlockStructure!" << endmsg;
68}

◆ setRawData()

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

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

Definition at line 105 of file LArRodBlockStructure.cxx.

106{
107 m_logstr << MSG::ERROR << "Error: Function setRawData not implemented in this instance of LArRodBlockStructure!" << endmsg;
108}

◆ setRawDataFixed()

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

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 116 of file LArRodBlockStructure.cxx.

117{
118 m_logstr << MSG::ERROR << "Error: Function setRawDataFixed not implemented in this instance of LArRodBlockStructure!" << endmsg;
119}

◆ setSumE()

void LArRodBlockStructure::setSumE ( double )
virtual

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 200 of file LArRodBlockStructure.cxx.

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

◆ setTDCPhase()

void LArRodBlockStructure::setTDCPhase ( const uint8_t n)
virtual

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 131 of file LArRodBlockStructure.cxx.

132{
133 m_logstr << MSG::ERROR << "Error: Function setTDCPhase not implemented in this instance of LArRodBlockStructure!" << endmsg;
134}

◆ sortDataVector() [1/5]

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

◆ sortDataVector() [2/5]

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

◆ sortDataVector() [3/5]

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

◆ sortDataVector() [4/5]

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

◆ sortDataVector() [5/5]

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

Member Data Documentation

◆ m_channelsPerFEB

int LArRodBlockStructure::m_channelsPerFEB
protected

Definition at line 219 of file LArRodBlockStructure.h.

◆ m_error_next_feb

bool LArRodBlockStructure::m_error_next_feb
protected

Definition at line 237 of file LArRodBlockStructure.h.

◆ m_Ex

int32_t LArRodBlockStructure::m_Ex
protected

Definition at line 203 of file LArRodBlockStructure.h.

◆ m_Ey

int32_t LArRodBlockStructure::m_Ey
protected

Definition at line 204 of file LArRodBlockStructure.h.

◆ m_Ez

int32_t LArRodBlockStructure::m_Ez
protected

Definition at line 205 of file LArRodBlockStructure.h.

◆ m_FebBlock

const uint32_t* LArRodBlockStructure::m_FebBlock
protected

Definition at line 221 of file LArRodBlockStructure.h.

◆ m_FebBlockSize

int32_t LArRodBlockStructure::m_FebBlockSize
protected

Definition at line 223 of file LArRodBlockStructure.h.

◆ m_iHeadBlockSize

unsigned short LArRodBlockStructure::m_iHeadBlockSize
protected

Definition at line 217 of file LArRodBlockStructure.h.

◆ m_logstr

MsgStream LArRodBlockStructure::m_logstr
protected

Definition at line 244 of file LArRodBlockStructure.h.

◆ m_mFebBlocks

FEBMAPTYPE LArRodBlockStructure::m_mFebBlocks
protected

Definition at line 228 of file LArRodBlockStructure.h.

◆ m_MiddleHeaderSize

int32_t LArRodBlockStructure::m_MiddleHeaderSize
protected

Definition at line 233 of file LArRodBlockStructure.h.

◆ m_numberOfEx

uint32_t LArRodBlockStructure::m_numberOfEx
protected

Definition at line 210 of file LArRodBlockStructure.h.

◆ m_numberOfEy

uint32_t LArRodBlockStructure::m_numberOfEy
protected

Definition at line 211 of file LArRodBlockStructure.h.

◆ m_numberOfEz

uint32_t LArRodBlockStructure::m_numberOfEz
protected

Definition at line 212 of file LArRodBlockStructure.h.

◆ m_numberOfSumE

uint32_t LArRodBlockStructure::m_numberOfSumE
protected

Definition at line 213 of file LArRodBlockStructure.h.

◆ m_OfflineToRawGainMap

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

Definition at line 17 of file LArRodBlockStructure.h.

◆ m_pRODblock

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

Definition at line 226 of file LArRodBlockStructure.h.

◆ m_RawToOfflineGainMap

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

Definition at line 16 of file LArRodBlockStructure.h.

◆ m_rearrangeFirstSample

unsigned int LArRodBlockStructure::m_rearrangeFirstSample
protected

Definition at line 235 of file LArRodBlockStructure.h.

◆ m_ROB_to_decode

int32_t LArRodBlockStructure::m_ROB_to_decode
protected

Definition at line 240 of file LArRodBlockStructure.h.

◆ m_RodBlock

const uint32_t* LArRodBlockStructure::m_RodBlock
protected

Definition at line 222 of file LArRodBlockStructure.h.

◆ m_RodBlockSize

int32_t LArRodBlockStructure::m_RodBlockSize
protected

Definition at line 224 of file LArRodBlockStructure.h.

◆ m_SumE

int32_t LArRodBlockStructure::m_SumE
protected

Definition at line 206 of file LArRodBlockStructure.h.

◆ m_vFragment

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

Definition at line 225 of file LArRodBlockStructure.h.

◆ m_virtualROBJump

uint32_t LArRodBlockStructure::m_virtualROBJump
protected

Definition at line 239 of file LArRodBlockStructure.h.

◆ m_virtualROBPointer

const uint32_t* LArRodBlockStructure::m_virtualROBPointer
protected

Definition at line 241 of file LArRodBlockStructure.h.

◆ m_virtualROBPointerLocal

const uint32_t* LArRodBlockStructure::m_virtualROBPointerLocal
protected

Definition at line 242 of file LArRodBlockStructure.h.


The documentation for this class was generated from the following files: