ATLAS Offline Software
LArRodBlockPhysicsV5.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_LARRODBLOCKPHYSICSV5_H
8 #define LARBYTESTREAM_LARRODBLOCKPHYSICSV5_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("RodBlockPhysicsV5");}
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 uint32_t getVROBFebId();
98  virtual inline int32_t getVROBEx() const;
99  virtual inline int32_t getVROBEy() const;
100  virtual inline int32_t getVROBEz() const;
101 
102  virtual inline int setGain(const int /*GainValue*/) { return 1; };
103 
104  // Enconding methods
105  void initializeFragment(std::vector<uint32_t>& fragment);
106  void initializeFEB(const uint32_t id);
107  void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain);
108  void setRawData(const int , const std::vector<short>& , const uint32_t);
109  void finalizeFEB();
110  // build full ROD fragment
111  void concatinateFEBs();
112  virtual inline void setEx(double);
113  virtual inline void setEy(double);
114  virtual inline void setEz(double);
115 
116  void setRequiredNSamples(unsigned short ns) { m_requiredNSamples = ns; }
117 
118  //Ordering relation for channels & digits
119  template<class RAWDATA>
120  bool operator () (const RAWDATA* ch1, const RAWDATA* ch2) const;
121  using LArRodBlockStructure::sortDataVector; // avoid warnings.
122  void sortDataVector( std::vector<const LArDigit*>& vDigit)
123  {std::sort(vDigit.begin(),vDigit.end(),*this); }
124 
125 
126 private:
127  inline void setE(unsigned index, double E);
128  virtual void resetPointers();
129  virtual bool setPointers();
130  void setNextEnergy(const uint16_t energy,const int16_t time, const int16_t quality, const uint32_t gain);
133 
134  std::vector<uint32_t> m_SumBlkBlockE1;
135  std::vector<uint32_t> m_SumBlkBlockE2;
136  std::vector<uint32_t> m_GainBlock;
137  std::vector<uint32_t> m_FebInfoBlock;
138  std::vector<uint16_t> m_TimeQualityBlock;
139  std::vector<uint32_t> m_RawDataBlock;
140  std::vector<uint16_t> m_EnergyBlockEncode;
141  std::vector<uint16_t> m_DigitsEncode;
142 
143  int m_EnergyIndex = 0;
145  int m_DigitsIndex = 0;
147  int m_RawDataIndex = 0;
148  const uint32_t* m_GainPointer = nullptr;
150  const uint32_t* m_MaskDigitsPointer = nullptr;
151  const uint16_t* m_RaddPointer = nullptr;
152  const uint16_t* m_EnergyPointer = nullptr;
153  const int32_t* m_SumPointer = nullptr;
154  const uint16_t* m_TimeQualityPointer = nullptr;
155  const uint16_t* m_DigitsPointer = nullptr;
156  const uint16_t* m_RawDataPointer = nullptr;
157 
158  //For fixed gain mode
160  // If one needs to use a log output not only for MSG::DEBUG
161  //MsgStream *m_logstr;
164  // Needs one threshold to send time/quality another for samples
168 
169  unsigned short m_requiredNSamples;
171 
172 public:
173  inline uint16_t getFebConfig() const;
174  inline uint16_t getFirstSampleIndex() const;
175 
176  virtual bool canSetCalibration() {return false;}
177  bool canSetEnergy() { return true;}
178  bool canSetRawData() { return false;}
179  bool canIncludeRawData() { return true;}
180 };
181 
183 {
184  return getHeader16(FebConfig);
185 }
186 
188 {
190 }
191 
192 inline int LArRodBlockPhysicsV5::getNextEnergy(int& channelNumber,int32_t& energy,int32_t& time,int32_t& quality, uint32_t& gain)
193 {
194  #ifdef LARBSDBGOUTPUT
195  MsgStream logstr(Athena::getMessageSvc(), BlockType());
196  #endif
197 
198  LARBSDBG("in LArRodBlockPhysicsV5::getNextEnergy.");
199  LARBSDBG("m_channelsPerFEB=" << m_channelsPerFEB);
200  if (m_EnergyIndex>=m_channelsPerFEB) // Already beyond maximal number of channels
201  return 0;
202  if (!m_EnergyPointer) // No data block present
203  return 0;
204 
205  unsigned rodChannelNumber=m_EnergyIndex; // Index of Channel in ROD-Block
206  channelNumber=((rodChannelNumber&0xe)<<2) + ((rodChannelNumber&0x1)<<6) + (rodChannelNumber>>4); //channel number of the FEB
207  //channelNumber=(rodChannelNumber>>4) + ((rodChannelNumber&0xf)<<3); //channel number of the FEB
208 
209 // if(channelNumber==0) {
210 // int size = getNumberOfWords();
211 // int off1 = getHeader16(ResultsOff1)-8;
212 // int dim1 = getHeader16(ResultsDim1);
213 // int off2 = getHeader16(ResultsOff2)-8;
214 // int dim2 = getHeader16(ResultsDim2);
215 // int off3 = getHeader16(RawDataBlkOff)-8;
216 // int dim3 = getHeader16(RawDataBlkDim);
217 //
218 // for(int i=0;i<size;i++) {
219 // if(i==0)
220 // std::cout << std::hex << i << " : NWTot " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
221 // else if(i==1)
222 // std::cout << std::hex << i << " : FEBid " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
223 // else if(i==2)
224 // std::cout << std::hex << i << " : FEBsn " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
225 // else if(i==3)
226 // std::cout << std::hex << i << " : Block1 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
227 // else if(i==4)
228 // std::cout << std::hex << i << " : Block2 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
229 // else if(i==5)
230 // std::cout << std::hex << i << " : Block3 " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
231 // else if(i==6)
232 // std::cout << std::hex << i << " : Status " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
233 // else if(i==7)
234 // std::cout << std::hex << i << " : Gain/Sample " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
235 // else if(i==8)
236 // std::cout << std::hex << i << " : 1st/FebConf " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
237 // else if(i==9)
238 // std::cout << std::hex << i << " : InFPGA " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
239 // else if (i>=off1 && i<off1+dim1)
240 // std::cout << std::hex << i << " : results1 " << i-off1 << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
241 // else if (i>=off2 && i<off2+dim2)
242 // std::cout << std::hex << i << " : results2 " << i-off2 << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
243 // else if (i>=off3 && i<off3+dim3)
244 // std::cout << std::hex << i << " : raw data " << i-off3 << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
245 // else
246 // std::cout << std::hex << i << " " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
247 // }
248 // }
249 
250  // get information available for all cells
251  // Energy on a 16 bit word and decode ranges
252  uint16_t encodedEnergy; // 16 bits Encoded Energy word
253  int32_t aux;
254  uint16_t range; // 2 bits range
255  uint16_t sign;
256 
257  LARBSDBG("-------->>>> in LArRodBlockPhysicsV5::getNextEnergy : decode energy.....");
258  // decode energy
259  if(m_EnergyIndex & 0x1) encodedEnergy = m_EnergyPointer[m_EnergyIndex-1]; // Big/Little Endien stuff
260  else encodedEnergy = m_EnergyPointer[m_EnergyIndex+1]; // Big/Little Endien stuff
261 
262  aux = (int32_t) (encodedEnergy&0x1fff);
263  range = (encodedEnergy & 0xc000) >> 14;
264  if(aux==0 && range>0) aux=0x2000;
265  sign = encodedEnergy & 0x2000;
266  aux <<= 3*range;
267  if(sign) aux = -aux;
268  energy = aux;
269 
270  // gain in 2 bits of a 32 bits word
271  if(m_GainPointer) {
272  gain = (uint32_t) ((m_GainPointer[m_EnergyIndex>>4] >> ((m_EnergyIndex&0xf)<<1)) & 0x3);
274  } else gain=0xffffffff;
275 
276  // Get Time and Quality if the information is present according to summary block
277  uint32_t hasTQ;
279  hasTQ = (uint32_t) ((m_MaskTimeQualityPointer[m_EnergyIndex>>5] >> (m_EnergyIndex&0x1f)) &0x1);
280  else
281  hasTQ = 0;
282  m_EnergyIndex++;
283  if (m_TimeQualityPointer && hasTQ) // Data has Time and Quality information
284  {
285  //Time is in 10 ps in ByteStream, hence the factor 10 to convert to ps
286  time = 10*(reinterpret_cast<const int16_t *>(m_TimeQualityPointer))[m_TimeQualityIndex++];
288 
289 #ifdef LARBSDBGOUTPUT
290  logstr << MYLEVEL <<"This cell has time and Quality information "<<endmsg;
291 #endif
292  }
293  else // Data has no Time and Quality information
294  {
295  time=0;
296  quality=-1;
297  }
298 
299 
300 #ifdef LARBSDBGOUTPUT
301  logstr << MYLEVEL <<"Range = "<<range<<endmsg;
302  logstr << MYLEVEL <<"Sign = "<<sign<<endmsg;
303  logstr << MYLEVEL <<" Encoded Energy ="<< MSG::hex << encodedEnergy << MSG::dec << " E=" << energy
304  << " t=" << time
305  << " Q=" << quality
306  << " G=" << gain
307  << " channel Number=" << channelNumber
308  << endmsg;
309 #endif
310 
311  return 1;
312 }
313 
314 inline int32_t LArRodBlockPhysicsV5::getEx() const
315 {
316  if(m_SumPointer) return (m_SumPointer[0]>>9);
317  return 0;
318 }
319 
320 inline int32_t LArRodBlockPhysicsV5::getEy() const
321 {
322  if(m_SumPointer) return (m_SumPointer[1]>>9);
323  return 0;
324 }
325 
326 inline int32_t LArRodBlockPhysicsV5::getEz() const
327 {
328  if(m_SumPointer) return (m_SumPointer[2]>>9);
329  return 0;
330 }
331 
333 {
334  m_ROB_to_decode--;
335  if ( m_ROB_to_decode>=0 ) {
338  } else m_virtualROBPointerLocal=0;
340  return 0;
341 }
342 
343 inline int32_t LArRodBlockPhysicsV5::getVROBEx() const
344 {
345  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
346  if(p) return (p[1]>>9);
347  return 0;
348 }
349 
350 inline int32_t LArRodBlockPhysicsV5::getVROBEy() const
351 {
352  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
353  if(p) return (p[2]>>9);
354  return 0;
355 }
356 
357 inline int32_t LArRodBlockPhysicsV5::getVROBEz() const
358 {
359  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
360  if(p) return (p[3]>>9);
361  return 0;
362 }
363 
365 {
366 return ( (ch&0x7) << 4) | ( (ch&0x38) >>2 ) | ((ch&0x40)>>6);
367 
368 }
369 
370 inline void LArRodBlockPhysicsV5::setE(unsigned index, double E){
371 
372  union {
373  int32_t i;
374  uint16_t us[2];
375  } conv;
376  conv.i = static_cast<int32_t>(E);
377  // Write as multiplication, not as left shift, since left-shifting
378  // a negative number is undefined in C++.
379  // Compiles to the same code on x86_64.
380  conv.i *= (1<<9);
381  if ( m_TimeQualityBlock.size()>=6 ){
383  m_TimeQualityBlock[index+1]=conv.us[1];
384  }
385 }
386 
387 
388 inline void LArRodBlockPhysicsV5::setEx(double Ex){
389  setE (0, Ex);
390 }
391 
392 
393 inline void LArRodBlockPhysicsV5::setEy(double Ey){
394  setE (2, Ey);
395 }
396 
397 
398 inline void LArRodBlockPhysicsV5::setEz(double Ez){
399  setE (4, Ez);
400 }
401 
402 
403 
404 #ifdef LARBSDBGOUTPUT
405 #undef LARBSDBGOUTPUT
406 #endif
407 #undef LARBSDBG
408 
409 #endif
LArRodBlockStructure
Definition: LArRodBlockStructure.h:48
LArRodBlockPhysicsV5::EventStatus_h
@ EventStatus_h
Definition: LArRodBlockPhysicsV5.h:49
LArRodBlockPhysicsV5::hasRawDataBlock
virtual uint32_t hasRawDataBlock() const
Definition: LArRodBlockPhysicsV5.h:89
LArRodBlockPhysicsV5::hasCalibBlock
virtual uint32_t hasCalibBlock() const
Definition: LArRodBlockPhysicsV5.h:87
LArRodBlockPhysicsV5::getRawDataSize
virtual uint16_t getRawDataSize() const
Definition: LArRodBlockPhysicsV5.cxx:594
LArRodBlockPhysicsV5::getVROBEz
virtual int32_t getVROBEz() const
Definition: LArRodBlockPhysicsV5.h:357
LArRodBlockPhysicsV5::getNbSweetCells2
virtual uint16_t getNbSweetCells2() const
Definition: LArRodBlockPhysicsV5.cxx:548
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LArRodBlockPhysicsV5::m_SumBlkBlockE2
std::vector< uint32_t > m_SumBlkBlockE2
Definition: LArRodBlockPhysicsV5.h:135
LArRodBlockPhysicsV5
Definition: LArRodBlockPhysicsV5.h:32
LArRodBlockPhysicsV5::setRawData
void setRawData(const int, const std::vector< short > &, const uint32_t)
Definition: LArRodBlockPhysicsV5.cxx:845
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
LArRodBlockPhysicsV5::getFebConfig
uint16_t getFebConfig() const
Definition: LArRodBlockPhysicsV5.h:182
LArRodBlockPhysicsV5::m_RawDataIndex
int m_RawDataIndex
Definition: LArRodBlockPhysicsV5.h:147
LArRodBlockPhysicsV5::getNumberOfSamples
virtual uint32_t getNumberOfSamples() const
Definition: LArRodBlockPhysicsV5.cxx:574
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
LArRodBlockPhysicsV5::m_onlineHelper
const LArOnlineID * m_onlineHelper
Definition: LArRodBlockPhysicsV5.h:170
LArRodBlockPhysicsV5::ResultsDim1
@ ResultsDim1
Definition: LArRodBlockPhysicsV5.h:43
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LArRodBlockPhysicsV5::m_numberHotCell
uint16_t m_numberHotCell
Definition: LArRodBlockPhysicsV5.h:162
index
Definition: index.py:1
LArRodBlockPhysicsV5::m_GainPointer
const uint32_t * m_GainPointer
Definition: LArRodBlockPhysicsV5.h:148
LArRodBlockPhysicsV5::m_DigitsPointer
const uint16_t * m_DigitsPointer
Definition: LArRodBlockPhysicsV5.h:155
LArRodBlockPhysicsV5::m_EnergyThreshold2
uint16_t m_EnergyThreshold2
Definition: LArRodBlockPhysicsV5.h:166
LArRodBlockPhysicsV5::BlockType
std::string BlockType()
Definition: LArRodBlockPhysicsV5.h:62
LArRodBlockPhysicsV5::EventStatus
@ EventStatus
Definition: LArRodBlockPhysicsV5.h:48
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArRodBlockPhysicsV5::getCtrl2
virtual uint16_t getCtrl2(uint32_t adc) const
Definition: LArRodBlockPhysicsV5.cxx:623
LArRodBlockPhysicsV5::hasPhysicsBlock
virtual uint32_t hasPhysicsBlock() const
Definition: LArRodBlockPhysicsV5.h:88
LArRodBlockPhysicsV5::m_DigitsChannel
int m_DigitsChannel
Definition: LArRodBlockPhysicsV5.h:146
LArRodBlockPhysicsV5::operator()
bool operator()(const RAWDATA *ch1, const RAWDATA *ch2) const
Definition: LArRodBlockPhysicsV5.cxx:1022
LArRodBlockPhysicsV5::getNextRawData
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition: LArRodBlockPhysicsV5.cxx:295
LArRodBlockPhysicsV5::getNumberOfGains
virtual uint32_t getNumberOfGains() const
Definition: LArRodBlockPhysicsV5.cxx:579
LArRodBlockPhysicsV5::FEB_SN
@ FEB_SN
Definition: LArRodBlockPhysicsV5.h:40
LArRodBlockPhysicsV5::canSetCalibration
virtual bool canSetCalibration()
Definition: LArRodBlockPhysicsV5.h:176
LArRodBlockPhysicsV5::m_OffTimeCut
int16_t m_OffTimeCut
Definition: LArRodBlockPhysicsV5.h:167
LARBSDBG
#define LARBSDBG(text)
This class provides decoding/encoding from/to ROD format.
Definition: LArRodBlockPhysicsV5.h:28
xAOD::int16_t
setScaleOne setStatusOne setSaturated int16_t
Definition: gFexGlobalRoI_v1.cxx:55
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
LArRodBlockPhysicsV5::canSetEnergy
bool canSetEnergy()
Definition: LArRodBlockPhysicsV5.h:177
LArRodBlockPhysicsV5::setNextEnergy
void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
Definition: LArRodBlockPhysicsV5.cxx:728
LArRodBlockPhysicsV5::m_DigitsEncode
std::vector< uint16_t > m_DigitsEncode
Definition: LArRodBlockPhysicsV5.h:141
LArRodBlockPhysicsV5::m_TimeQualityPointer
const uint16_t * m_TimeQualityPointer
Definition: LArRodBlockPhysicsV5.h:154
LArRodBlockPhysicsV5::initializeFragment
void initializeFragment(std::vector< uint32_t > &fragment)
Definition: LArRodBlockPhysicsV5.cxx:673
LArRodBlockPhysicsV5::m_fixedGain
int m_fixedGain
Definition: LArRodBlockPhysicsV5.h:159
LArRodBlockPhysicsV5::RawDataBlkDim
@ RawDataBlkDim
Definition: LArRodBlockPhysicsV5.h:47
LArRodBlockPhysicsV5::getVROBEx
virtual int32_t getVROBEx() const
Definition: LArRodBlockPhysicsV5.h:343
LArRodBlockPhysicsV5::setEx
virtual void setEx(double)
Definition: LArRodBlockPhysicsV5.h:388
LArRodBlockPhysicsV5::m_FebInfoBlock
std::vector< uint32_t > m_FebInfoBlock
Definition: LArRodBlockPhysicsV5.h:137
LArRodBlockPhysicsV5::m_SumPointer
const int32_t * m_SumPointer
Definition: LArRodBlockPhysicsV5.h:153
LArRodBlockPhysicsV5::NWTot_h
@ NWTot_h
Definition: LArRodBlockPhysicsV5.h:37
LArRodBlockPhysicsV5::RawDataBlkOff
@ RawDataBlkOff
Definition: LArRodBlockPhysicsV5.h:46
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
LArRodBlockPhysicsV5::getResults1Size
virtual uint16_t getResults1Size() const
Definition: LArRodBlockPhysicsV5.cxx:584
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
LArRodBlockStructure::RawToOfflineGain
uint32_t RawToOfflineGain(const uint32_t gain) const
Definition: LArRodBlockStructure.h:349
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:113
LArRodBlockPhysicsV5::m_GainBlock
std::vector< uint32_t > m_GainBlock
Definition: LArRodBlockPhysicsV5.h:136
lumiFormat.i
int i
Definition: lumiFormat.py:85
LArRodBlockPhysicsV5::canSetRawData
bool canSetRawData()
Definition: LArRodBlockPhysicsV5.h:178
LArRodBlockPhysicsV5::resetPointers
virtual void resetPointers()
Definition: LArRodBlockPhysicsV5.cxx:65
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
LArRodBlockPhysicsV5::getNextDigits
int getNextDigits(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition: LArRodBlockPhysicsV5.cxx:410
LArRodBlockPhysicsV5::NGains
@ NGains
Definition: LArRodBlockPhysicsV5.h:50
LArRodBlockPhysicsV5::FebConfig
@ FebConfig
Definition: LArRodBlockPhysicsV5.h:53
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:107
LArRodBlockPhysicsV5::finalizeFEB
void finalizeFEB()
Definition: LArRodBlockPhysicsV5.cxx:858
LArRodBlockPhysicsV5::FEBID
@ FEBID
Definition: LArRodBlockPhysicsV5.h:38
LArRodBlockPhysicsV5::m_EnergyPointer
const uint16_t * m_EnergyPointer
Definition: LArRodBlockPhysicsV5.h:152
LArRodBlockPhysicsV5::m_requiredNSamples
unsigned short m_requiredNSamples
Definition: LArRodBlockPhysicsV5.h:169
MYLEVEL
#define MYLEVEL
Definition: LArRodBlockPhysicsV3.h:47
LArRodBlockStructure::m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointerLocal
Definition: LArRodBlockStructure.h:248
LArRodBlockPhysicsV5::FirstSampleIndex
@ FirstSampleIndex
Definition: LArRodBlockPhysicsV5.h:52
LArRodBlockPhysicsV5::NSamples
@ NSamples
Definition: LArRodBlockPhysicsV5.h:51
LArRodBlockPhysicsV5::getVROBEy
virtual int32_t getVROBEy() const
Definition: LArRodBlockPhysicsV5.h:350
LArRodBlockPhysicsV5::m_MaskDigitsPointer
const uint32_t * m_MaskDigitsPointer
Definition: LArRodBlockPhysicsV5.h:150
LArRodBlockPhysicsV5::m_MaskTimeQualityPointer
const uint32_t * m_MaskTimeQualityPointer
Definition: LArRodBlockPhysicsV5.h:149
LArRodBlockPhysicsV5::endtag
@ endtag
Definition: LArRodBlockPhysicsV5.h:56
LArRodBlockPhysicsV5::m_numberHotCellOffTime
uint16_t m_numberHotCellOffTime
Definition: LArRodBlockPhysicsV5.h:163
LArRodBlockStructure::m_ROB_to_decode
int32_t m_ROB_to_decode
Definition: LArRodBlockStructure.h:246
LArRodBlockPhysicsV5::m_TimeQualityBlock
std::vector< uint16_t > m_TimeQualityBlock
Definition: LArRodBlockPhysicsV5.h:138
LArRodBlockPhysicsV5::getNbSweetCells2FromMask
uint16_t getNbSweetCells2FromMask() const
Definition: LArRodBlockPhysicsV5.cxx:564
LArRodBlockPhysicsV5::setEz
virtual void setEz(double)
Definition: LArRodBlockPhysicsV5.h:398
LArRodBlockPhysicsV5::setGain
virtual int setGain(const int)
Definition: LArRodBlockPhysicsV5.h:102
LArRodBlockPhysicsV5::concatinateFEBs
void concatinateFEBs()
Definition: LArRodBlockPhysicsV5.cxx:1001
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
LArRodBlockStructure::m_virtualROBPointer
const uint32_t * m_virtualROBPointer
Definition: LArRodBlockStructure.h:247
LArRodBlockPhysicsV5::m_RawDataPointer
const uint16_t * m_RawDataPointer
Definition: LArRodBlockPhysicsV5.h:156
LArRodBlockPhysicsV5::getFirstSampleIndex
uint16_t getFirstSampleIndex() const
Definition: LArRodBlockPhysicsV5.h:187
LArRodBlockPhysicsV5::getNextEnergy
virtual int getNextEnergy(int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
Definition: LArRodBlockPhysicsV5.h:192
LArRodBlockPhysicsV5::getRadd
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
Definition: LArRodBlockPhysicsV5.cxx:599
LArOnlineID
Definition: LArOnlineID.h:20
LArRodBlockPhysicsV5::getStatus
virtual uint32_t getStatus() const
Definition: LArRodBlockPhysicsV5.cxx:639
LArRodBlockPhysicsV5::LArRodBlockPhysicsV5
LArRodBlockPhysicsV5()
Definition: LArRodBlockPhysicsV5.cxx:39
LArRodBlockPhysicsV5::getCtrl1
virtual uint16_t getCtrl1(uint32_t adc) const
Definition: LArRodBlockPhysicsV5.cxx:615
LArRodBlockStructure::sortDataVector
virtual void sortDataVector(std::vector< const LArRawChannel * > &)
Definition: LArRodBlockStructure.cxx:230
LArRodBlockPhysicsV5::m_EnergyIndex
int m_EnergyIndex
Definition: LArRodBlockPhysicsV5.h:143
LArRodBlockPhysicsV5::getCtrl3
virtual uint16_t getCtrl3(uint32_t adc) const
Definition: LArRodBlockPhysicsV5.cxx:631
LArRodBlockPhysicsV5::m_TimeQualityIndex
int m_TimeQualityIndex
Definition: LArRodBlockPhysicsV5.h:144
LArRodBlockPhysicsV5::FEBID_h
@ FEBID_h
Definition: LArRodBlockPhysicsV5.h:39
LArRodBlockPhysicsV5::m_DigitsIndex
int m_DigitsIndex
Definition: LArRodBlockPhysicsV5.h:145
LArRodBlockPhysicsV5::setRequiredNSamples
void setRequiredNSamples(unsigned short ns)
Definition: LArRodBlockPhysicsV5.h:116
LArRodBlockStructure.h
LArRodBlockPhysicsV5::setEy
virtual void setEy(double)
Definition: LArRodBlockPhysicsV5.h:393
LArRodBlockPhysicsV5::InFPGAFormat_h
@ InFPGAFormat_h
Definition: LArRodBlockPhysicsV5.h:55
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
LArRodBlockPhysicsV5::setE
void setE(unsigned index, double E)
Definition: LArRodBlockPhysicsV5.h:370
LArRodBlockPhysicsV5::m_RawDataBlock
std::vector< uint32_t > m_RawDataBlock
Definition: LArRodBlockPhysicsV5.h:139
LArRodBlockPhysicsV5::ResultsOff2
@ ResultsOff2
Definition: LArRodBlockPhysicsV5.h:44
LArRodBlockPhysicsV5::getEx
virtual int32_t getEx() const
Definition: LArRodBlockPhysicsV5.h:314
LArRodBlockPhysicsV5::m_RaddPointer
const uint16_t * m_RaddPointer
Definition: LArRodBlockPhysicsV5.h:151
LArRodBlockPhysicsV5::m_EnergyBlockEncode
std::vector< uint16_t > m_EnergyBlockEncode
Definition: LArRodBlockPhysicsV5.h:140
LArRodBlockPhysicsV5::FEB_SN_h
@ FEB_SN_h
Definition: LArRodBlockPhysicsV5.h:41
LArRodBlockPhysicsV5::initializeFEB
void initializeFEB(const uint32_t id)
Definition: LArRodBlockPhysicsV5.cxx:700
LArRodBlockPhysicsV5::ResultsOff1
@ ResultsOff1
Definition: LArRodBlockPhysicsV5.h:42
LArRodBlockPhysicsV5::m_EnergyThreshold1
uint16_t m_EnergyThreshold1
Definition: LArRodBlockPhysicsV5.h:165
LArRodBlockPhysicsV5::getVROBFebId
virtual uint32_t getVROBFebId()
Definition: LArRodBlockPhysicsV5.h:332
LArRodBlockPhysicsV5::hasControlWords
virtual uint32_t hasControlWords() const
Definition: LArRodBlockPhysicsV5.h:90
LArRodBlockPhysicsV5::canIncludeRawData
bool canIncludeRawData()
Definition: LArRodBlockPhysicsV5.h:179
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
LArRodBlockPhysicsV5::getNbSweetCells1
virtual uint16_t getNbSweetCells1() const
Definition: LArRodBlockPhysicsV5.cxx:542
LArRodBlockPhysicsV5::m_SumBlkBlockE1
std::vector< uint32_t > m_SumBlkBlockE1
Definition: LArRodBlockPhysicsV5.h:134
LArRodBlockPhysicsV5::getNbSweetCells1FromMask
uint16_t getNbSweetCells1FromMask() const
Definition: LArRodBlockPhysicsV5.cxx:554
LArRodBlockPhysicsV5::InFPGAFormat
@ InFPGAFormat
Definition: LArRodBlockPhysicsV5.h:54
LArRodBlockPhysicsV5::ResultsDim2
@ ResultsDim2
Definition: LArRodBlockPhysicsV5.h:45
LArRodBlockPhysicsV5::FebToRodChannel
virtual int FebToRodChannel(int ch) const
Definition: LArRodBlockPhysicsV5.h:364
LArRodBlockStructure::m_channelsPerFEB
int m_channelsPerFEB
Definition: LArRodBlockStructure.h:225
CaloGain.h
LArRodBlockPhysicsV5::getEz
virtual int32_t getEz() const
Definition: LArRodBlockPhysicsV5.h:326
LArRodBlockPhysicsV5::getEy
virtual int32_t getEy() const
Definition: LArRodBlockPhysicsV5.h:320
LArRodBlockStructure::getHeader16
uint16_t getHeader16(const unsigned n) const
Definition: LArRodBlockStructure.h:355
LArRodBlockStructure::m_virtualROBJump
uint32_t m_virtualROBJump
Definition: LArRodBlockStructure.h:245
LArRodBlockPhysicsV5::sortDataVector
void sortDataVector(std::vector< const LArDigit * > &vDigit)
Definition: LArRodBlockPhysicsV5.h:122
LArRodBlockPhysicsV5::setPointers
virtual bool setPointers()
Definition: LArRodBlockPhysicsV5.cxx:85
LArRodBlockPhysicsV5::NWTot
@ NWTot
Definition: LArRodBlockPhysicsV5.h:36
LArOnlineID.h
pdg_comparison.conv
conv
Definition: pdg_comparison.py:321
LArRodBlockPhysicsV5::getResults2Size
virtual uint16_t getResults2Size() const
Definition: LArRodBlockPhysicsV5.cxx:589