ATLAS Offline Software
Loading...
Searching...
No Matches
LArRodBlockTransparentV0< DSPHEADER > Class Template Reference

#include <LArRodBlockTransparentV0.h>

Inheritance diagram for LArRodBlockTransparentV0< DSPHEADER >:
Collaboration diagram for LArRodBlockTransparentV0< DSPHEADER >:

Public Member Functions

 LArRodBlockTransparentV0 ()
std::string BlockType ()
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 setRawDataFixed (const int channel, const std::vector< short > &samples, const uint32_t gain)
virtual void finalizeFEB ()
virtual void concatinateFEBs ()
virtual bool canSetRawDataFixed ()
virtual uint8_t getTDCPhase () const
virtual int getNextRawData (int &channelNumber, std::vector< short > &samples, uint32_t &gain)
virtual int setGain (const int GainValue)
virtual uint32_t getNumberOfSamples () const
virtual uint32_t getNumberOfGains () 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 hasRawDataBlock () const
virtual uint32_t hasControlWords () const
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 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 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 bool canSetEnergy ()
virtual bool canSetRawData ()
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 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 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 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 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

std::vector< uint32_t > m_RawDataBlock
int m_RawDataCounter
int m_RawDataIndex
unsigned m_BlkOffset
int m_fixedGain

Detailed Description

template<class DSPHEADER>
class LArRodBlockTransparentV0< DSPHEADER >

Definition at line 52 of file LArRodBlockTransparentV0.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
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

◆ LArRodBlockTransparentV0()

template<class DSPHEADER>
LArRodBlockTransparentV0< DSPHEADER >::LArRodBlockTransparentV0 ( )

Member Function Documentation

◆ BlockType()

template<class DSPHEADER>
std::string LArRodBlockTransparentV0< DSPHEADER >::BlockType ( )
inline

Definition at line 58 of file LArRodBlockTransparentV0.h.

58{ return std::string("RodBlockTransparentV0");}

◆ canIncludeRawData()

virtual bool LArRodBlockStructure::canIncludeRawData ( )
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 101 of file LArRodBlockStructure.h.

101{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()

template<class DSPHEADER>
virtual bool LArRodBlockTransparentV0< DSPHEADER >::canSetRawDataFixed ( )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 72 of file LArRodBlockTransparentV0.h.

72{return true;}

◆ clearBlocks()

template<class DSPHEADER>
void LArRodBlockTransparentV0< DSPHEADER >::clearBlocks ( )
private

◆ concatinateFEBs()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::concatinateFEBs ( )
virtual

Reimplemented from LArRodBlockStructure.

◆ 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

◆ finalizeFEB()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::finalizeFEB ( )
virtual

Reimplemented from LArRodBlockStructure.

◆ 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}
static Double_t a
int r
Definition globals.cxx:22

◆ getCtrl1()

template<class DSPHEADER>
virtual uint16_t LArRodBlockTransparentV0< DSPHEADER >::getCtrl1 ( uint32_t adc) const
virtual

Reimplemented from LArRodBlockStructure.

◆ getCtrl2()

template<class DSPHEADER>
virtual uint16_t LArRodBlockTransparentV0< DSPHEADER >::getCtrl2 ( uint32_t adc) const
virtual

Reimplemented from LArRodBlockStructure.

◆ getCtrl3()

template<class DSPHEADER>
virtual uint16_t LArRodBlockTransparentV0< DSPHEADER >::getCtrl3 ( uint32_t adc) const
virtual

Reimplemented from LArRodBlockStructure.

◆ getDAC()

uint16_t LArRodBlockStructure::getDAC ( ) const
inlinevirtualinherited

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

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 LArRodBlockCalibrationV0< DSPHEADER >, LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, and LArRodBlockCalibrationV3.

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}
uint32_t getNumberOfWords() const

◆ 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, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 303 of file LArRodBlockStructure.h.

303 {
304 return 0;
305}

◆ getEy()

int32_t LArRodBlockStructure::getEy ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 307 of file LArRodBlockStructure.h.

307 {
308 return 0;
309}

◆ getEz()

int32_t LArRodBlockStructure::getEz ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 311 of file LArRodBlockStructure.h.

311 {
312 return 0;
313}

◆ getFEBID()

uint32_t LArRodBlockStructure::getFEBID ( ) const
inlineinherited

Definition at line 297 of file LArRodBlockStructure.h.

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

◆ getFEBSN()

uint32_t LArRodBlockStructure::getFEBSN ( ) const
inlineinherited

Definition at line 300 of file LArRodBlockStructure.h.

301{return getHeader32(FEBSN);}

◆ 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 LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, and 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 LArRodBlockStructure::getNextAccumulatedDigit ( int & channelNumber,
std::vector< uint64_t > & SamplesSum,
std::vector< uint64_t > & corr2Sum,
uint32_t & gain )
virtualinherited

Reimplemented in LArRodBlockAccumulatedV3.

Definition at line 100 of file LArRodBlockStructure.cxx.

101{
102 std::cout << "Error: Function getNextAccumulatedDigit not implemented in this instance of LArRodBlockStructure!\n";
103 return 0;
104}

◆ getNextEnergy()

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

Reimplemented in LArRodBlockPhysicsV0, LArRodBlockPhysicsV1, LArRodBlockPhysicsV2, LArRodBlockPhysicsV3, 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()

template<class DSPHEADER>
virtual int LArRodBlockTransparentV0< DSPHEADER >::getNextRawData ( int & channelNumber,
std::vector< short > & samples,
uint32_t & gain )
virtual

Reimplemented from LArRodBlockStructure.

◆ getNStep()

uint16_t LArRodBlockStructure::getNStep ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3, and LArRodBlockCalibrationV3.

Definition at line 491 of file LArRodBlockStructure.h.

492{
493 std::cout << "Error: Function getNStep not implemented in this instance of LArRodBlockStructure!\n";
494 return 0;
495}

◆ getNTrigger()

uint16_t LArRodBlockStructure::getNTrigger ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3, LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, and LArRodBlockCalibrationV3.

Definition at line 480 of file LArRodBlockStructure.h.

481{
482 std::cout << "Error: Function getNTrigger not implemented in this instance of LArRodBlockStructure!\n";
483 return 0;
484}

◆ getNumberOfGains()

template<class DSPHEADER>
virtual uint32_t LArRodBlockTransparentV0< DSPHEADER >::getNumberOfGains ( ) const
virtual

Reimplemented from LArRodBlockStructure.

◆ getNumberOfSamples()

template<class DSPHEADER>
virtual uint32_t LArRodBlockTransparentV0< DSPHEADER >::getNumberOfSamples ( ) const
virtual

Reimplemented from LArRodBlockStructure.

◆ 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 LArRodBlockCalibrationV0< DSPHEADER >, LArRodBlockCalibrationV1, LArRodBlockCalibrationV2, and LArRodBlockCalibrationV3.

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()

template<class DSPHEADER>
virtual uint32_t LArRodBlockTransparentV0< DSPHEADER >::getRadd ( uint32_t adc,
uint32_t sample ) const
virtual

Reimplemented from LArRodBlockStructure.

◆ getRawDataSize()

uint16_t LArRodBlockStructure::getRawDataSize ( ) const
virtualinherited

◆ getResults1Size()

uint16_t LArRodBlockStructure::getResults1Size ( ) const
virtualinherited

◆ getResults2Size()

uint16_t LArRodBlockStructure::getResults2Size ( ) const
virtualinherited

◆ getStatus()

template<class DSPHEADER>
virtual uint32_t LArRodBlockTransparentV0< DSPHEADER >::getStatus ( ) const
virtual

Reimplemented from LArRodBlockStructure.

◆ getStepIndex()

uint16_t LArRodBlockStructure::getStepIndex ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3, and LArRodBlockCalibrationV3.

Definition at line 486 of file LArRodBlockStructure.h.

487{
488 std::cout << "Error: Function getStepIndex not implemented in this instance of LArRodBlockStructure!\n";
489 return 0;
490}

◆ getSumE()

int32_t LArRodBlockStructure::getSumE ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 315 of file LArRodBlockStructure.h.

315 {
316 return 0;
317}

◆ getTDCPhase()

template<class DSPHEADER>
virtual uint8_t LArRodBlockTransparentV0< DSPHEADER >::getTDCPhase ( ) const
virtual

Reimplemented from LArRodBlockStructure.

◆ 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}
std::vector< uint32_t > * m_vFragment

◆ getVROBEx()

int32_t LArRodBlockStructure::getVROBEx ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 323 of file LArRodBlockStructure.h.

323 {
324return 0;
325}

◆ getVROBEy()

int32_t LArRodBlockStructure::getVROBEy ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 327 of file LArRodBlockStructure.h.

327 {
328return 0;
329}

◆ getVROBEz()

int32_t LArRodBlockStructure::getVROBEz ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 331 of file LArRodBlockStructure.h.

331 {
332return 0;
333}

◆ getVROBFebId()

uint32_t LArRodBlockStructure::getVROBFebId ( )
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 319 of file LArRodBlockStructure.h.

319 {
320return 0;
321}

◆ getVROBSumE()

int32_t LArRodBlockStructure::getVROBSumE ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 335 of file LArRodBlockStructure.h.

335 {
336return 0;
337}

◆ hasAccumBlock()

virtual uint32_t LArRodBlockStructure::hasAccumBlock ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3.

Definition at line 123 of file LArRodBlockStructure.h.

123{return 0;} ;

◆ hasCalibBlock()

virtual uint32_t LArRodBlockStructure::hasCalibBlock ( ) const
inlinevirtualinherited

◆ hasControlWords()

template<class DSPHEADER>
virtual uint32_t LArRodBlockTransparentV0< DSPHEADER >::hasControlWords ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 92 of file LArRodBlockTransparentV0.h.

92{return m_FebBlock[3];} ;

◆ hasPhysicsBlock()

virtual uint32_t LArRodBlockStructure::hasPhysicsBlock ( ) const
inlinevirtualinherited

◆ hasRawDataBlock()

template<class DSPHEADER>
virtual uint32_t LArRodBlockTransparentV0< DSPHEADER >::hasRawDataBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 91 of file LArRodBlockTransparentV0.h.

91{return m_FebBlock[3];} ;

◆ initializeFEB()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::initializeFEB ( const uint32_t id)
virtual

Reimplemented from LArRodBlockStructure.

◆ initializeFragment()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::initializeFragment ( std::vector< uint32_t > & fragment)
virtual

Reimplemented from LArRodBlockStructure.

◆ 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}
setWord1 uint16_t

◆ 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}
setEventNumber uint32_t

◆ 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 reinterpret_cast<uint16_t*>(m_vFragment->data())[n] = w;
426}

◆ nextFEB()

bool LArRodBlockStructure::nextFEB ( )
inlineinherited

Definition at line 497 of file LArRodBlockStructure.h.

498{
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
static const uint32_t m_OfflineToRawGainMap[3]

◆ 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
static const uint32_t m_RawToOfflineGainMap[4]

◆ report_error()

bool LArRodBlockStructure::report_error ( void ) const
inlineinherited

Definition at line 177 of file LArRodBlockStructure.h.

177{ return m_error_next_feb;}

◆ resetPointers()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::resetPointers ( )
privatevirtual

Reimplemented from LArRodBlockStructure.

◆ 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 LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

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 LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

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 LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

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{
255 m_FebBlock = p;
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 {
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}
const uint32_t * m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointer

◆ setGain()

template<class DSPHEADER>
int LArRodBlockTransparentV0< DSPHEADER >::setGain ( const int GainValue)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 113 of file LArRodBlockTransparentV0.h.

114{//This RodBlockStructure allows only predefined gains
115 /*
116 std::cout << " Set fixed gain Value " << GainValue << std::endl;
117 std::cout << " Number of words in Gain Block " << std::endl;
118 std::cout << "\tHigh (1): " << getHeader16(NWRawData1) << std::endl;
119 std::cout << "\tMedium (2): " << getHeader16(NWRawData2) << std::endl;
120 std::cout << "\tLow (3): " << getHeader16(NWRawData3) << std::endl;
121 */
123 return 0;
125 return 1;
126}

◆ 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 LArRodBlockPhysicsV0, LArRodBlockPhysicsV1, LArRodBlockPhysicsV2, LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

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()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::setNumberOfGains ( const uint8_t n)
virtual

Reimplemented from LArRodBlockStructure.

◆ setNumberOfSamples()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::setNumberOfSamples ( const uint8_t n)
virtual

Reimplemented from LArRodBlockStructure.

◆ 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 LArRodBlockPhysicsV0, LArRodBlockPhysicsV1, LArRodBlockPhysicsV2, LArRodBlockPhysicsV3, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

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()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::setRawDataFixed ( const int channel,
const std::vector< short > & samples,
const uint32_t gain )
virtual

Reimplemented from LArRodBlockStructure.

◆ 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()

template<class DSPHEADER>
virtual void LArRodBlockTransparentV0< DSPHEADER >::setTDCPhase ( const uint8_t n)
virtual

Reimplemented from LArRodBlockStructure.

◆ sortDataVector() [1/5]

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

◆ sortDataVector() [2/5]

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

◆ sortDataVector() [3/5]

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

◆ sortDataVector() [4/5]

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

◆ sortDataVector() [5/5]

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

Member Data Documentation

◆ m_BlkOffset

template<class DSPHEADER>
unsigned LArRodBlockTransparentV0< DSPHEADER >::m_BlkOffset
private

Definition at line 104 of file LArRodBlockTransparentV0.h.

◆ 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

template<class DSPHEADER>
int LArRodBlockTransparentV0< DSPHEADER >::m_fixedGain
private

Definition at line 106 of file LArRodBlockTransparentV0.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 21 of file LArRodBlockStructure.h.

◆ m_pRODblock

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

Definition at line 232 of file LArRodBlockStructure.h.

◆ m_RawDataBlock

template<class DSPHEADER>
std::vector<uint32_t> LArRodBlockTransparentV0< DSPHEADER >::m_RawDataBlock
private

Definition at line 100 of file LArRodBlockTransparentV0.h.

◆ m_RawDataCounter

template<class DSPHEADER>
int LArRodBlockTransparentV0< DSPHEADER >::m_RawDataCounter
private

Definition at line 102 of file LArRodBlockTransparentV0.h.

◆ m_RawDataIndex

template<class DSPHEADER>
int LArRodBlockTransparentV0< DSPHEADER >::m_RawDataIndex
private

Definition at line 103 of file LArRodBlockTransparentV0.h.

◆ m_RawToOfflineGainMap

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

Definition at line 20 of file LArRodBlockStructure.h.

◆ m_rearrangeFirstSample

unsigned int LArRodBlockStructure::m_rearrangeFirstSample
protectedinherited

Definition at line 241 of file LArRodBlockStructure.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 file: