ATLAS Offline Software
LArRodBlockPhysicsV6.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 #ifndef LARBYTESTREAM_LARRODBLOCKPHYSICSV6_H
8 #define LARBYTESTREAM_LARRODBLOCKPHYSICSV6_H
9 
20 #include "GaudiKernel/ISvcLocator.h"
22 
23 //#define LARBSDBGOUTPUT
24 #ifdef LARBSDBGOUTPUT
25 #define MYLEVEL (MSG::FATAL)
26 #define LARBSDBG(text) logstr<<MYLEVEL<<text<<endmsg
27 #else
28 #define LARBSDBG(text)
29 #endif
30 
32 {
33 public:
34  // ----------------- Header words indexes -----------------
35  enum {
36  NWTot, // First words: DSP event header
40  FEB_SN, // FEB serial number
41  FEB_SN_h, // FEB serial number
42  ResultsOff1, // Size of results (Physics averages in DSP)
43  ResultsDim1, // Offset to results
44  ResultsOff2, // Size of times (in physics)
45  ResultsDim2, // Offset to times (in physics)
47  RawDataBlkDim, // Raw FEB event offset
48  EventStatus, // Bits describing the event
54  InFPGAFormat, // added 08.09.2005 - wrong 28.09.2005?
56  endtag //This tag needs to be an odd number, see *) for constructor
57  };
58  // constructor
60 
61  // ------ Identify RodBlockStructure -------
62  std::string BlockType() { return std::string("RodBlockPhysicsV6");}
63  public:
64  // ----------------- Decoding methods -----------------
65  // Never to be used while encoding!
66  // set full ROD fragment before trying to get anything!
67  // in case there is more than 1 FEB in 1 fragment, jump to next FEB
68  virtual inline int getNextEnergy(int& channelNumber, int32_t& energy, int32_t& time,int32_t& quality,uint32_t& gain);
69  virtual int getNextRawData(int& channelNumber, std::vector<short>& samples, uint32_t& gain);
70  int getNextDigits(int& channelNumber, std::vector<short>& samples, uint32_t& gain);
71  virtual uint16_t getResults1Size() const;
72  virtual uint16_t getResults2Size() const;
73  virtual uint16_t getRawDataSize() const;
74  virtual uint16_t getNbSweetCells1() const;
75  virtual uint16_t getNbSweetCells2() const;
76  virtual uint32_t getNumberOfSamples() const;
77  virtual uint32_t getNumberOfGains() const;
78  virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const;
79  virtual uint16_t getCtrl1(uint32_t adc) const;
80  virtual uint16_t getCtrl2(uint32_t adc) const;
81  virtual uint16_t getCtrl3(uint32_t adc) const;
82  virtual uint32_t getStatus() const;
83 
84  //virtual uint32_t onlineCheckSum() const;
85  //virtual uint32_t offlineCheckSum() const;
86 
87  virtual inline uint32_t hasCalibBlock() const {return 0;} ;
88  virtual inline uint32_t hasPhysicsBlock() const {return getHeader16(ResultsOff1);} ;
90  virtual inline uint32_t hasControlWords() const {return getHeader16(RawDataBlkOff);} ;
91  virtual inline int FebToRodChannel(int ch) const;
92 
93  // Decode counter block
94  virtual inline int32_t getEx() const;
95  virtual inline int32_t getEy() const;
96  virtual inline int32_t getEz() const;
97  virtual inline int32_t getSumE() const;
98  virtual inline uint32_t getVROBFebId();
99  virtual inline int32_t getVROBEx() const;
100  virtual inline int32_t getVROBEy() const;
101  virtual inline int32_t getVROBEz() const;
102  virtual inline int32_t getVROBSumE() const;
103 
104  virtual inline int setGain(const int /*GainValue*/) { return 1; };
105 
106  // Enconding methods
107  void initializeFragment(std::vector<uint32_t>& fragment);
108  void initializeFEB(const uint32_t id);
109  void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain);
110  void setRawData(const int , const std::vector<short>& , const uint32_t);
111  void finalizeFEB();
112  // build full ROD fragment
113  void concatinateFEBs();
114  virtual inline void setEx(double);
115  virtual inline void setEy(double);
116  virtual inline void setEz(double);
117  virtual inline void setSumE(double);
118 
119  void setRequiredNSamples(unsigned short ns) { m_requiredNSamples = ns; }
120 
121  //Ordering relation for channels & digits
122  template<class RAWDATA>
123  bool operator () (const RAWDATA* ch1, const RAWDATA* ch2) const;
124  using LArRodBlockStructure::sortDataVector; // avoid warnings.
125  void sortDataVector( std::vector<const LArDigit*>& vDigit)
126  {std::sort(vDigit.begin(),vDigit.end(),*this); }
127 
128 
129 private:
130  void setE(unsigned int index, double E);
131  virtual void resetPointers();
132  virtual bool setPointers();
133  void setNextEnergy(const uint16_t energy,const int16_t time, const int16_t quality, const uint32_t gain);
136 
137  std::vector<uint32_t> m_SumBlkBlockE1;
138  std::vector<uint32_t> m_SumBlkBlockE2;
139  std::vector<uint32_t> m_GainBlock;
140  std::vector<uint32_t> m_FebInfoBlock;
141  std::vector<uint16_t> m_TimeQualityBlock;
142  std::vector<uint32_t> m_RawDataBlock;
143  std::vector<uint16_t> m_EnergyBlockEncode;
144  std::vector<uint16_t> m_DigitsEncode;
145 
146  int m_EnergyIndex = 0;
148  int m_DigitsIndex = 0;
150  int m_RawDataIndex = 0;
151  const uint32_t* m_GainPointer = nullptr;
153  const uint32_t* m_MaskDigitsPointer = nullptr;
154  const uint16_t* m_RaddPointer = nullptr;
155  const uint16_t* m_EnergyPointer = nullptr;
156  const int32_t* m_SumPointer = nullptr;
157  const uint16_t* m_TimeQualityPointer = nullptr;
158  const uint16_t* m_DigitsPointer = nullptr;
159  const uint16_t* m_RawDataPointer = nullptr;
160 
161  //For fixed gain mode
163  // If one needs to use a log output not only for MSG::DEBUG
164  //MsgStream *m_logstr;
167  // Needs one threshold to send time/quality another for samples
171 
172  unsigned short m_requiredNSamples;
174 
175 public:
176  inline uint16_t getFebConfig() const;
177  inline uint16_t getFirstSampleIndex() const;
178 
179  virtual bool canSetCalibration() {return false;}
180  bool canSetEnergy() { return true;}
181  bool canSetRawData() { return false;}
182  bool canIncludeRawData() { return true;}
183 };
184 
186 {
187  return getHeader16(FebConfig);
188 }
189 
191 {
193 }
194 
195 inline int LArRodBlockPhysicsV6::getNextEnergy(int& channelNumber,int32_t& energy,int32_t& time,int32_t& quality, uint32_t& gain)
196 {
197  #ifdef LARBSDBGOUTPUT
198  MsgStream logstr(Athena::getMessageSvc(), BlockType());
199  #endif
200 
201  LARBSDBG("in LArRodBlockPhysicsV6::getNextEnergy.");
202  LARBSDBG("m_channelsPerFEB=" << m_channelsPerFEB);
203  if (m_EnergyIndex>=m_channelsPerFEB) // Already beyond maximal number of channels
204  return 0;
205  if (!m_EnergyPointer) // No data block present
206  return 0;
207 
208  unsigned rodChannelNumber=m_EnergyIndex; // Index of Channel in ROD-Block
209  channelNumber=((rodChannelNumber&0xe)<<2) + ((rodChannelNumber&0x1)<<6) + (rodChannelNumber>>4); //channel number of the FEB
210  //channelNumber=(rodChannelNumber>>4) + ((rodChannelNumber&0xf)<<3); //channel number of the FEB
211 
212 // if(channelNumber==0) {
213 // int size = getNumberOfWords();
214 // int off1 = getHeader16(ResultsOff1)-8;
215 // int dim1 = getHeader16(ResultsDim1);
216 // int off2 = getHeader16(ResultsOff2)-8;
217 // int dim2 = getHeader16(ResultsDim2);
218 // int off3 = getHeader16(RawDataBlkOff)-8;
219 // int dim3 = getHeader16(RawDataBlkDim);
220 //
221 // for(int i=0;i<size;i++) {
222 // if(i==0)
223 // std::cout << std::hex << i << " : NWTot " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
224 // else if(i==1)
225 // std::cout << std::hex << i << " : FEBid " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
226 // else if(i==2)
227 // std::cout << std::hex << i << " : FEBsn " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
228 // else if(i==3)
229 // std::cout << std::hex << i << " : Block1 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
230 // else if(i==4)
231 // std::cout << std::hex << i << " : Block2 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
232 // else if(i==5)
233 // std::cout << std::hex << i << " : Block3 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
234 // else if(i==6)
235 // std::cout << std::hex << i << " : Status " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
236 // else if(i==7)
237 // std::cout << std::hex << i << " : Gain/Sample " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
238 // else if(i==8)
239 // std::cout << std::hex << i << " : 1st/FebConf " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
240 // else if(i==9)
241 // std::cout << std::hex << i << " : InFPGA " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
242 // else if (i>=off1 && i<off1+dim1)
243 // std::cout << std::hex << i << " : results1 " << i-off1 << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
244 // else if (i>=off2 && i<off2+dim2)
245 // std::cout << std::hex << i << " : results2 " << i-off2 << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
246 // else if (i>=off3 && i<off3+dim3)
247 // std::cout << std::hex << i << " : raw data " << i-off3 << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
248 // else
249 // std::cout << std::hex << i << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
250 // }
251 // }
252 
253  // get information available for all cells
254  // Energy on a 16 bit word and decode ranges
255  uint16_t encodedEnergy; // 16 bits Encoded Energy word
256  int32_t aux;
257  uint16_t range; // 2 bits range
258  uint16_t sign;
259 
260  LARBSDBG("-------->>>> in LArRodBlockPhysicsV6::getNextEnergy : decode energy.....");
261  // decode energy
262  if(m_EnergyIndex & 0x1) encodedEnergy = m_EnergyPointer[m_EnergyIndex-1]; // Big/Little Endien stuff
263  else encodedEnergy = m_EnergyPointer[m_EnergyIndex+1]; // Big/Little Endien stuff
264 
265  aux = (int32_t) (encodedEnergy&0x1fff);
266  range = (encodedEnergy & 0xc000) >> 14;
267  if(aux==0 && range>0) aux=0x2000;
268  sign = encodedEnergy & 0x2000;
269  aux <<= 3*range;
270  if(sign) aux = -aux;
271  energy = aux;
272 
273  // gain in 2 bits of a 32 bits word
274  if(m_GainPointer) {
275  gain = (uint32_t) ((m_GainPointer[m_EnergyIndex>>4] >> ((m_EnergyIndex&0xf)<<1)) & 0x3);
277  } else gain=0xffffffff;
278 
279  // Get Time and Quality if the information is present according to summary block
280  uint32_t hasTQ;
282  hasTQ = (uint32_t) ((m_MaskTimeQualityPointer[m_EnergyIndex>>5] >> (m_EnergyIndex&0x1f)) &0x1);
283  else
284  hasTQ = 0;
285  m_EnergyIndex++;
286  if (m_TimeQualityPointer && hasTQ) // Data has Time and Quality information
287  {
288  //Time is in 10 ps in ByteStream, hence the factor 10 to convert to ps
289  time = 10*(reinterpret_cast<const int16_t *>(m_TimeQualityPointer))[m_TimeQualityIndex++];
291 
292 #ifdef LARBSDBGOUTPUT
293  logstr << MYLEVEL <<"This cell has time and Quality information "<<endmsg;
294 #endif
295  }
296  else // Data has no Time and Quality information
297  {
298  time=0;
299  quality=-1;
300  }
301 
302 
303 #ifdef LARBSDBGOUTPUT
304  logstr << MYLEVEL <<"Range = "<<range<<endmsg;
305  logstr << MYLEVEL <<"Sign = "<<sign<<endmsg;
306  logstr << MYLEVEL <<" Encoded Energy ="<< MSG::hex << encodedEnergy << MSG::dec << " E=" << energy
307  << " t=" << time
308  << " Q=" << quality
309  << " G=" << gain
310  << " channel Number=" << channelNumber
311  << endmsg;
312 #endif
313 
314  return 1;
315 }
316 
317 inline int32_t LArRodBlockPhysicsV6::getEx() const
318 {
319  if(m_SumPointer) return (m_SumPointer[0]>>9);
320  return 0;
321 }
322 
323 inline int32_t LArRodBlockPhysicsV6::getEy() const
324 {
325  if(m_SumPointer) return (m_SumPointer[1]>>9);
326  return 0;
327 }
328 
329 inline int32_t LArRodBlockPhysicsV6::getEz() const
330 {
331  if(m_SumPointer) return (m_SumPointer[2]>>9);
332  return 0;
333 }
334 inline int32_t LArRodBlockPhysicsV6::getSumE() const
335 {
336  if(m_SumPointer) return (m_SumPointer[3]>>9);
337  return 0;
338 }
339 
341 {
342  m_ROB_to_decode--;
343  if ( m_ROB_to_decode>=0){
346  } else m_virtualROBPointerLocal=0;
348  else return 0;
349 }
350 
351 inline int32_t LArRodBlockPhysicsV6::getVROBEx() const
352 {
353  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
354  if(p) return (p[1]>>9);
355  return 0;
356 }
357 
358 inline int32_t LArRodBlockPhysicsV6::getVROBEy() const
359 {
360  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
361  if(p) return (p[2]>>9);
362  return 0;
363 }
364 
365 inline int32_t LArRodBlockPhysicsV6::getVROBEz() const
366 {
367  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
368  if(p) return (p[3]>>9);
369  return 0;
370 }
371 
372 inline int32_t LArRodBlockPhysicsV6::getVROBSumE() const
373 {
374  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
375  if(p) return (p[4]>>9);
376  return 0;
377 }
378 
380 {
381 return ( (ch&0x7) << 4) | ( (ch&0x38) >>2 ) | ((ch&0x40)>>6);
382 
383 }
384 
385 inline void LArRodBlockPhysicsV6::setE(unsigned index, double E){
386 
387  union {
388  int32_t i;
389  uint16_t us[2];
390  } conv;
391  conv.i = static_cast<int32_t>(E);
392  // Write as multiplication, not as left shift, since left-shifting
393  // a negative number is undefined in C++.
394  // Compiles to the same code on x86_64.
395  conv.i *= (1<<9);
396  if ( m_TimeQualityBlock.size()>=8 ){
398  m_TimeQualityBlock[index+1]=conv.us[1];
399  }
400 }
401 
402 
403 inline void LArRodBlockPhysicsV6::setEx(double Ex){
404  setE (0, Ex);
405 }
406 
407 
408 inline void LArRodBlockPhysicsV6::setEy(double Ey){
409  setE (2, Ey);
410 }
411 
412 
413 inline void LArRodBlockPhysicsV6::setEz(double Ez){
414  setE (4, Ez);
415 }
416 
417 inline void LArRodBlockPhysicsV6::setSumE(double SumE){
418  setE (6, SumE);
419 }
420 
421 
422 
423 
424 #ifdef LARBSDBGOUTPUT
425 #undef LARBSDBGOUTPUT
426 #endif
427 #undef LARBSDBG
428 
429 #endif
LArRodBlockStructure
Definition: LArRodBlockStructure.h:48
LArRodBlockPhysicsV6::getNbSweetCells2FromMask
uint16_t getNbSweetCells2FromMask() const
Definition: LArRodBlockPhysicsV6.cxx:575
LArRodBlockPhysicsV6::getSumE
virtual int32_t getSumE() const
Definition: LArRodBlockPhysicsV6.h:334
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LArRodBlockPhysicsV6::getVROBEy
virtual int32_t getVROBEy() const
Definition: LArRodBlockPhysicsV6.h:358
LARBSDBG
#define LARBSDBG(text)
This class provides decoding/encoding from/to ROD format.
Definition: LArRodBlockPhysicsV6.h:28
LArRodBlockPhysicsV6::FirstSampleIndex
@ FirstSampleIndex
Definition: LArRodBlockPhysicsV6.h:52
LArRodBlockPhysicsV6::ResultsDim2
@ ResultsDim2
Definition: LArRodBlockPhysicsV6.h:45
LArRodBlockPhysicsV6::getNbSweetCells1
virtual uint16_t getNbSweetCells1() const
Definition: LArRodBlockPhysicsV6.cxx:553
LArRodBlockPhysicsV6::canSetRawData
bool canSetRawData()
Definition: LArRodBlockPhysicsV6.h:181
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
LArRodBlockPhysicsV6::getVROBFebId
virtual uint32_t getVROBFebId()
Definition: LArRodBlockPhysicsV6.h:340
LArRodBlockPhysicsV6::ResultsOff1
@ ResultsOff1
Definition: LArRodBlockPhysicsV6.h:42
LArRodBlockPhysicsV6::setSumE
virtual void setSumE(double)
Definition: LArRodBlockPhysicsV6.h:417
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
LArRodBlockPhysicsV6::canSetCalibration
virtual bool canSetCalibration()
Definition: LArRodBlockPhysicsV6.h:179
LArRodBlockPhysicsV6::FEBID_h
@ FEBID_h
Definition: LArRodBlockPhysicsV6.h:39
LArRodBlockPhysicsV6::m_numberHotCell
uint16_t m_numberHotCell
Definition: LArRodBlockPhysicsV6.h:165
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LArRodBlockPhysicsV6::getEy
virtual int32_t getEy() const
Definition: LArRodBlockPhysicsV6.h:323
LArRodBlockPhysicsV6::getNextEnergy
virtual int getNextEnergy(int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
Definition: LArRodBlockPhysicsV6.h:195
LArRodBlockPhysicsV6::m_RawDataIndex
int m_RawDataIndex
Definition: LArRodBlockPhysicsV6.h:150
index
Definition: index.py:1
LArRodBlockPhysicsV6::getVROBSumE
virtual int32_t getVROBSumE() const
Definition: LArRodBlockPhysicsV6.h:372
LArRodBlockPhysicsV6::EventStatus_h
@ EventStatus_h
Definition: LArRodBlockPhysicsV6.h:49
LArRodBlockPhysicsV6::FEB_SN
@ FEB_SN
Definition: LArRodBlockPhysicsV6.h:40
LArRodBlockPhysicsV6::ResultsDim1
@ ResultsDim1
Definition: LArRodBlockPhysicsV6.h:43
LArRodBlockPhysicsV6::getFirstSampleIndex
uint16_t getFirstSampleIndex() const
Definition: LArRodBlockPhysicsV6.h:190
LArRodBlockPhysicsV6::hasCalibBlock
virtual uint32_t hasCalibBlock() const
Definition: LArRodBlockPhysicsV6.h:87
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArRodBlockPhysicsV6::getEx
virtual int32_t getEx() const
Definition: LArRodBlockPhysicsV6.h:317
LArRodBlockPhysicsV6::getFebConfig
uint16_t getFebConfig() const
Definition: LArRodBlockPhysicsV6.h:185
LArRodBlockPhysicsV6::m_EnergyPointer
const uint16_t * m_EnergyPointer
Definition: LArRodBlockPhysicsV6.h:155
LArRodBlockPhysicsV6::getResults1Size
virtual uint16_t getResults1Size() const
Definition: LArRodBlockPhysicsV6.cxx:595
LArRodBlockPhysicsV6::setPointers
virtual bool setPointers()
Definition: LArRodBlockPhysicsV6.cxx:85
LArRodBlockPhysicsV6::getCtrl2
virtual uint16_t getCtrl2(uint32_t adc) const
Definition: LArRodBlockPhysicsV6.cxx:634
LArRodBlockPhysicsV6
Definition: LArRodBlockPhysicsV6.h:32
LArRodBlockPhysicsV6::m_TimeQualityBlock
std::vector< uint16_t > m_TimeQualityBlock
Definition: LArRodBlockPhysicsV6.h:141
LArRodBlockPhysicsV6::operator()
bool operator()(const RAWDATA *ch1, const RAWDATA *ch2) const
Definition: LArRodBlockPhysicsV6.cxx:1034
LArRodBlockPhysicsV6::getCtrl3
virtual uint16_t getCtrl3(uint32_t adc) const
Definition: LArRodBlockPhysicsV6.cxx:642
LArRodBlockPhysicsV6::m_onlineHelper
const LArOnlineID * m_onlineHelper
Definition: LArRodBlockPhysicsV6.h:173
LArRodBlockPhysicsV6::m_DigitsIndex
int m_DigitsIndex
Definition: LArRodBlockPhysicsV6.h:148
LArRodBlockPhysicsV6::resetPointers
virtual void resetPointers()
Definition: LArRodBlockPhysicsV6.cxx:65
LArRodBlockPhysicsV6::m_SumPointer
const int32_t * m_SumPointer
Definition: LArRodBlockPhysicsV6.h:156
xAOD::int16_t
setScaleOne setStatusOne setSaturated int16_t
Definition: gFexGlobalRoI_v1.cxx:55
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
LArRodBlockPhysicsV6::RawDataBlkDim
@ RawDataBlkDim
Definition: LArRodBlockPhysicsV6.h:47
LArRodBlockPhysicsV6::hasPhysicsBlock
virtual uint32_t hasPhysicsBlock() const
Definition: LArRodBlockPhysicsV6.h:88
LArRodBlockPhysicsV6::m_MaskTimeQualityPointer
const uint32_t * m_MaskTimeQualityPointer
Definition: LArRodBlockPhysicsV6.h:152
LArRodBlockPhysicsV6::getRawDataSize
virtual uint16_t getRawDataSize() const
Definition: LArRodBlockPhysicsV6.cxx:605
LArRodBlockPhysicsV6::finalizeFEB
void finalizeFEB()
Definition: LArRodBlockPhysicsV6.cxx:869
LArRodBlockPhysicsV6::endtag
@ endtag
Definition: LArRodBlockPhysicsV6.h:56
LArRodBlockPhysicsV6::setNextEnergy
void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
Definition: LArRodBlockPhysicsV6.cxx:739
LArRodBlockPhysicsV6::InFPGAFormat_h
@ InFPGAFormat_h
Definition: LArRodBlockPhysicsV6.h:55
LArRodBlockPhysicsV6::m_SumBlkBlockE2
std::vector< uint32_t > m_SumBlkBlockE2
Definition: LArRodBlockPhysicsV6.h:138
LArRodBlockPhysicsV6::getNbSweetCells2
virtual uint16_t getNbSweetCells2() const
Definition: LArRodBlockPhysicsV6.cxx:559
LArRodBlockPhysicsV6::NWTot
@ NWTot
Definition: LArRodBlockPhysicsV6.h:36
LArRodBlockPhysicsV6::getResults2Size
virtual uint16_t getResults2Size() const
Definition: LArRodBlockPhysicsV6.cxx:600
LArRodBlockPhysicsV6::NSamples
@ NSamples
Definition: LArRodBlockPhysicsV6.h:51
LArRodBlockPhysicsV6::m_FebInfoBlock
std::vector< uint32_t > m_FebInfoBlock
Definition: LArRodBlockPhysicsV6.h:140
LArRodBlockPhysicsV6::setEy
virtual void setEy(double)
Definition: LArRodBlockPhysicsV6.h:408
LArRodBlockPhysicsV6::m_numberHotCellOffTime
uint16_t m_numberHotCellOffTime
Definition: LArRodBlockPhysicsV6.h:166
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
LArRodBlockPhysicsV6::m_DigitsChannel
int m_DigitsChannel
Definition: LArRodBlockPhysicsV6.h:149
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:116
LArRodBlockPhysicsV6::RawDataBlkOff
@ RawDataBlkOff
Definition: LArRodBlockPhysicsV6.h:46
lumiFormat.i
int i
Definition: lumiFormat.py:85
LArRodBlockPhysicsV6::NWTot_h
@ NWTot_h
Definition: LArRodBlockPhysicsV6.h:37
LArRodBlockPhysicsV6::m_RawDataPointer
const uint16_t * m_RawDataPointer
Definition: LArRodBlockPhysicsV6.h:159
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
LArRodBlockPhysicsV6::m_EnergyThreshold2
uint16_t m_EnergyThreshold2
Definition: LArRodBlockPhysicsV6.h:169
LArRodBlockPhysicsV6::m_GainPointer
const uint32_t * m_GainPointer
Definition: LArRodBlockPhysicsV6.h:151
LArRodBlockPhysicsV6::getCtrl1
virtual uint16_t getCtrl1(uint32_t adc) const
Definition: LArRodBlockPhysicsV6.cxx:626
LArRodBlockPhysicsV6::getVROBEz
virtual int32_t getVROBEz() const
Definition: LArRodBlockPhysicsV6.h:365
LArRodBlockPhysicsV6::m_SumBlkBlockE1
std::vector< uint32_t > m_SumBlkBlockE1
Definition: LArRodBlockPhysicsV6.h:137
LArRodBlockPhysicsV6::setRequiredNSamples
void setRequiredNSamples(unsigned short ns)
Definition: LArRodBlockPhysicsV6.h:119
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
LArRodBlockPhysicsV6::concatinateFEBs
void concatinateFEBs()
Definition: LArRodBlockPhysicsV6.cxx:1013
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:107
LArRodBlockPhysicsV6::setE
void setE(unsigned int index, double E)
Definition: LArRodBlockPhysicsV6.h:385
LArRodBlockPhysicsV6::m_OffTimeCut
int16_t m_OffTimeCut
Definition: LArRodBlockPhysicsV6.h:170
LArRodBlockPhysicsV6::m_RawDataBlock
std::vector< uint32_t > m_RawDataBlock
Definition: LArRodBlockPhysicsV6.h:142
MYLEVEL
#define MYLEVEL
Definition: LArRodBlockPhysicsV3.h:47
LArRodBlockStructure::m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointerLocal
Definition: LArRodBlockStructure.h:248
LArRodBlockPhysicsV6::FebConfig
@ FebConfig
Definition: LArRodBlockPhysicsV6.h:53
LArRodBlockPhysicsV6::m_DigitsPointer
const uint16_t * m_DigitsPointer
Definition: LArRodBlockPhysicsV6.h:158
LArRodBlockStructure::m_ROB_to_decode
int32_t m_ROB_to_decode
Definition: LArRodBlockStructure.h:246
LArRodBlockPhysicsV6::ResultsOff2
@ ResultsOff2
Definition: LArRodBlockPhysicsV6.h:44
LArRodBlockPhysicsV6::hasControlWords
virtual uint32_t hasControlWords() const
Definition: LArRodBlockPhysicsV6.h:90
LArRodBlockPhysicsV6::getNextRawData
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition: LArRodBlockPhysicsV6.cxx:299
LArRodBlockPhysicsV6::hasRawDataBlock
virtual uint32_t hasRawDataBlock() const
Definition: LArRodBlockPhysicsV6.h:89
LArRodBlockPhysicsV6::m_DigitsEncode
std::vector< uint16_t > m_DigitsEncode
Definition: LArRodBlockPhysicsV6.h:144
LArRodBlockPhysicsV6::m_fixedGain
int m_fixedGain
Definition: LArRodBlockPhysicsV6.h:162
LArRodBlockPhysicsV6::m_GainBlock
std::vector< uint32_t > m_GainBlock
Definition: LArRodBlockPhysicsV6.h:139
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
LArRodBlockStructure::m_virtualROBPointer
const uint32_t * m_virtualROBPointer
Definition: LArRodBlockStructure.h:247
LArRodBlockPhysicsV6::getNbSweetCells1FromMask
uint16_t getNbSweetCells1FromMask() const
Definition: LArRodBlockPhysicsV6.cxx:565
LArOnlineID
Definition: LArOnlineID.h:20
LArRodBlockPhysicsV6::m_EnergyIndex
int m_EnergyIndex
Definition: LArRodBlockPhysicsV6.h:146
LArRodBlockStructure::sortDataVector
virtual void sortDataVector(std::vector< const LArRawChannel * > &)
Definition: LArRodBlockStructure.cxx:230
LArRodBlockPhysicsV6::NGains
@ NGains
Definition: LArRodBlockPhysicsV6.h:50
LArRodBlockPhysicsV6::getVROBEx
virtual int32_t getVROBEx() const
Definition: LArRodBlockPhysicsV6.h:351
LArRodBlockStructure.h
LArRodBlockPhysicsV6::m_MaskDigitsPointer
const uint32_t * m_MaskDigitsPointer
Definition: LArRodBlockPhysicsV6.h:153
LArRodBlockPhysicsV6::FEBID
@ FEBID
Definition: LArRodBlockPhysicsV6.h:38
LArRodBlockPhysicsV6::m_EnergyThreshold1
uint16_t m_EnergyThreshold1
Definition: LArRodBlockPhysicsV6.h:168
DeMoScan.index
string index
Definition: DeMoScan.py:364
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
LArRodBlockPhysicsV6::getNumberOfGains
virtual uint32_t getNumberOfGains() const
Definition: LArRodBlockPhysicsV6.cxx:590
LArRodBlockPhysicsV6::setRawData
void setRawData(const int, const std::vector< short > &, const uint32_t)
Definition: LArRodBlockPhysicsV6.cxx:856
LArRodBlockPhysicsV6::getNextDigits
int getNextDigits(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition: LArRodBlockPhysicsV6.cxx:414
LArRodBlockPhysicsV6::FEB_SN_h
@ FEB_SN_h
Definition: LArRodBlockPhysicsV6.h:41
LArRodBlockPhysicsV6::m_TimeQualityPointer
const uint16_t * m_TimeQualityPointer
Definition: LArRodBlockPhysicsV6.h:157
LArRodBlockPhysicsV6::m_EnergyBlockEncode
std::vector< uint16_t > m_EnergyBlockEncode
Definition: LArRodBlockPhysicsV6.h:143
LArRodBlockPhysicsV6::BlockType
std::string BlockType()
Definition: LArRodBlockPhysicsV6.h:62
LArRodBlockPhysicsV6::getNumberOfSamples
virtual uint32_t getNumberOfSamples() const
Definition: LArRodBlockPhysicsV6.cxx:585
LArRodBlockPhysicsV6::FebToRodChannel
virtual int FebToRodChannel(int ch) const
Definition: LArRodBlockPhysicsV6.h:379
LArRodBlockPhysicsV6::getEz
virtual int32_t getEz() const
Definition: LArRodBlockPhysicsV6.h:329
LArRodBlockPhysicsV6::m_TimeQualityIndex
int m_TimeQualityIndex
Definition: LArRodBlockPhysicsV6.h:147
LArRodBlockPhysicsV6::canSetEnergy
bool canSetEnergy()
Definition: LArRodBlockPhysicsV6.h:180
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
LArRodBlockPhysicsV6::getRadd
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
Definition: LArRodBlockPhysicsV6.cxx:610
LArRodBlockPhysicsV6::setEz
virtual void setEz(double)
Definition: LArRodBlockPhysicsV6.h:413
LArRodBlockPhysicsV6::InFPGAFormat
@ InFPGAFormat
Definition: LArRodBlockPhysicsV6.h:54
LArRodBlockPhysicsV6::m_requiredNSamples
unsigned short m_requiredNSamples
Definition: LArRodBlockPhysicsV6.h:172
LArRodBlockStructure::m_channelsPerFEB
int m_channelsPerFEB
Definition: LArRodBlockStructure.h:225
CaloGain.h
LArRodBlockPhysicsV6::initializeFEB
void initializeFEB(const uint32_t id)
Definition: LArRodBlockPhysicsV6.cxx:711
LArRodBlockPhysicsV6::EventStatus
@ EventStatus
Definition: LArRodBlockPhysicsV6.h:48
LArRodBlockPhysicsV6::getStatus
virtual uint32_t getStatus() const
Definition: LArRodBlockPhysicsV6.cxx:650
LArRodBlockStructure::getHeader16
uint16_t getHeader16(const unsigned n) const
Definition: LArRodBlockStructure.h:355
LArRodBlockStructure::m_virtualROBJump
uint32_t m_virtualROBJump
Definition: LArRodBlockStructure.h:245
LArRodBlockPhysicsV6::m_RaddPointer
const uint16_t * m_RaddPointer
Definition: LArRodBlockPhysicsV6.h:154
LArRodBlockPhysicsV6::setEx
virtual void setEx(double)
Definition: LArRodBlockPhysicsV6.h:403
LArRodBlockPhysicsV6::sortDataVector
void sortDataVector(std::vector< const LArDigit * > &vDigit)
Definition: LArRodBlockPhysicsV6.h:125
LArRodBlockPhysicsV6::initializeFragment
void initializeFragment(std::vector< uint32_t > &fragment)
Definition: LArRodBlockPhysicsV6.cxx:684
LArRodBlockPhysicsV6::setGain
virtual int setGain(const int)
Definition: LArRodBlockPhysicsV6.h:104
LArRodBlockPhysicsV6::canIncludeRawData
bool canIncludeRawData()
Definition: LArRodBlockPhysicsV6.h:182
LArOnlineID.h
pdg_comparison.conv
conv
Definition: pdg_comparison.py:321
LArRodBlockPhysicsV6::LArRodBlockPhysicsV6
LArRodBlockPhysicsV6()
Definition: LArRodBlockPhysicsV6.cxx:39