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

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

#include <LArRodBlockCalibrationV1.h>

Inheritance diagram for LArRodBlockCalibrationV1:
Collaboration diagram for LArRodBlockCalibrationV1:

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 ,
  FebConfig , FebConfig_h , InFPGAFormat , InFPGAFormat_h
}
enum  {
  NTrigger , NTrigger_h , Dac , Dac_h ,
  Delay , Delay_h , IsPulsed , IsPulsed1 ,
  IsPulsed2 , IsPulsed3 , IsPulsed4 , IsPulsed5 ,
  IsPulsed6 , IsPulsed7 , feb_ssw , feb_ssw1 ,
  feb_ssw2 , feb_ssw3 , feb_ssw4 , feb_ssw5 ,
  feb_ssw6 , feb_ssw7 , endtag
}

Public Member Functions

 LArRodBlockCalibrationV1 (IMessageSvc *msgSvc)
virtual uint8_t getTDCPhase () const
virtual int getNextRawData (int &channelNumber, std::vector< short > &samples, uint32_t &gain)
virtual int getNextAccumulatedCalibDigit (int &channelNumber, std::vector< std::vector< uint32_t > > &samplesSum, std::vector< std::vector< uint32_t > > &samples2Sum, uint32_t &iStepTrigger, 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 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 hasCalibBlock () const
virtual uint32_t hasPhysicsBlock () const
virtual uint32_t hasRawDataBlock () const
virtual uint32_t hasControlWords () const
uint16_t getNTrigger () const
uint16_t getDAC () const
uint16_t getDelay () const
uint32_t getFebConfig () const
bool getPulsed (const unsigned channelNumber) const
virtual bool canSetCalibration ()
virtual int getNextAccumulatedCalibDigit (int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &Samples2Sum, uint32_t &nStepTriggers, uint32_t &gain)
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 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 hasAccumBlock () const
virtual int getNextEnergy (int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
virtual int getNextAccumulatedDigit (int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &corr2Sum, uint32_t &gain)
virtual uint16_t getStepIndex () const
virtual uint16_t getNStep () const
virtual int setGain (const int GainValue)
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

Static Public Member Functions

static std::string BlockType ()

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
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}

Private Member Functions

void clearBlocks ()
virtual void resetPointers ()

Private Attributes

std::vector< uint32_t > m_RawDataBlock
int m_Result1Counter = 0
int m_Result1Index = 0
int m_Result2Counter = 0
int m_Result2Index = 0
int m_RawDataCounter = 0
int m_RawDataIndex = 0
int 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

Definition at line 21 of file LArRodBlockCalibrationV1.h.

Member Typedef Documentation

◆ FEBMAPTYPE

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

Definition at line 227 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 
FebConfig 
FebConfig_h 
InFPGAFormat 
InFPGAFormat_h 

Definition at line 25 of file LArRodBlockCalibrationV1.h.

25 {
26 NWTot, // First words: DSP event header
27 NWTot_h,
28 FEBID,
29 FEBID_h,
30 FEB_SN, // FEB serial number
31 FEB_SN_h, // FEB serial number
32 ResultsOff1, // Size of results (Calibration averages in DSP)
33 ResultsDim1, // Offset to results
34 ResultsOff2, // Size of times (in physics)
35 ResultsDim2, // Offset to times (in physics)
37 RawDataBlkDim, // Raw FEB event offset
38 EventStatus, // Bits describing the event
40 NGains,
41 NSamples,
44 InFPGAFormat, // added 08.09.2005 - wrong 28.09.2005?
46 };

◆ anonymous enum

anonymous enum
Enumerator
NTrigger 
NTrigger_h 
Dac 
Dac_h 
Delay 
Delay_h 
IsPulsed 
IsPulsed1 
IsPulsed2 
IsPulsed3 
IsPulsed4 
IsPulsed5 
IsPulsed6 
IsPulsed7 
feb_ssw 
feb_ssw1 
feb_ssw2 
feb_ssw3 
feb_ssw4 
feb_ssw5 
feb_ssw6 
feb_ssw7 
endtag 

Definition at line 47 of file LArRodBlockCalibrationV1.h.

47 {
50 Dac,
51 Dac_h,
52 Delay,
53 Delay_h,
62 feb_ssw,
70 endtag //This tag needs to be an odd number, see *) for constructor
71 };

◆ anonymous enum

anonymous enum
protectedinherited
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

◆ LArRodBlockCalibrationV1()

LArRodBlockCalibrationV1::LArRodBlockCalibrationV1 ( IMessageSvc * msgSvc)

Definition at line 25 of file LArRodBlockCalibrationV1.cxx.

27{
28 m_iHeadBlockSize=endtag/2; // The implicit cast rounds down to the right size
31}
LArRodBlockStructure(IMessageSvc *msgSvc, const std::string &blockType)
@ LARNGAIN
Definition CaloGain.h:19

Member Function Documentation

◆ BlockType()

std::string LArRodBlockCalibrationV1::BlockType ( )
inlinestatic

Definition at line 76 of file LArRodBlockCalibrationV1.h.

76{ return std::string("RodBlockCalibrationV1");}

◆ canIncludeRawData()

virtual bool LArRodBlockStructure::canIncludeRawData ( )
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 100 of file LArRodBlockStructure.h.

100{return false;}

◆ canSetCalibration()

virtual bool LArRodBlockCalibrationV1::canSetCalibration ( )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 126 of file LArRodBlockCalibrationV1.h.

126{return false;}

◆ canSetEnergy()

virtual bool LArRodBlockStructure::canSetEnergy ( )
inlinevirtualinherited

◆ canSetNTrigger()

virtual bool LArRodBlockStructure::canSetNTrigger ( )
inlinevirtualinherited

Definition at line 99 of file LArRodBlockStructure.h.

99{return false;}

◆ canSetRawData()

virtual bool LArRodBlockStructure::canSetRawData ( )
inlinevirtualinherited

◆ canSetRawDataFixed()

virtual bool LArRodBlockStructure::canSetRawDataFixed ( )
inlinevirtualinherited

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 97 of file LArRodBlockStructure.h.

97{return false;}

◆ clearBlocks()

void LArRodBlockCalibrationV1::clearBlocks ( )
private

Definition at line 34 of file LArRodBlockCalibrationV1.cxx.

35{
36 m_RawDataBlock.clear();
37}
std::vector< uint32_t > m_RawDataBlock

◆ concatinateFEBs()

void LArRodBlockStructure::concatinateFEBs ( )
virtualinherited

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

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
inlinevirtualinherited

◆ finalizeFEB()

void LArRodBlockStructure::finalizeFEB ( )
virtualinherited

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
inlineprotectedinherited

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

uint16_t LArRodBlockCalibrationV1::getCtrl1 ( uint32_t adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 276 of file LArRodBlockCalibrationV1.cxx.

277{
280 if(adc&0x1) x=x>>16;
281 else x=x&0xffff;
282 uint16_t ctrl=x;
283 return ctrl;
284}
#define x
uint16_t getHeader16(const unsigned n) const
str index
Definition DeMoScan.py:362
setWord1 uint16_t
setEventNumber uint32_t

◆ getCtrl2()

uint16_t LArRodBlockCalibrationV1::getCtrl2 ( uint32_t adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 286 of file LArRodBlockCalibrationV1.cxx.

287{
290 if(adc&0x1) x=x>>16;
291 else x=x&0xffff;
292 uint16_t ctrl=x;
293 return ctrl;
294}

◆ getCtrl3()

uint16_t LArRodBlockCalibrationV1::getCtrl3 ( uint32_t adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 296 of file LArRodBlockCalibrationV1.cxx.

297{
299 int ngains=getHeader16(NGains);
300 int offset=nsamples*(8+64*ngains)+adc/2;
303 if(adc&0x1) x=x>>16;
304 else x=x&0xffff;
305 uint16_t ctrl=x;
306 return ctrl;
307}

◆ getDAC()

uint16_t LArRodBlockCalibrationV1::getDAC ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 251 of file LArRodBlockCalibrationV1.cxx.

252{
255 return (uint16_t) x;
256}

◆ getDelay()

uint16_t LArRodBlockCalibrationV1::getDelay ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 258 of file LArRodBlockCalibrationV1.cxx.

259{
262 return (uint32_t) x;
263}

◆ getDspCodeVersion()

uint32_t LArRodBlockStructure::getDspCodeVersion ( ) const
virtualinherited

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
virtualinherited

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
inlinevirtualinherited

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
inlinevirtualinherited

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
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV4, LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 306 of file LArRodBlockStructure.h.

306 {
307 return 0;
308}

◆ getFebConfig()

uint32_t LArRodBlockCalibrationV1::getFebConfig ( ) const
inline

Definition at line 130 of file LArRodBlockCalibrationV1.h.

131{
132 return getHeader32(FebConfig);
133}
uint32_t getHeader32(const unsigned n) const

◆ getFEBID()

uint32_t LArRodBlockStructure::getFEBID ( ) const
inlineinherited

Definition at line 292 of file LArRodBlockStructure.h.

293{return getHeader32(FEBID);}

◆ getFEBSN()

uint32_t LArRodBlockStructure::getFEBSN ( ) const
inlineinherited

Definition at line 295 of file LArRodBlockStructure.h.

296{return getHeader32(FEBSN);}

◆ getHeader16()

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

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
inlineprotectedinherited

Definition at line 348 of file LArRodBlockStructure.h.

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

◆ getNbSweetCells1()

uint16_t LArRodBlockStructure::getNbSweetCells1 ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 237 of file LArRodBlockStructure.cxx.

237{ return 0; }

◆ getNbSweetCells2()

uint16_t LArRodBlockStructure::getNbSweetCells2 ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 238 of file LArRodBlockStructure.cxx.

238{ return 0; }

◆ getNextAccumulatedCalibDigit() [1/2]

int LArRodBlockCalibrationV1::getNextAccumulatedCalibDigit ( int & channelNumber,
std::vector< std::vector< uint32_t > > & samplesSum,
std::vector< std::vector< uint32_t > > & samples2Sum,
uint32_t & iStepTrigger,
uint32_t & gain )
virtual

Definition at line 135 of file LArRodBlockCalibrationV1.cxx.

136{
137#ifdef LARBSDBGOUTPUT
138 MsgStream logstr(Athena::getMessageSvc(), BlockType());
139#endif
140 //Debug output
141 LARBSDBG("GetAccumulatedCalibDigits for FEB 0x" << MSG::hex <<
142 (uint32_t)getHeader32(FEBID) << MSG::dec << "iStepTriggers=" << iStepTriggers);
143 LARBSDBG("m_Result1Counter" << m_Result1Counter << " m_Result1Index="<< m_Result1Index
144 << " m_channelsPerFEB=" << m_channelsPerFEB);
145 LARBSDBG("requested gain= " << m_fixedGain);
146 if (m_Result1Counter>=m_channelsPerFEB) { //Already beyond maximal number of channels
147 LARBSDBG("Maximum number of channels reached");
148 return 0;
149 }
150 const uint16_t block = getHeader16(ResultsOff1);//Position of the AccumulatedCalibDigits FEB data block
151 if (!block) { //Block does not exist
152 LARBSDBG("No Accumulated Calib Digit Block in this FEB");
153 return 0;
154 }
155 //The m_Result1Channel keeps track of the last read channel
156
157 // Get next channel
158 channelNumber=m_Result1Counter;
159 uint32_t febgain=0;
160 // This is just for fun; these data are not stored here but in RodBlockDecoder.cxx
161 // IWS 08.08.2005 This part is useless in fact - just for debugging
162 const unsigned int nsamples = getHeader16(NSamples);
163 const unsigned int ngains = getHeader16(NGains);
164 const unsigned int ntriggers = (int) getNTrigger();
165 const unsigned int dac = (int) getDAC();
166 const unsigned int delay = (int) getDelay();
167 unsigned int nStepTriggers = 1;
168 const unsigned int FebConfig = (int) getFebConfig();
169 LARBSDBG("This FEB has " << nsamples << " samples");
170 LARBSDBG("This FEB has " << ngains << " gains");
171 LARBSDBG("This FEB has " << ntriggers << " ntriggers");
172 LARBSDBG("This FEB has " << dac << " dac");
173 LARBSDBG("This FEB has " << delay << " delay");
174 LARBSDBG("This FEB has " << std::hex << FebConfig << " FebConfig");
175 if(ngains==0 || nsamples==0) return 0;
176 // IWS 11.01.2006 book vectors
177 if(!iStepTriggers)
178 {
179 samplesSum.resize(nStepTriggers);
180 samples2Sum.resize(nStepTriggers);
181 }
182 // Loop over gains to look for m_fixedGain
183 int offset;
184 uint32_t x,x2;
185 if (m_fixedGain!=CaloGain::LARNGAIN) { //Fixed gain: Search for gain
186 if(FebConfig==0) // free gain - dontknow what to do
187 {
188 LARBSDBG("free gain - dont know what to do Accumulated Calib Digit - return 0");
189 return 0;
190 }
191 else if(FebConfig <4 ) // one fixed gain
192 {
193 febgain=FebConfig;
194 }
195 else if ((FebConfig>3) && (FebConfig<10)) // two gains - not yet ready
196 {
197 LARBSDBG("two gains - dont know what to do yet in Accumulated Calib Digit - return 0");
198 return 0;
199 }
200 else if (FebConfig>9) // three gains - not yet ready
201 {
202 LARBSDBG("three gains - dont know what to do yet in Accumulated Calib Digit - return 0");
203 return 0;
204 }
205 }
206 else
207 {
208 febgain=FebConfig&0x3; // to be done better when this is better understood
209 }
210
211 // nsamples*2 for Sum + Sum2
212 // 11 is the size of the calibration header
213 offset=block + 11 + (channelNumber&0x7F)*(nsamples*2); // needs to be updated for loop on gains
215
216 for (unsigned int i=0;i<nsamples;i++)
217 {
220
221 samplesSum[iStepTriggers].push_back(x);
222 samples2Sum[iStepTriggers].push_back(x2);
223 index+=2;
224 }
225
226 gain=RawToOfflineGain(febgain);
227
229 return 1;
230}
double delay(std::size_t d)
#define LARBSDBG(text)
This class provides decoding/encoding from/to ROD format.
uint32_t RawToOfflineGain(const uint32_t gain) const
IMessageSvc * getMessageSvc(bool quiet=false)

◆ getNextAccumulatedCalibDigit() [2/2]

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

Reimplemented from LArRodBlockStructure.

Definition at line 128 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 )
virtualinherited

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

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 LArRodBlockCalibrationV1::getNextRawData ( int & channelNumber,
std::vector< short > & samples,
uint32_t & gain )
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 59 of file LArRodBlockCalibrationV1.cxx.

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

◆ getNStep()

uint16_t LArRodBlockStructure::getNStep ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3, and LArRodBlockCalibrationV3.

Definition at line 469 of file LArRodBlockStructure.h.

470{
471 return 0;
472}

◆ getNTrigger()

uint16_t LArRodBlockCalibrationV1::getNTrigger ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 243 of file LArRodBlockCalibrationV1.cxx.

244{
245
248 return (uint16_t) x;
249}

◆ getNumberOfGains()

uint32_t LArRodBlockCalibrationV1::getNumberOfGains ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 238 of file LArRodBlockCalibrationV1.cxx.

239{
240 return getHeader16(NGains);
241}

◆ getNumberOfSamples()

uint32_t LArRodBlockCalibrationV1::getNumberOfSamples ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 233 of file LArRodBlockCalibrationV1.cxx.

234{
235 return getHeader16(NSamples);
236}

◆ getNumberOfWords()

uint32_t LArRodBlockStructure::getNumberOfWords ( ) const
inlineinherited

Definition at line 411 of file LArRodBlockStructure.h.

412{
413 return getHeader32(NWTot);
414}

◆ getPulsed()

bool LArRodBlockCalibrationV1::getPulsed ( const unsigned channelNumber) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 135 of file LArRodBlockCalibrationV1.h.

136{
138 return getBit(m_FebBlock+index+IsPulsed/2,channelNumber);
139}
int getBit(const uint32_t *const p, const unsigned chan) const

◆ getRadd()

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

Reimplemented from LArRodBlockStructure.

Definition at line 265 of file LArRodBlockCalibrationV1.cxx.

266{
269 if(index<=0) return 0;
270 index+=(8+64*ngain)*sample+adc/2;
272 if(adc&0x1) return x>>16;
273 return x&0xffff;
274}

◆ getRawDataSize()

uint16_t LArRodBlockStructure::getRawDataSize ( ) const
virtualinherited

◆ getResults1Size()

uint16_t LArRodBlockStructure::getResults1Size ( ) const
virtualinherited

◆ getResults2Size()

uint16_t LArRodBlockStructure::getResults2Size ( ) const
virtualinherited

◆ getStatus()

uint32_t LArRodBlockCalibrationV1::getStatus ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 309 of file LArRodBlockCalibrationV1.cxx.

310{
311 // Get Rod status word
313 int ngains = getHeader16(NGains);
314 int offset = nsamples*(8+64*ngains)+8;
317 return x;
318
319}

◆ getStepIndex()

uint16_t LArRodBlockStructure::getStepIndex ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3, and LArRodBlockCalibrationV3.

Definition at line 465 of file LArRodBlockStructure.h.

466{
467 return 0;
468}

◆ getSumE()

int32_t LArRodBlockStructure::getSumE ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 310 of file LArRodBlockStructure.h.

310 {
311 return 0;
312}

◆ getTDCPhase()

uint8_t LArRodBlockCalibrationV1::getTDCPhase ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 51 of file LArRodBlockCalibrationV1.cxx.

52{
53 return (getHeader16(NSamples)>>8);
54}

◆ getVectorHeader16()

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

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
inlineprotectedinherited

Definition at line 358 of file LArRodBlockStructure.h.

359{
360 return (*m_vFragment)[n>>1];
361}
std::vector< uint32_t > * m_vFragment

◆ getVROBEx()

int32_t LArRodBlockStructure::getVROBEx ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 318 of file LArRodBlockStructure.h.

318 {
319return 0;
320}

◆ getVROBEy()

int32_t LArRodBlockStructure::getVROBEy ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 322 of file LArRodBlockStructure.h.

322 {
323return 0;
324}

◆ getVROBEz()

int32_t LArRodBlockStructure::getVROBEz ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 326 of file LArRodBlockStructure.h.

326 {
327return 0;
328}

◆ getVROBFebId()

uint32_t LArRodBlockStructure::getVROBFebId ( )
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV5, and LArRodBlockPhysicsV6.

Definition at line 314 of file LArRodBlockStructure.h.

314 {
315return 0;
316}

◆ getVROBSumE()

int32_t LArRodBlockStructure::getVROBSumE ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockPhysicsV6.

Definition at line 330 of file LArRodBlockStructure.h.

330 {
331return 0;
332}

◆ hasAccumBlock()

virtual uint32_t LArRodBlockStructure::hasAccumBlock ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3.

Definition at line 121 of file LArRodBlockStructure.h.

121{return 0;} ;

◆ hasCalibBlock()

virtual uint32_t LArRodBlockCalibrationV1::hasCalibBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 97 of file LArRodBlockCalibrationV1.h.

97{return getHeader16(ResultsOff1);} ;

◆ hasControlWords()

virtual uint32_t LArRodBlockCalibrationV1::hasControlWords ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 100 of file LArRodBlockCalibrationV1.h.

100{return getHeader16(RawDataBlkOff);} ;

◆ hasPhysicsBlock()

virtual uint32_t LArRodBlockCalibrationV1::hasPhysicsBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 98 of file LArRodBlockCalibrationV1.h.

98{return getHeader16(ResultsOff2);} ;

◆ hasRawDataBlock()

virtual uint32_t LArRodBlockCalibrationV1::hasRawDataBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 99 of file LArRodBlockCalibrationV1.h.

99{return getHeader16(RawDataBlkOff);} ;

◆ initializeFEB()

void LArRodBlockStructure::initializeFEB ( const uint32_t id)
virtualinherited

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

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
inlineprotectedinherited

Definition at line 388 of file LArRodBlockStructure.h.

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

◆ LE_getVectorHeader16()

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

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}

◆ LE_setHeader16()

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

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

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
virtualinherited

Reimplemented in LArRodBlockPhysicsV4.

Definition at line 148 of file LArRodBlockStructure.cxx.

◆ OfflineToRawGain()

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

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
virtualinherited

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
inlineinherited

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
inlineinherited

Definition at line 173 of file LArRodBlockStructure.h.

173{ return m_error_next_feb;}

◆ resetPointers()

void LArRodBlockCalibrationV1::resetPointers ( )
privatevirtual

◆ setBit()

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

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

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

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

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

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

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

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

Definition at line 166 of file LArRodBlockStructure.h.

167 {m_rearrangeFirstSample=rearrangeFirstSample;}

◆ setFragment()

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

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

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}
const uint32_t * m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointer

◆ setGain()

int LArRodBlockStructure::setGain ( const int GainValue)
virtualinherited

◆ setHeader16()

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

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

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

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

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

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

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

◆ setPulsed()

void LArRodBlockStructure::setPulsed ( const unsigned channelNumber)
virtualinherited

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

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

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

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

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 * > & )
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_channelsPerFEB

int LArRodBlockStructure::m_channelsPerFEB
protectedinherited

Definition at line 219 of file LArRodBlockStructure.h.

◆ m_error_next_feb

bool LArRodBlockStructure::m_error_next_feb
protectedinherited

Definition at line 237 of file LArRodBlockStructure.h.

◆ m_Ex

int32_t LArRodBlockStructure::m_Ex
protectedinherited

Definition at line 203 of file LArRodBlockStructure.h.

◆ m_Ey

int32_t LArRodBlockStructure::m_Ey
protectedinherited

Definition at line 204 of file LArRodBlockStructure.h.

◆ m_Ez

int32_t LArRodBlockStructure::m_Ez
protectedinherited

Definition at line 205 of file LArRodBlockStructure.h.

◆ m_FebBlock

const uint32_t* LArRodBlockStructure::m_FebBlock
protectedinherited

Definition at line 221 of file LArRodBlockStructure.h.

◆ m_FebBlockSize

int32_t LArRodBlockStructure::m_FebBlockSize
protectedinherited

Definition at line 223 of file LArRodBlockStructure.h.

◆ m_fixedGain

int LArRodBlockCalibrationV1::m_fixedGain
private

Definition at line 117 of file LArRodBlockCalibrationV1.h.

◆ m_iHeadBlockSize

unsigned short LArRodBlockStructure::m_iHeadBlockSize
protectedinherited

Definition at line 217 of file LArRodBlockStructure.h.

◆ m_logstr

MsgStream LArRodBlockStructure::m_logstr
protectedinherited

Definition at line 244 of file LArRodBlockStructure.h.

◆ m_mFebBlocks

FEBMAPTYPE LArRodBlockStructure::m_mFebBlocks
protectedinherited

Definition at line 228 of file LArRodBlockStructure.h.

◆ m_MiddleHeaderSize

int32_t LArRodBlockStructure::m_MiddleHeaderSize
protectedinherited

Definition at line 233 of file LArRodBlockStructure.h.

◆ m_numberOfEx

uint32_t LArRodBlockStructure::m_numberOfEx
protectedinherited

Definition at line 210 of file LArRodBlockStructure.h.

◆ m_numberOfEy

uint32_t LArRodBlockStructure::m_numberOfEy
protectedinherited

Definition at line 211 of file LArRodBlockStructure.h.

◆ m_numberOfEz

uint32_t LArRodBlockStructure::m_numberOfEz
protectedinherited

Definition at line 212 of file LArRodBlockStructure.h.

◆ m_numberOfSumE

uint32_t LArRodBlockStructure::m_numberOfSumE
protectedinherited

Definition at line 213 of file LArRodBlockStructure.h.

◆ m_OfflineToRawGainMap

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

Definition at line 17 of file LArRodBlockStructure.h.

◆ m_pRODblock

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

Definition at line 226 of file LArRodBlockStructure.h.

◆ m_RawDataBlock

std::vector<uint32_t> LArRodBlockCalibrationV1::m_RawDataBlock
private

Definition at line 108 of file LArRodBlockCalibrationV1.h.

◆ m_RawDataCounter

int LArRodBlockCalibrationV1::m_RawDataCounter = 0
private

Definition at line 114 of file LArRodBlockCalibrationV1.h.

◆ m_RawDataIndex

int LArRodBlockCalibrationV1::m_RawDataIndex = 0
private

Definition at line 115 of file LArRodBlockCalibrationV1.h.

◆ m_RawToOfflineGainMap

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

Definition at line 16 of file LArRodBlockStructure.h.

◆ m_rearrangeFirstSample

unsigned int LArRodBlockStructure::m_rearrangeFirstSample
protectedinherited

Definition at line 235 of file LArRodBlockStructure.h.

◆ m_Result1Counter

int LArRodBlockCalibrationV1::m_Result1Counter = 0
private

Definition at line 110 of file LArRodBlockCalibrationV1.h.

◆ m_Result1Index

int LArRodBlockCalibrationV1::m_Result1Index = 0
private

Definition at line 111 of file LArRodBlockCalibrationV1.h.

◆ m_Result2Counter

int LArRodBlockCalibrationV1::m_Result2Counter = 0
private

Definition at line 112 of file LArRodBlockCalibrationV1.h.

◆ m_Result2Index

int LArRodBlockCalibrationV1::m_Result2Index = 0
private

Definition at line 113 of file LArRodBlockCalibrationV1.h.

◆ m_ROB_to_decode

int32_t LArRodBlockStructure::m_ROB_to_decode
protectedinherited

Definition at line 240 of file LArRodBlockStructure.h.

◆ m_RodBlock

const uint32_t* LArRodBlockStructure::m_RodBlock
protectedinherited

Definition at line 222 of file LArRodBlockStructure.h.

◆ m_RodBlockSize

int32_t LArRodBlockStructure::m_RodBlockSize
protectedinherited

Definition at line 224 of file LArRodBlockStructure.h.

◆ m_SumE

int32_t LArRodBlockStructure::m_SumE
protectedinherited

Definition at line 206 of file LArRodBlockStructure.h.

◆ m_vFragment

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

Definition at line 225 of file LArRodBlockStructure.h.

◆ m_virtualROBJump

uint32_t LArRodBlockStructure::m_virtualROBJump
protectedinherited

Definition at line 239 of file LArRodBlockStructure.h.

◆ m_virtualROBPointer

const uint32_t* LArRodBlockStructure::m_virtualROBPointer
protectedinherited

Definition at line 241 of file LArRodBlockStructure.h.

◆ m_virtualROBPointerLocal

const uint32_t* LArRodBlockStructure::m_virtualROBPointerLocal
protectedinherited

Definition at line 242 of file LArRodBlockStructure.h.


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