ATLAS Offline Software
LArRodBlockStructure.h
Go to the documentation of this file.
1 //Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 
8 #ifndef LARBYTESTREAM_LARRODBLOCKSTRUCTURE_H
9 #define LARBYTESTREAM_LARRODBLOCKSTRUCTURE_H
10 
29 // #include "eformat/RODHeader.h"
31 #include <stdint.h>
32 #include <iostream>
33 #include <vector>
34 #include <map>
35 #include <utility>
36 
37 //#define LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
38 
39 //class LArCablingService;
40 class LArOnlineID;
41 class LArRawChannel;
42 class LArDigit;
44 class LArCalibDigit;
46 
48 {
49 protected:
50  // ----------------- Header words indexes -----------------
51  enum {
52  NWTot, // Number of words in DSP block
54  FEBID, // FEB ID
56  FEBSN, // FEB Serial Number
58  endtag // This tag needs to be an odd number, see *) for constructor
59  };
60 
61 public :
62  // constructor
64  virtual ~LArRodBlockStructure();
65 
66  // ----------------- Encoding methods -----------------
67  // Never to be used while decoding!
68  virtual void initializeFragment(std::vector<uint32_t>& fragment);
69  virtual void initializeFEB(const uint32_t id);
70  virtual void setNumberOfSamples(const uint8_t n);
71  virtual void setNumberOfGains(const uint8_t n);
72  virtual void setTDCPhase(const uint8_t n); //useful only TB SW validation
73  virtual void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain);
74  virtual void setRawData(const int channel, const std::vector<short>& samples, const uint32_t gain);
75  virtual void setRawDataFixed(const int channel, const std::vector<short>& samples, const uint32_t gain);
76  virtual void setEtQ(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain);
77  virtual void setDAC(const uint16_t DACValue);
78  virtual void setDelay(const uint16_t DelayValue);
79  virtual void setPulsed (const unsigned channelNumber);
80  virtual void setNTrigger (const uint16_t NTrigger);
81  virtual void finalizeFEB();
82  virtual void setEx(double);
83  virtual void setEy(double);
84  virtual void setEz(double);
85  virtual void setSumE(double);
86  //Function to sort RawData Container before encoding. Unfortunatly, virtal template member functions are not allowed.
87  virtual void sortDataVector(std::vector<const LArRawChannel*>& );
88  virtual void sortDataVector( std::vector<const LArDigit*>& );
89  virtual void sortDataVector( std::vector<const LArCalibDigit*>& );
90  virtual void sortDataVector( std::vector<const LArAccumulatedCalibDigit*>& );
91  virtual void sortDataVector( std::vector<const LArAccumulatedDigit*>& );
92  // build full ROD fragment
93  // virtual void concatinateFEBs(RODHeader* fullHeader=NULL);
94  virtual void concatinateFEBs( );
95  //Check features of this RodBlock
96  virtual bool canSetEnergy() { return false;}
97  virtual bool canSetRawData() {return false;}
98  virtual bool canSetRawDataFixed() {return false;}
99  virtual bool canSetCalibration() {return false;}
100  virtual bool canSetNTrigger() {return false;}
101  virtual bool canIncludeRawData() {return false;}
102 
103  // ----------------- Decoding methods -----------------
104  // Never to be used while encoding!
105  // set full ROD fragment before trying to get anything!
106  inline bool setFragment(const uint32_t* p, uint32_t n);
107  // virtual bool nextFEB(RODHeader* fullHeader=NULL);
108  inline bool nextFEB ( );
109  inline uint32_t getNumberOfWords() const;
110  inline uint32_t getFEBID() const;
111  inline uint32_t getFEBSN() const;
112 
113  virtual inline int32_t getEx() const;
114  virtual inline int32_t getEy() const;
115  virtual inline int32_t getEz() const;
116  virtual inline int32_t getSumE() const;
117  virtual inline uint32_t getVROBFebId();
118  virtual inline int32_t getVROBEx() const;
119  virtual inline int32_t getVROBEy() const;
120  virtual inline int32_t getVROBEz() const;
121  virtual inline int32_t getVROBSumE() const;
122  virtual inline uint32_t hasCalibBlock() const {return 0;} ;
123  virtual inline uint32_t hasAccumBlock() const {return 0;} ;
124  virtual inline uint32_t hasPhysicsBlock() const {return 0;} ;
125  virtual inline uint32_t hasRawDataBlock() const {return 0;} ;
126  virtual inline uint32_t hasControlWords() const {return 0;} ;
127 
128  virtual inline int getNextEnergy(int& channelNumber, int32_t& energy, int32_t& time,int32_t& quality,uint32_t& gain);
129  virtual int getNextRawData(int& channelNumber, std::vector<short>& samples, uint32_t& gain);
130  virtual int getNextAccumulatedCalibDigit(int& channelNumber, std::vector < uint64_t >& SamplesSum, std::vector < uint64_t >& Samples2Sum, uint32_t& nStepTriggers, uint32_t& gain);
131  virtual int getNextAccumulatedDigit(int& channelNumber, std::vector<uint64_t>& SamplesSum, std::vector < uint64_t >& corr2Sum, uint32_t& gain);
132 
133  // Get functions related to hasCalibBlock
134  virtual inline bool getPulsed(unsigned channelNumber) const;
135  virtual inline uint16_t getDAC() const;
136  virtual inline uint16_t getDelay() const;
137  virtual inline uint16_t getNTrigger() const;
138  virtual inline uint16_t getStepIndex() const;
139  virtual inline uint16_t getNStep() const;
140 
141  virtual uint8_t getTDCPhase() const; //useful only TB SW validation
142  virtual int setGain(const int GainValue); //Define fixed gain in case of fixed gain mode.
143 
144  virtual uint32_t getNumberOfSamples() const;
145  virtual uint32_t getNumberOfGains() const;
146 
147  // Information access for Dsp and Feb headers decoding return 0 if information is absent
148  virtual uint16_t getResults1Size() const;
149  virtual uint16_t getResults2Size() const;
150  virtual uint16_t getRawDataSize() const;
151  virtual uint16_t getNbSweetCells1() const;
152  virtual uint16_t getNbSweetCells2() const;
153  virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const;
154  virtual uint16_t getCtrl1(uint32_t adc) const;
155  virtual uint16_t getCtrl2(uint32_t adc) const;
156  virtual uint16_t getCtrl3(uint32_t adc) const;
157  virtual uint32_t getStatus() const;
158  virtual uint32_t getDspCodeVersion() const;
159  virtual int32_t getDspEventCounter() const;
160 
161  virtual uint32_t onlineCheckSum() const;
162  virtual uint32_t offlineCheckSum() const;
163  // To decode the virtual ROB fragment
164  virtual int setFragmentVirtualROB(const uint32_t* p, uint32_t n);
165 
166  // print the full ROD fragment
167  virtual void dumpFragment();
168  inline void setFirstSample(const int rearrangeFirstSample)
169  {m_rearrangeFirstSample=rearrangeFirstSample;}
170 
171  //inline uint32_t FebToOfflineGain(const uint32_t gain) const;
172  //inline uint32_t OfflineToFebGain(const uint32_t gain) const;
173  inline uint32_t RawToOfflineGain(const uint32_t gain) const;
174  inline uint32_t OfflineToRawGain(const uint32_t gain) const;
175  virtual inline int FebToRodChannel(int ch) const
176  { return (ch>>3) + ((ch&0x7)<<4); };
177  inline bool report_error ( void ) const { return m_error_next_feb;}
178 
179  protected:
180  // ----------------- Encoding methods -----------------
181  // The following functions write to m_vFragment (vector)
182  inline void setHeader16(const unsigned n, const uint16_t w); // n should be choosen from the above enum
183  inline void setHeader32(const unsigned n, const uint32_t w); // n should be choosen from the above enum
184 
185  // ----------------- Decoding methods -----------------
186  // The method to call to reset pointers and counters
187  virtual void resetPointers() { return; }
188  // The method to call to set pointers and counters
189  virtual bool setPointers() { return true;}
190  // The following functions read from m_vFragment (vector) (to be used during encoding)
191  inline uint16_t getVectorHeader16(const unsigned n) const; // n should be choosen from the above enum
192  inline uint32_t getVectorHeader32(const unsigned n) const; // n should be choosen from the above enum
193  // The following functions read from m_FebBlock (uint32_t*) (to be used during decoding)
194  inline uint16_t getHeader16(const unsigned n) const; // n should be choosen from the above enum
195  inline uint32_t getHeader32(const unsigned n) const; // n should be choosen from the above enum
196  // The following funcitons are Little Endian versions for backward compatibility
197  inline uint16_t LE_getHeader16(const unsigned n) const; // n should be choosen from the above enum
198  inline void LE_setHeader16(const unsigned n, const uint16_t w); // n should be choosen from the above enum
199  inline uint16_t LE_getVectorHeader16(const unsigned n) const; // n should be choosen from the above enum
200 
201  // set/read the bitmap for a ROD channel
202  inline void setBit(uint32_t *const p, const unsigned chan);
203  inline int getBit(const uint32_t *const p, const unsigned chan) const;
204 
205  // ----------------- Data members -----------------
206 
207  int32_t m_Ex;
208  int32_t m_Ey;
209  int32_t m_Ez;
210  int32_t m_SumE;
211 #ifndef NDEBUG
212  // In Debug mode, many messages are printed for the setEx/y/z method
213  // Let's avoid them
218 #endif
219 
220  //Offsets for the fixed size Blocks..
221  unsigned short m_iHeadBlockSize;
222  //Only for encoding: Block for Header
223  //std::vector<uint32_t> m_HeaderBlock;
224  //Number of channels per FEB
226  //Full ROD fragment for decoding
227  const uint32_t* m_FebBlock; //Pointer to the first element of the current FEB-Fragement (used only for decoding!)
228  const uint32_t* m_RodBlock; //Pointer to the very beginning of the ROD-Block
229  int32_t m_FebBlockSize;
230  int32_t m_RodBlockSize;
231  std::vector<uint32_t> *m_vFragment; //Pointer to the vector that holds the current FEB-block (used only for encoding!)
232  std::vector<uint32_t> *m_pRODblock; //Pointer to the ROD data vector
233  typedef std::map<uint32_t, std::vector<uint32_t> > FEBMAPTYPE;
234  FEBMAPTYPE m_mFebBlocks; //Map of feb-Blocks (for encoding only);
235  //static uint32_t FebToOfflineGainMap[3];
236  //static uint32_t OfflineToFebGainMap[3];
240  // Free gain mode needs raw data to be rearranged
242  // error in the next FEB
244  // Jump from one virtual ROB
249 };
250 
251 // Implementation of inline-functions:
253 {
254  resetPointers();
255  m_FebBlock = p;
257  m_RodBlockSize = n;
258  uint32_t BlockSize = 0;
259 
260  if (n==0) {
261  std::cout << "ERROR while decoding LArByteStream: Got Rod block size 0" << std::endl;
262  return false;
263  }
264 
265  BlockSize = getNumberOfWords();
266  if (BlockSize>n) {
267  std::cout << "ERROR while decoding LArByteStream: Found FEB block of size " << BlockSize << " in a ROD block of size " << n << std::endl;
268  return false;
269  }
270  m_FebBlockSize = BlockSize;
271 
272  m_error_next_feb = false;
273  //std::cout << "1: FEB found with size " << m_FebBlockSize << std::endl;
274 
275  return setPointers();
276 }
277 
278 /* Decode the virtual ROB fragment. If data is inconsistent with
279  data size, return 0 */
281  uint32_t n){
282  m_ROB_to_decode=0;
286  if ( n<2 ) { std::cout << "ERROR" << std::endl; return 0;}
287  m_virtualROBJump = ((*p)>>16)>>1; // Divide by two (two FEBs-1ROB)
288  m_ROB_to_decode = ( (*p) & 0xFFFF )<<1; // Multiply by two
289  if ( (n - m_virtualROBJump*m_ROB_to_decode-1) ){
290  std::cout << "ERROR AGAIN" << std::endl;
291  return 0;
292  }
294  return m_ROB_to_decode;
295 }
296 
298 {return getHeader32(FEBID);}
299 
301 {return getHeader32(FEBSN);}
302 
303 inline int32_t LArRodBlockStructure::getEx() const {
304  return 0;
305 }
306 
307 inline int32_t LArRodBlockStructure::getEy() const {
308  return 0;
309 }
310 
311 inline int32_t LArRodBlockStructure::getEz() const {
312  return 0;
313 }
314 
315 inline int32_t LArRodBlockStructure::getSumE() const {
316  return 0;
317 }
318 
320 return 0;
321 }
322 
323 inline int32_t LArRodBlockStructure::getVROBEx() const{
324 return 0;
325 }
326 
327 inline int32_t LArRodBlockStructure::getVROBEy() const{
328 return 0;
329 }
330 
331 inline int32_t LArRodBlockStructure::getVROBEz() const{
332 return 0;
333 }
334 
335 inline int32_t LArRodBlockStructure::getVROBSumE() const{
336 return 0;
337 }
338 
339 /*
340 inline int LArRodBlockStructure::FebToRodChannel(int ch) const
341  //{return ch/8 + 16 * (ch%8);}
342 {return (ch>>3) + ((ch&0x7)<<4);}
343 
344 inline int LArRodBlockStructure::RodToFebChannel(int ch) const
345  //{return ch/16 + 8 * (ch%16);}
346 {return (ch>>4) + ((ch&0xf)<<3);}
347 */
348 
350 {return m_RawToOfflineGainMap[gain];} //For efficency, don't check range
351 
353 {return m_OfflineToRawGainMap[gain];} //For efficency, don't check range
354 
355 inline uint16_t LArRodBlockStructure::getHeader16(const unsigned n) const // n should be choosen from the above enum
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 }
364 
365 inline uint32_t LArRodBlockStructure::getHeader32(const unsigned n) const // n should be choosen from the above enum
366 {return m_FebBlock[n>>1];}
367 
368 inline uint16_t LArRodBlockStructure::getVectorHeader16(const unsigned n) const // n should be choosen from the above enum
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 }
374 
375 inline uint32_t LArRodBlockStructure::getVectorHeader32(const unsigned n) const // n should be choosen from the above enum
376 {
377  return (*m_vFragment)[n>>1];
378 }
379 
380 inline void LArRodBlockStructure::setHeader16(const unsigned n, const uint16_t w)
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 }
393 
394 inline void LArRodBlockStructure::setHeader32(const unsigned n, const uint32_t w)
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 }
404 
405 inline uint16_t LArRodBlockStructure::LE_getHeader16(const unsigned n) const // n should be choosen from the above enum
406 {
407  return (reinterpret_cast<const uint16_t*>(m_FebBlock))[n];
408 }
409 
410 inline uint16_t LArRodBlockStructure::LE_getVectorHeader16(const unsigned n) const // n should be choosen from the above enum
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 }
416 
417 inline void LArRodBlockStructure::LE_setHeader16(const unsigned n, const uint16_t w)
418 {
419 #ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
420  if ((unsigned)n>=m_vFragment->size()*2) {
421  std::cout << "LArRodBlockStructure::LE_setHeader16 ERROR: WRITE BEYOND ARRAY BONDARY!" << std::endl;
422  std::abort();
423  }
424 #endif
425  ((uint16_t*)(&(m_vFragment->front())))[n] = w;
426 }
427 
429 {
430  return getHeader32(NWTot);
431 }
432 
433 inline int LArRodBlockStructure::getBit(const uint32_t *const p, const unsigned chan) const
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 }
442 
443 
444 inline void LArRodBlockStructure::setBit(uint32_t *const p, const unsigned chan)
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 }
455 
456 inline int LArRodBlockStructure::getNextEnergy(int&, int32_t&, int32_t&, int32_t&,uint32_t&)
457 {
458  std::cout << "ERROR: Function getNextEnergy not implemented in this instance of LArRodBlockStructure!\n";
459  return 0;
460 }
461 
462 inline bool LArRodBlockStructure::getPulsed(unsigned) const
463 {
464  std::cout << "ERROR: Function getPulsed not implemented in this instance of LArRodBlockStructure!\n";
465  return 0;
466 }
467 
469 {
470  std::cout << "ERROR: Function getDAC not implemented in this instance of LArRodBlockStructure!\n";
471  return 0;
472 }
473 
475 {
476  std::cout << "ERROR: Function getDelay not implemented in this instance of LArRodBlockStructure!\n";
477  return 0;
478 }
479 
481 {
482  std::cout << "ERROR: Function getNTrigger not implemented in this instance of LArRodBlockStructure!\n";
483  return 0;
484 }
485 
487 {
488  std::cout << "ERROR: Function getStepIndex not implemented in this instance of LArRodBlockStructure!\n";
489  return 0;
490 }
492 {
493  std::cout << "ERROR: Function getNStep not implemented in this instance of LArRodBlockStructure!\n";
494  return 0;
495 }
496 
498 {
499  resetPointers();
500 
501  const int32_t FebOffset = m_FebBlockSize+m_MiddleHeaderSize;
502  const int32_t LeftSize = m_RodBlockSize-FebOffset+m_RodBlock-m_FebBlock;
503  if ( LeftSize<=0 ) return false; //No next feb
504 
505  m_FebBlock += FebOffset; //Jump to the next FEB fragment
506  const int32_t BlockSize = getNumberOfWords();
507  //std::cout << "LeftSize=" << LeftSize << " BlockSize=" << BlockSize << std::endl;
508  if (BlockSize>LeftSize) {
509  std::cout << "ERROR while decoding LArByteStream: Found FEB block of size " << BlockSize << " in a ROD block of size " << LeftSize << std::endl;
510  m_error_next_feb = true;
511  return false;
512  }
513  //std::cout << "Second FEB ok, size= " << LeftSize <<std::endl;
514 
515  //m_FebBlockSize = LeftSize; //should be =BlockSize;
516  m_FebBlockSize=BlockSize;
517 
518  //std::cout << "2: FEB found with size " << m_FebBlockSize << std::endl;
519  setPointers();
520  return true;
521 }
522 
523 #endif
LArRodBlockStructure
Definition: LArRodBlockStructure.h:48
beamspotman.r
def r
Definition: beamspotman.py:676
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LArRodBlockStructure::setNTrigger
virtual void setNTrigger(const uint16_t NTrigger)
Definition: LArRodBlockStructure.cxx:75
LArRodBlockStructure::getNbSweetCells1
virtual uint16_t getNbSweetCells1() const
Definition: LArRodBlockStructure.cxx:255
LArRodBlockStructure::getNumberOfSamples
virtual uint32_t getNumberOfSamples() const
Definition: LArRodBlockStructure.cxx:245
LArRodBlockStructure::getRadd
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
Definition: LArRodBlockStructure.cxx:247
LArAccumulatedCalibDigit
Data class for calibration ADC samples preprocessed by the DSP.
Definition: LArAccumulatedCalibDigit.h:42
LArRodBlockStructure::m_vFragment
std::vector< uint32_t > * m_vFragment
Definition: LArRodBlockStructure.h:231
LArRodBlockStructure::hasAccumBlock
virtual uint32_t hasAccumBlock() const
Definition: LArRodBlockStructure.h:123
LArRodBlockStructure::hasPhysicsBlock
virtual uint32_t hasPhysicsBlock() const
Definition: LArRodBlockStructure.h:124
LArRodBlockStructure::canSetNTrigger
virtual bool canSetNTrigger()
Definition: LArRodBlockStructure.h:100
LArRodBlockStructure::FEBID_h
@ FEBID_h
Definition: LArRodBlockStructure.h:55
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
LArRodBlockStructure::getStepIndex
virtual uint16_t getStepIndex() const
Definition: LArRodBlockStructure.h:486
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LArRodBlockStructure::setEz
virtual void setEz(double)
Definition: LArRodBlockStructure.cxx:212
LArRodBlockStructure::setGain
virtual int setGain(const int GainValue)
Definition: LArRodBlockStructure.cxx:224
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
LArRodBlockStructure::getNbSweetCells2
virtual uint16_t getNbSweetCells2() const
Definition: LArRodBlockStructure.cxx:256
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
LArRodBlockStructure::getNextAccumulatedDigit
virtual int getNextAccumulatedDigit(int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &corr2Sum, uint32_t &gain)
Definition: LArRodBlockStructure.cxx:100
LArRodBlockStructure::getVectorHeader32
uint32_t getVectorHeader32(const unsigned n) const
Definition: LArRodBlockStructure.h:375
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LArRodBlockStructure::LArRodBlockStructure
LArRodBlockStructure()
Definition: LArRodBlockStructure.cxx:22
LArRodBlockStructure::getNumberOfWords
uint32_t getNumberOfWords() const
Definition: LArRodBlockStructure.h:428
LArRodBlockStructure::NWTot_h
@ NWTot_h
Definition: LArRodBlockStructure.h:53
LArRodBlockStructure::m_FebBlockSize
int32_t m_FebBlockSize
Definition: LArRodBlockStructure.h:229
LArRodBlockStructure::setNextEnergy
virtual void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
Definition: LArRodBlockStructure.cxx:106
LArRodBlockStructure::m_Ez
int32_t m_Ez
Definition: LArRodBlockStructure.h:209
LArRodBlockStructure::FEBMAPTYPE
std::map< uint32_t, std::vector< uint32_t > > FEBMAPTYPE
Definition: LArRodBlockStructure.h:233
LArRodBlockStructure::FEBSN
@ FEBSN
Definition: LArRodBlockStructure.h:56
LArRodBlockStructure::LE_getVectorHeader16
uint16_t LE_getVectorHeader16(const unsigned n) const
Definition: LArRodBlockStructure.h:410
LArRodBlockStructure::setTDCPhase
virtual void setTDCPhase(const uint8_t n)
Definition: LArRodBlockStructure.cxx:144
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArRodBlockStructure::getNTrigger
virtual uint16_t getNTrigger() const
Definition: LArRodBlockStructure.h:480
LArRodBlockStructure::getRawDataSize
virtual uint16_t getRawDataSize() const
Definition: LArRodBlockStructure.cxx:254
LArRodBlockStructure::getNStep
virtual uint16_t getNStep() const
Definition: LArRodBlockStructure.h:491
LArRodBlockStructure::concatinateFEBs
virtual void concatinateFEBs()
Definition: LArRodBlockStructure.cxx:81
LArRodBlockStructure::setPulsed
virtual void setPulsed(const unsigned channelNumber)
Definition: LArRodBlockStructure.cxx:69
LArRodBlockStructure::m_error_next_feb
bool m_error_next_feb
Definition: LArRodBlockStructure.h:243
LArRodBlockStructure::m_FebBlock
const uint32_t * m_FebBlock
Definition: LArRodBlockStructure.h:227
LArRodBlockStructure::setHeader16
void setHeader16(const unsigned n, const uint16_t w)
Definition: LArRodBlockStructure.h:380
LArRodBlockStructure::getVROBEx
virtual int32_t getVROBEx() const
Definition: LArRodBlockStructure.h:323
LArRodBlockStructure::setEy
virtual void setEy(double)
Definition: LArRodBlockStructure.cxx:206
LArRodBlockStructure::hasRawDataBlock
virtual uint32_t hasRawDataBlock() const
Definition: LArRodBlockStructure.h:125
LArRodBlockStructure::getNextEnergy
virtual int getNextEnergy(int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
Definition: LArRodBlockStructure.h:456
LArRodBlockStructure::m_pRODblock
std::vector< uint32_t > * m_pRODblock
Definition: LArRodBlockStructure.h:232
LArRodBlockStructure::getCtrl2
virtual uint16_t getCtrl2(uint32_t adc) const
Definition: LArRodBlockStructure.cxx:249
LArRodBlockStructure::OfflineToRawGain
uint32_t OfflineToRawGain(const uint32_t gain) const
Definition: LArRodBlockStructure.h:352
LArRodBlockStructure::canSetRawData
virtual bool canSetRawData()
Definition: LArRodBlockStructure.h:97
LArRodBlockStructure::offlineCheckSum
virtual uint32_t offlineCheckSum() const
Definition: LArRodBlockStructure.cxx:163
LArRodBlockStructure::getDspCodeVersion
virtual uint32_t getDspCodeVersion() const
Definition: LArRodBlockStructure.cxx:258
LArRodBlockStructure::m_SumE
int32_t m_SumE
Definition: LArRodBlockStructure.h:210
LArRodBlockStructure::setPointers
virtual bool setPointers()
Definition: LArRodBlockStructure.h:189
LArRodBlockStructure::getSumE
virtual int32_t getSumE() const
Definition: LArRodBlockStructure.h:315
LArRodBlockStructure::m_iHeadBlockSize
unsigned short m_iHeadBlockSize
Definition: LArRodBlockStructure.h:221
LArRodBlockStructure::dumpFragment
virtual void dumpFragment()
Definition: LArRodBlockStructure.cxx:175
LArRodBlockStructure::m_rearrangeFirstSample
unsigned int m_rearrangeFirstSample
Definition: LArRodBlockStructure.h:241
LArRodBlockStructure::m_numberOfSumE
uint32_t m_numberOfSumE
Definition: LArRodBlockStructure.h:217
LArRodBlockStructure::setDAC
virtual void setDAC(const uint16_t DACValue)
Definition: LArRodBlockStructure.cxx:57
LArRodBlockStructure::getHeader32
uint32_t getHeader32(const unsigned n) const
Definition: LArRodBlockStructure.h:365
LArRodBlockStructure::initializeFragment
virtual void initializeFragment(std::vector< uint32_t > &fragment)
Definition: LArRodBlockStructure.cxx:188
LArAccumulatedDigit
Data class for ADC samples and autocorr preprocessed by the DSP.
Definition: LArAccumulatedDigit.h:32
LArRodBlockStructure::getVectorHeader16
uint16_t getVectorHeader16(const unsigned n) const
Definition: LArRodBlockStructure.h:368
LArRodBlockStructure::canIncludeRawData
virtual bool canIncludeRawData()
Definition: LArRodBlockStructure.h:101
LArRodBlockStructure::getDspEventCounter
virtual int32_t getDspEventCounter() const
Definition: LArRodBlockStructure.cxx:264
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
LArRodBlockStructure::RawToOfflineGain
uint32_t RawToOfflineGain(const uint32_t gain) const
Definition: LArRodBlockStructure.h:349
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
LArDigit
Liquid Argon digit base class.
Definition: LArDigit.h:25
LArRawChannel
Liquid Argon ROD output object base class.
Definition: LArRawChannel.h:40
LArRodBlockStructure::getEx
virtual int32_t getEx() const
Definition: LArRodBlockStructure.h:303
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
beamspotman.n
n
Definition: beamspotman.py:731
RawEvent.h
LArRodBlockStructure::FebToRodChannel
virtual int FebToRodChannel(int ch) const
Definition: LArRodBlockStructure.h:175
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
LArRodBlockStructure::canSetRawDataFixed
virtual bool canSetRawDataFixed()
Definition: LArRodBlockStructure.h:98
LArRodBlockStructure::canSetCalibration
virtual bool canSetCalibration()
Definition: LArRodBlockStructure.h:99
LArRodBlockStructure::getFEBSN
uint32_t getFEBSN() const
Definition: LArRodBlockStructure.h:300
LArRodBlockStructure::finalizeFEB
virtual void finalizeFEB()
Definition: LArRodBlockStructure.cxx:194
LArRodBlockStructure::setEtQ
virtual void setEtQ(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
Definition: LArRodBlockStructure.cxx:120
LArRodBlockStructure::setNumberOfSamples
virtual void setNumberOfSamples(const uint8_t n)
Definition: LArRodBlockStructure.cxx:132
LArRodBlockStructure::hasControlWords
virtual uint32_t hasControlWords() const
Definition: LArRodBlockStructure.h:126
LArRodBlockStructure::m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointerLocal
Definition: LArRodBlockStructure.h:248
LArRodBlockStructure::getFEBID
uint32_t getFEBID() const
Definition: LArRodBlockStructure.h:297
LArRodBlockStructure::resetPointers
virtual void resetPointers()
Definition: LArRodBlockStructure.h:187
LArRodBlockStructure::setSumE
virtual void setSumE(double)
Definition: LArRodBlockStructure.cxx:218
LArRodBlockStructure::m_RawToOfflineGainMap
static const uint32_t m_RawToOfflineGainMap[4]
Definition: LArRodBlockStructure.h:237
LArRodBlockStructure::getBit
int getBit(const uint32_t *const p, const unsigned chan) const
Definition: LArRodBlockStructure.h:433
LArRodBlockStructure::m_ROB_to_decode
int32_t m_ROB_to_decode
Definition: LArRodBlockStructure.h:246
LArRodBlockStructure::LE_setHeader16
void LE_setHeader16(const unsigned n, const uint16_t w)
Definition: LArRodBlockStructure.h:417
LArRodBlockStructure::m_numberOfEx
uint32_t m_numberOfEx
Definition: LArRodBlockStructure.h:214
LArRodBlockStructure::getEy
virtual int32_t getEy() const
Definition: LArRodBlockStructure.h:307
LArRodBlockStructure::m_Ex
int32_t m_Ex
Definition: LArRodBlockStructure.h:207
LArRodBlockStructure::endtag
@ endtag
Definition: LArRodBlockStructure.h:58
LArRodBlockStructure::nextFEB
bool nextFEB()
Definition: LArRodBlockStructure.h:497
LArRodBlockStructure::~LArRodBlockStructure
virtual ~LArRodBlockStructure()
Definition: LArRodBlockStructure.cxx:52
LArRodBlockStructure::setFragmentVirtualROB
virtual int setFragmentVirtualROB(const uint32_t *p, uint32_t n)
Definition: LArRodBlockStructure.h:280
LArRodBlockStructure::report_error
bool report_error(void) const
Definition: LArRodBlockStructure.h:177
LArCalibDigit
Base class for LArDigits taken during calibration runs.
Definition: LArCalibDigit.h:29
LArRodBlockStructure::m_virtualROBPointer
const uint32_t * m_virtualROBPointer
Definition: LArRodBlockStructure.h:247
LArOnlineID
Definition: LArOnlineID.h:20
LArRodBlockStructure::setRawDataFixed
virtual void setRawDataFixed(const int channel, const std::vector< short > &samples, const uint32_t gain)
Definition: LArRodBlockStructure.cxx:126
LArRodBlockStructure::getResults2Size
virtual uint16_t getResults2Size() const
Definition: LArRodBlockStructure.cxx:253
LArRodBlockStructure::FEBSN_h
@ FEBSN_h
Definition: LArRodBlockStructure.h:57
LArRodBlockStructure::canSetEnergy
virtual bool canSetEnergy()
Definition: LArRodBlockStructure.h:96
LArRodBlockStructure::sortDataVector
virtual void sortDataVector(std::vector< const LArRawChannel * > &)
Definition: LArRodBlockStructure.cxx:230
LArRodBlockStructure::initializeFEB
virtual void initializeFEB(const uint32_t id)
Definition: LArRodBlockStructure.cxx:182
LArRodBlockStructure::LE_getHeader16
uint16_t LE_getHeader16(const unsigned n) const
Definition: LArRodBlockStructure.h:405
LArRodBlockStructure::m_MiddleHeaderSize
int32_t m_MiddleHeaderSize
Definition: LArRodBlockStructure.h:239
LArRodBlockStructure::NWTot
@ NWTot
Definition: LArRodBlockStructure.h:52
LArRodBlockStructure::setEx
virtual void setEx(double)
Definition: LArRodBlockStructure.cxx:200
a
TList * a
Definition: liststreamerinfos.cxx:10
LArRodBlockStructure::getVROBEz
virtual int32_t getVROBEz() const
Definition: LArRodBlockStructure.h:331
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
LArRodBlockStructure::getNextRawData
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition: LArRodBlockStructure.cxx:88
LArRodBlockStructure::getCtrl3
virtual uint16_t getCtrl3(uint32_t adc) const
Definition: LArRodBlockStructure.cxx:250
LArRodBlockStructure::getStatus
virtual uint32_t getStatus() const
Definition: LArRodBlockStructure.cxx:251
LArRodBlockStructure::getCtrl1
virtual uint16_t getCtrl1(uint32_t adc) const
Definition: LArRodBlockStructure.cxx:248
LArRodBlockStructure::setNumberOfGains
virtual void setNumberOfGains(const uint8_t n)
Definition: LArRodBlockStructure.cxx:138
LArRodBlockStructure::getVROBEy
virtual int32_t getVROBEy() const
Definition: LArRodBlockStructure.h:327
LArRodBlockStructure::setFragment
bool setFragment(const uint32_t *p, uint32_t n)
Definition: LArRodBlockStructure.h:252
LArRodBlockStructure::m_Ey
int32_t m_Ey
Definition: LArRodBlockStructure.h:208
LArRodBlockStructure::setDelay
virtual void setDelay(const uint16_t DelayValue)
Definition: LArRodBlockStructure.cxx:63
LArRodBlockStructure::getDelay
virtual uint16_t getDelay() const
Definition: LArRodBlockStructure.h:474
LArRodBlockStructure::hasCalibBlock
virtual uint32_t hasCalibBlock() const
Definition: LArRodBlockStructure.h:122
LArRodBlockStructure::setBit
void setBit(uint32_t *const p, const unsigned chan)
Definition: LArRodBlockStructure.h:444
LArRodBlockStructure::getDAC
virtual uint16_t getDAC() const
Definition: LArRodBlockStructure.h:468
LArRodBlockStructure::m_OfflineToRawGainMap
static const uint32_t m_OfflineToRawGainMap[3]
Definition: LArRodBlockStructure.h:238
LArRodBlockStructure::getNextAccumulatedCalibDigit
virtual int getNextAccumulatedCalibDigit(int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &Samples2Sum, uint32_t &nStepTriggers, uint32_t &gain)
Definition: LArRodBlockStructure.cxx:94
LArRodBlockStructure::getNumberOfGains
virtual uint32_t getNumberOfGains() const
Definition: LArRodBlockStructure.cxx:246
LArRodBlockStructure::m_RodBlockSize
int32_t m_RodBlockSize
Definition: LArRodBlockStructure.h:230
LArRodBlockStructure::onlineCheckSum
virtual uint32_t onlineCheckSum() const
Definition: LArRodBlockStructure.cxx:155
LArRodBlockStructure::getPulsed
virtual bool getPulsed(unsigned channelNumber) const
Definition: LArRodBlockStructure.h:462
LArRodBlockStructure::m_RodBlock
const uint32_t * m_RodBlock
Definition: LArRodBlockStructure.h:228
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
LArRodBlockStructure::m_channelsPerFEB
int m_channelsPerFEB
Definition: LArRodBlockStructure.h:225
LArRodBlockStructure::getTDCPhase
virtual uint8_t getTDCPhase() const
Definition: LArRodBlockStructure.cxx:149
LArRodBlockStructure::getVROBFebId
virtual uint32_t getVROBFebId()
Definition: LArRodBlockStructure.h:319
LArRodBlockStructure::getResults1Size
virtual uint16_t getResults1Size() const
Definition: LArRodBlockStructure.cxx:252
LArRodBlockStructure::setRawData
virtual void setRawData(const int channel, const std::vector< short > &samples, const uint32_t gain)
Definition: LArRodBlockStructure.cxx:113
LArRodBlockStructure::getHeader16
uint16_t getHeader16(const unsigned n) const
Definition: LArRodBlockStructure.h:355
LArRodBlockStructure::m_virtualROBJump
uint32_t m_virtualROBJump
Definition: LArRodBlockStructure.h:245
LArRodBlockStructure::getEz
virtual int32_t getEz() const
Definition: LArRodBlockStructure.h:311
LArRodBlockStructure::FEBID
@ FEBID
Definition: LArRodBlockStructure.h:54
LArRodBlockStructure::m_mFebBlocks
FEBMAPTYPE m_mFebBlocks
Definition: LArRodBlockStructure.h:234
LArRodBlockStructure::getVROBSumE
virtual int32_t getVROBSumE() const
Definition: LArRodBlockStructure.h:335
LArRodBlockStructure::m_numberOfEz
uint32_t m_numberOfEz
Definition: LArRodBlockStructure.h:216
LArRodBlockStructure::setFirstSample
void setFirstSample(const int rearrangeFirstSample)
Definition: LArRodBlockStructure.h:168
LArRodBlockStructure::setHeader32
void setHeader32(const unsigned n, const uint32_t w)
Definition: LArRodBlockStructure.h:394
LArRodBlockStructure::m_numberOfEy
uint32_t m_numberOfEy
Definition: LArRodBlockStructure.h:215