ATLAS Offline Software
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
LArRodBlockPhysicsV6 Class Reference

#include <LArRodBlockPhysicsV6.h>

Inheritance diagram for LArRodBlockPhysicsV6:
Collaboration diagram for LArRodBlockPhysicsV6:

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,
  FirstSampleIndex, FebConfig, InFPGAFormat, InFPGAFormat_h,
  endtag
}
 

Public Member Functions

 LArRodBlockPhysicsV6 ()
 
std::string BlockType ()
 
virtual int getNextEnergy (int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
 
virtual int getNextRawData (int &channelNumber, std::vector< short > &samples, uint32_t &gain)
 
int getNextDigits (int &channelNumber, std::vector< short > &samples, uint32_t &gain)
 
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 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
 
virtual int FebToRodChannel (int ch) 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 int setGain (const int)
 
void initializeFragment (std::vector< uint32_t > &fragment)
 
void initializeFEB (const uint32_t id)
 
void setNextEnergy (const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
 
void setRawData (const int, const std::vector< short > &, const uint32_t)
 
void finalizeFEB ()
 
void concatinateFEBs ()
 
virtual void setEx (double)
 
virtual void setEy (double)
 
virtual void setEz (double)
 
virtual void setSumE (double)
 
void setRequiredNSamples (unsigned short ns)
 
template<class RAWDATA >
bool operator() (const RAWDATA *ch1, const RAWDATA *ch2) const
 
void sortDataVector (std::vector< const LArDigit * > &vDigit)
 
uint16_t getFebConfig () const
 
uint16_t getFirstSampleIndex () const
 
virtual bool canSetCalibration ()
 
bool canSetEnergy ()
 
bool canSetRawData ()
 
bool canIncludeRawData ()
 
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 setNumberOfSamples (const uint8_t n)
 
virtual void setNumberOfGains (const uint8_t n)
 
virtual void setTDCPhase (const uint8_t n)
 
virtual void setRawDataFixed (const int channel, const std::vector< short > &samples, const uint32_t gain)
 
virtual void 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 sortDataVector (std::vector< const LArRawChannel * > &)
 
virtual void sortDataVector (std::vector< const LArCalibDigit * > &)
 
virtual void sortDataVector (std::vector< const LArAccumulatedCalibDigit * > &)
 
virtual void sortDataVector (std::vector< const LArAccumulatedDigit * > &)
 
virtual bool canSetRawDataFixed ()
 
virtual bool canSetNTrigger ()
 
bool setFragment (const uint32_t *p, uint32_t n)
 
bool nextFEB ()
 
uint32_t getNumberOfWords () const
 
uint32_t getFEBID () const
 
uint32_t getFEBSN () const
 
virtual uint32_t hasAccumBlock () const
 
virtual int getNextAccumulatedCalibDigit (int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &Samples2Sum, uint32_t &nStepTriggers, uint32_t &gain)
 
virtual int getNextAccumulatedDigit (int &channelNumber, std::vector< uint64_t > &SamplesSum, std::vector< uint64_t > &corr2Sum, uint32_t &gain)
 
virtual bool getPulsed (unsigned channelNumber) const
 
virtual uint16_t getDAC () const
 
virtual uint16_t getDelay () const
 
virtual uint16_t getNTrigger () const
 
virtual uint16_t getStepIndex () const
 
virtual uint16_t getNStep () const
 
virtual uint8_t getTDCPhase () 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
 
bool report_error (void) const
 

Protected Types

enum  {
  NWTot, NWTot_h, FEBID, FEBID_h,
  FEBSN, FEBSN_h, endtag
}
 
typedef std::map< uint32_t, std::vector< uint32_t > > FEBMAPTYPE
 

Protected Member Functions

void setHeader16 (const unsigned n, const uint16_t w)
 
void setHeader32 (const unsigned n, const uint32_t w)
 
uint16_t getVectorHeader16 (const unsigned n) const
 
uint32_t getVectorHeader32 (const unsigned n) const
 
uint16_t getHeader16 (const unsigned n) const
 
uint32_t getHeader32 (const unsigned n) const
 
uint16_t LE_getHeader16 (const unsigned n) const
 
void LE_setHeader16 (const unsigned n, const uint16_t w)
 
uint16_t LE_getVectorHeader16 (const unsigned n) const
 
void setBit (uint32_t *const p, const unsigned chan)
 
int getBit (const uint32_t *const p, const unsigned chan) const
 

Protected Attributes

int32_t m_Ex
 
int32_t m_Ey
 
int32_t m_Ez
 
int32_t m_SumE
 
uint32_t m_numberOfEx
 
uint32_t m_numberOfEy
 
uint32_t m_numberOfEz
 
uint32_t m_numberOfSumE
 
unsigned short m_iHeadBlockSize
 
int m_channelsPerFEB
 
const uint32_t * m_FebBlock
 
const uint32_t * m_RodBlock
 
int32_t m_FebBlockSize
 
int32_t m_RodBlockSize
 
std::vector< uint32_t > * m_vFragment
 
std::vector< uint32_t > * m_pRODblock
 
FEBMAPTYPE m_mFebBlocks
 
int32_t m_MiddleHeaderSize
 
unsigned int m_rearrangeFirstSample
 
bool m_error_next_feb
 
uint32_t m_virtualROBJump
 
int32_t m_ROB_to_decode
 
const uint32_t * m_virtualROBPointer
 
const uint32_t * m_virtualROBPointerLocal
 

Static Protected Attributes

static const uint32_t m_RawToOfflineGainMap [4] ={0, 2, 1,0}
 
static const uint32_t m_OfflineToRawGainMap [3] ={3,2,1}
 

Private Member Functions

void setE (unsigned int index, double E)
 
virtual void resetPointers ()
 
virtual bool setPointers ()
 
void setNextEnergy (const uint16_t energy, const int16_t time, const int16_t quality, const uint32_t gain)
 
uint16_t getNbSweetCells1FromMask () const
 
uint16_t getNbSweetCells2FromMask () const
 

Private Attributes

std::vector< uint32_t > m_SumBlkBlockE1
 
std::vector< uint32_t > m_SumBlkBlockE2
 
std::vector< uint32_t > m_GainBlock
 
std::vector< uint32_t > m_FebInfoBlock
 
std::vector< uint16_t > m_TimeQualityBlock
 
std::vector< uint32_t > m_RawDataBlock
 
std::vector< uint16_t > m_EnergyBlockEncode
 
std::vector< uint16_t > m_DigitsEncode
 
int m_EnergyIndex = 0
 
int m_TimeQualityIndex = 0
 
int m_DigitsIndex = 0
 
int m_DigitsChannel = 0
 
int m_RawDataIndex = 0
 
const uint32_t * m_GainPointer = nullptr
 
const uint32_t * m_MaskTimeQualityPointer = nullptr
 
const uint32_t * m_MaskDigitsPointer = nullptr
 
const uint16_t * m_RaddPointer = nullptr
 
const uint16_t * m_EnergyPointer = nullptr
 
const int32_t * m_SumPointer = nullptr
 
const uint16_t * m_TimeQualityPointer = nullptr
 
const uint16_t * m_DigitsPointer = nullptr
 
const uint16_t * m_RawDataPointer = nullptr
 
int m_fixedGain
 
uint16_t m_numberHotCell = 0U
 
uint16_t m_numberHotCellOffTime
 
uint16_t m_EnergyThreshold1
 
uint16_t m_EnergyThreshold2
 
int16_t m_OffTimeCut
 
unsigned short m_requiredNSamples
 
const LArOnlineIDm_onlineHelper
 

Detailed Description

Definition at line 31 of file LArRodBlockPhysicsV6.h.

Member Typedef Documentation

◆ FEBMAPTYPE

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

Definition at line 233 of file LArRodBlockStructure.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NWTot 
NWTot_h 
FEBID 
FEBID_h 
FEB_SN 
FEB_SN_h 
ResultsOff1 
ResultsDim1 
ResultsOff2 
ResultsDim2 
RawDataBlkOff 
RawDataBlkDim 
EventStatus 
EventStatus_h 
NGains 
NSamples 
FirstSampleIndex 
FebConfig 
InFPGAFormat 
InFPGAFormat_h 
endtag 

Definition at line 35 of file LArRodBlockPhysicsV6.h.

35  {
36  NWTot, // First words: DSP event header
37  NWTot_h,
38  FEBID,
39  FEBID_h,
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
50  NGains,
51  NSamples,
53  FebConfig,
54  InFPGAFormat, // added 08.09.2005 - wrong 28.09.2005?
56  endtag //This tag needs to be an odd number, see *) for constructor
57  };

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
NWTot 
NWTot_h 
FEBID 
FEBID_h 
FEBSN 
FEBSN_h 
endtag 

Definition at line 51 of file LArRodBlockStructure.h.

51  {
52  NWTot, // Number of words in DSP block
53  NWTot_h,
54  FEBID, // FEB ID
55  FEBID_h,
56  FEBSN, // FEB Serial Number
57  FEBSN_h,
58  endtag // This tag needs to be an odd number, see *) for constructor
59  };

Constructor & Destructor Documentation

◆ LArRodBlockPhysicsV6()

LArRodBlockPhysicsV6::LArRodBlockPhysicsV6 ( )

Definition at line 39 of file LArRodBlockPhysicsV6.cxx.

41  m_onlineHelper(nullptr)
42 {
43  m_iHeadBlockSize=endtag/2; // The implicit cast rounds down to the right size
49  m_OffTimeCut=0; //FIXME: Nowhere set to a sensible value ???
51  // retrieve onlineHelper
52  //const LArOnlineID* online_id;
54  ISvcLocator* svcLoc = Gaudi::svcLocator( );
55  StatusCode sc =svcLoc->service( "DetectorStore", detStore );
56  if (sc.isFailure()) {
57  std::cout << "Unable to locate DetectorStore" << std::endl;
58  std::abort();
59  }
60  sc = detStore->retrieve(m_onlineHelper, "LArOnlineID");
61  if (sc.isFailure()) {
62  std::cout << "Could not get LArOnlineID helper !" << std::endl;
63  std::abort();
64  }
65 }

Member Function Documentation

◆ BlockType()

std::string LArRodBlockPhysicsV6::BlockType ( )
inline

Definition at line 62 of file LArRodBlockPhysicsV6.h.

62 { return std::string("RodBlockPhysicsV6");}

◆ canIncludeRawData()

bool LArRodBlockPhysicsV6::canIncludeRawData ( )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 182 of file LArRodBlockPhysicsV6.h.

182 { return true;}

◆ canSetCalibration()

virtual bool LArRodBlockPhysicsV6::canSetCalibration ( )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 179 of file LArRodBlockPhysicsV6.h.

179 {return false;}

◆ canSetEnergy()

bool LArRodBlockPhysicsV6::canSetEnergy ( )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 180 of file LArRodBlockPhysicsV6.h.

180 { return true;}

◆ canSetNTrigger()

virtual bool LArRodBlockStructure::canSetNTrigger ( )
inlinevirtualinherited

Definition at line 100 of file LArRodBlockStructure.h.

100 {return false;}

◆ canSetRawData()

bool LArRodBlockPhysicsV6::canSetRawData ( )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 181 of file LArRodBlockPhysicsV6.h.

181 { return false;}

◆ canSetRawDataFixed()

virtual bool LArRodBlockStructure::canSetRawDataFixed ( )
inlinevirtualinherited

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 98 of file LArRodBlockStructure.h.

98 {return false;}

◆ concatinateFEBs()

void LArRodBlockPhysicsV6::concatinateFEBs ( )
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 1016 of file LArRodBlockPhysicsV6.cxx.

1017 {
1018  FEBMAPTYPE::const_iterator feb_it_b=m_mFebBlocks.begin();
1019  FEBMAPTYPE::const_iterator feb_it_e=m_mFebBlocks.end();
1020  FEBMAPTYPE::const_iterator feb_it;
1021  for (feb_it=feb_it_b;feb_it!=feb_it_e;++feb_it) {
1022  if (feb_it!=feb_it_b) //Not first Feb
1023  m_pRODblock->resize( m_pRODblock->size()+m_MiddleHeaderSize);
1024 
1025  //Add feb data to rod data block
1026  m_pRODblock->insert (m_pRODblock->end(),
1027  feb_it->second.begin(), feb_it->second.end());
1028  } //end for feb_it
1029 
1030  m_mFebBlocks.clear();
1031  return;
1032 }

◆ dumpFragment()

void LArRodBlockStructure::dumpFragment ( )
virtualinherited

Definition at line 175 of file LArRodBlockStructure.cxx.

176 {
177  std::cout << "ERROR: Function dumpFragment() not implemented in this instance of LArRodBlockStructure!\n";
178  return;
179 }

◆ FebToRodChannel()

int LArRodBlockPhysicsV6::FebToRodChannel ( int  ch) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 379 of file LArRodBlockPhysicsV6.h.

380 {
381 return ( (ch&0x7) << 4) | ( (ch&0x38) >>2 ) | ((ch&0x40)>>6);
382 
383 }

◆ finalizeFEB()

void LArRodBlockPhysicsV6::finalizeFEB ( )
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 872 of file LArRodBlockPhysicsV6.cxx.

873 {
874 //Complete non-complete Energy block
876  setNextEnergy((uint16_t)0,(int16_t)32767,(int32_t)-32767,(uint32_t)0);//E=0,t=32767,q=-32767,G=0
877 
878 uint16_t n;
879 //uint16_t BlockOffset;
881 // checkSum value
882 uint32_t sum=0;
883 
884 // Will Hardcode here for the moment FIXME. Minimal 1 sample
887 // These will never be used form MC. Nice to put in here thought
888 setHeader16(FEB_SN,0xfefe);
889 setHeader16(FEB_SN_h,0xdede);
892 
893 // Gain block...
894 n = m_GainBlock.size();
895 //BlockOffset=0;
896 //LARBSDBG("Checking Gain Block n=" << n << "BlockOffset=" << BlockOffset);
897 //Check if Gain-Block exists and is not yet part of the fragment
898 if (n)
899  {
900  //LARBSDBG(MSG::DEBUG << "In finalyseFEB-------------------->>>>> " << "Checking for Gain Block : length= " << n << " BlockOffset=" << BlockOffset);
901  for(unsigned int i=0;i<n;i++){
902  m_vFragment->push_back(m_GainBlock[i]);
903  sum+=m_GainBlock[i];
904  }
905  }
906 
907  // Cells above energy threshold E1
908  n = m_SumBlkBlockE1.size();
909  //Check if Summary Block exists and is not yet part of the fragment
910  if (n)
911  {
912  //LARBSDBG("In finalizeFEB-------------------->>>>> " << "Checking for Summary Block : length= " << n << " BlockOffset=" << BlockOffset);
913  for (unsigned i=0;i<n;i++){
914  m_vFragment->push_back(m_SumBlkBlockE1[i]);
916  }
917  }
918 
919  // Cells above energy threshold E2 (not included so far)
920  n = m_SumBlkBlockE2.size();
921  //Check if Summary Block exists and is not yet part of the fragment
922  //LARBSDBG("Checking for Summary Block n=" << n << "BlockOffset=" << BlockOffset);
923  if (n)
924  {
925  //LARBSDBG("In finalizeFEB-------------------->>>>> " << "Checking for Summary Block : length= " << n << " BlockOffset=" << BlockOffset);
926  for (unsigned i=0;i<n;i++){
927  m_vFragment->push_back(m_SumBlkBlockE2[i]);
929  }
930  }
931 
932  // fill info from counters
933  // for moment just include 1 fake words (32 bits) to put radd
934  uint32_t radd_nANC=0x0;
935  // Second threshold missing (FIXME)
936  radd_nANC = ((m_numberHotCell<<8))+(m_DigitsEncode.size()/nsamples);
937  radd_nANC = (radd_nANC<<16);
938  m_vFragment->push_back(radd_nANC);
939  sum+=radd_nANC;
940  // Need to include radd nsamples-1
941  // No need to include in sum's for now
942  for( int i=0; i < (nsamples-1)/2; i++)
943  m_vFragment->push_back(0x0);
944 
945 
946  // Energy block...
947  n = 128 ; // Fixed size m_EnergyBlock.size();
948  // BlockOffset=getVectorHeader16(ResultsOff1); xxx
949  // Block also include time, whenever necessary
950  int size_of_block=80+(nsamples+1)/2+(m_TimeQualityBlock.size())/2;
951  //LARBSDBG("Checking Energy Block n=" << n << "BlockOffset=" << BlockOffset);
952  //Check if Energy-Block exists and is not yet part of the fragment
953  if (n)
954  {
956  setHeader16(ResultsDim1,size_of_block);
957  //LARBSDBG("In finalyseFEB-------------------->>>>> " << "Checking for Energy Block : length= " << n << " BlockOffset=" << BlockOffset);
958  for(unsigned int i=0;i<n/2;i++) {
959  // WARNING witch one should be >>16 2*i or 2*i+1? To be tested
960  uint32_t Encode = m_EnergyBlockEncode[2*i]+(m_EnergyBlockEncode[2*i+1]<<16);
961  m_vFragment->push_back(Encode);
962  sum+=Encode;
963  }
964  }
965 
966  // Magic numbers (4 or 8) for Ex, Ey and Ez
967  n = m_TimeQualityBlock.size();
968  //LARBSDBG("Checking Time and Quality Block n=" << n << "BlockOffset=" << BlockOffset);
969  //Check if Time and Quality Block exists and is not yet part of the fragment
970  if (n)
971  {
972  unsigned int imax = n/2;
973  for(unsigned int i=0;i<imax;i++){
974  ShortLong to_push{};
975  to_push.s[0] = m_TimeQualityBlock[i*2];
976  to_push.s[1] = m_TimeQualityBlock[i*2+1];
977  m_vFragment->push_back(to_push.l);
978  sum+=to_push.l;
979  }
980  }
981  // Now include digits
982  n = m_DigitsEncode.size();
983  if ( n ) {
984  // First make sure it is not and odd number to store
985  if ( m_DigitsEncode.size() & 0x1 ) m_DigitsEncode.push_back(0x0);
986  unsigned int imax=m_DigitsEncode.size()/2;
987  for(unsigned int i=0;i<imax;i++){
988  // Better by-swap
989  ShortLong to_push{};
990  to_push.s[1]=m_DigitsEncode[i*2];
991  to_push.s[0]=m_DigitsEncode[i*2+1];
992  m_vFragment->push_back(to_push.l);
993  sum+=to_push.l;
994  }
996  setHeader16(ResultsOff2,18+size_of_block);
997  } // End of check for format
998 
999  // Need to add header to check sum
1000  for(size_t ii=0;ii<endtag/2;ii++){
1001  sum+=((*m_vFragment)[ii]);
1002  }
1003  // Three final magic words
1004  m_vFragment->push_back(0x0); // For the moment
1005  m_vFragment->push_back(0x12345678); // For the moment
1006  //sum+=0x12345678;
1007  sum+=m_vFragment->size()+1;
1008  m_vFragment->push_back(sum& 0x7fffffff);
1009 
1010  setHeader32(NWTot,m_vFragment->size());
1011  return;
1012 
1013 }

◆ getBit()

int LArRodBlockStructure::getBit ( const uint32_t *const  p,
const unsigned  chan 
) const
inlineprotectedinherited

Definition at line 433 of file LArRodBlockStructure.h.

434 {// chan = (0,127)
435  // int a = chan/32;
436  // int r = chan%32;
437  int a = chan>>5;
438  int r = chan&0x1f;
439  // a = (0,3), r = ( 0, 31 )
440  return (*(p+a)>>r) & 0x1;
441 }

◆ getCtrl1()

uint16_t LArRodBlockPhysicsV6::getCtrl1 ( uint32_t  adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 629 of file LArRodBlockPhysicsV6.cxx.

630 {
631  if(!m_RawDataPointer) return 0;
632  int index=5;
634  return x;
635 }

◆ getCtrl2()

uint16_t LArRodBlockPhysicsV6::getCtrl2 ( uint32_t  adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 637 of file LArRodBlockPhysicsV6.cxx.

638 {
639  if(!m_RawDataPointer) return 0;
640  int index=4;
642  return x;
643 }

◆ getCtrl3()

uint16_t LArRodBlockPhysicsV6::getCtrl3 ( uint32_t  adc) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 645 of file LArRodBlockPhysicsV6.cxx.

646 {
647  if(!m_RawDataPointer) return 0;
648  int index=7;
650  return x;
651 }

◆ getDAC()

uint16_t LArRodBlockStructure::getDAC ( ) const
inlinevirtualinherited

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

Definition at line 468 of file LArRodBlockStructure.h.

469 {
470  std::cout << "ERROR: Function getDAC not implemented in this instance of LArRodBlockStructure!\n";
471  return 0;
472 }

◆ getDelay()

uint16_t LArRodBlockStructure::getDelay ( ) const
inlinevirtualinherited

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

Definition at line 474 of file LArRodBlockStructure.h.

475 {
476  std::cout << "ERROR: Function getDelay not implemented in this instance of LArRodBlockStructure!\n";
477  return 0;
478 }

◆ getDspCodeVersion()

uint32_t LArRodBlockStructure::getDspCodeVersion ( ) const
virtualinherited

Definition at line 258 of file LArRodBlockStructure.cxx.

259 {
260  int i=getNumberOfWords()-2;
261  return m_FebBlock[i];
262 }

◆ getDspEventCounter()

int32_t LArRodBlockStructure::getDspEventCounter ( ) const
virtualinherited

Definition at line 264 of file LArRodBlockStructure.cxx.

265 {
266  int i=getNumberOfWords()-1;
267  return m_FebBlock[i];
268 }

◆ getEx()

int32_t LArRodBlockPhysicsV6::getEx ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 317 of file LArRodBlockPhysicsV6.h.

318 {
319  if(m_SumPointer) return (m_SumPointer[0]>>9);
320  return 0;
321 }

◆ getEy()

int32_t LArRodBlockPhysicsV6::getEy ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 323 of file LArRodBlockPhysicsV6.h.

324 {
325  if(m_SumPointer) return (m_SumPointer[1]>>9);
326  return 0;
327 }

◆ getEz()

int32_t LArRodBlockPhysicsV6::getEz ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 329 of file LArRodBlockPhysicsV6.h.

330 {
331  if(m_SumPointer) return (m_SumPointer[2]>>9);
332  return 0;
333 }

◆ getFebConfig()

uint16_t LArRodBlockPhysicsV6::getFebConfig ( ) const
inline

Definition at line 185 of file LArRodBlockPhysicsV6.h.

186 {
187  return getHeader16(FebConfig);
188 }

◆ getFEBID()

uint32_t LArRodBlockStructure::getFEBID ( ) const
inlineinherited

Definition at line 297 of file LArRodBlockStructure.h.

298 {return getHeader32(FEBID);}

◆ getFEBSN()

uint32_t LArRodBlockStructure::getFEBSN ( ) const
inlineinherited

Definition at line 300 of file LArRodBlockStructure.h.

301 {return getHeader32(FEBSN);}

◆ getFirstSampleIndex()

uint16_t LArRodBlockPhysicsV6::getFirstSampleIndex ( ) const
inline

Definition at line 190 of file LArRodBlockPhysicsV6.h.

191 {
193 }

◆ getHeader16()

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

Definition at line 355 of file LArRodBlockStructure.h.

356 {
357  // std::cout << "getHeader16: " << m_FebBlock << " " << m_FebBlock[5] << " "
358  // << n << " " << (n>>1) << " " << (m_FebBlock[5]&0xffff) << std::endl;
359  if (n&0x1) //n is a odd number
360  return m_FebBlock[n>>1] & 0xffff; //1,3,5... are fetched from lower bits
361  else //n is a even number
362  return m_FebBlock[n>>1] >> 16; //0,2,4... are fetched from higher bits
363 }

◆ getHeader32()

uint32_t LArRodBlockStructure::getHeader32 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 365 of file LArRodBlockStructure.h.

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

◆ getNbSweetCells1()

uint16_t LArRodBlockPhysicsV6::getNbSweetCells1 ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 556 of file LArRodBlockPhysicsV6.cxx.

557 {
558  if(!m_RaddPointer) return 0;
559  return m_RaddPointer[1]>>8;
560 }

◆ getNbSweetCells1FromMask()

uint16_t LArRodBlockPhysicsV6::getNbSweetCells1FromMask ( ) const
private

Definition at line 568 of file LArRodBlockPhysicsV6.cxx.

569 {
570  if(!m_MaskTimeQualityPointer) return 0;
571  int n=0;
572  for(int i=0;i<4;i++)
573  for(int j=0;j<32;j++)
574  if((m_MaskTimeQualityPointer[i] >> j) &0x1) n++;
575  return n;
576 }

◆ getNbSweetCells2()

uint16_t LArRodBlockPhysicsV6::getNbSweetCells2 ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 562 of file LArRodBlockPhysicsV6.cxx.

563 {
564  if(!m_RaddPointer) return 0;
565  return m_RaddPointer[1] & 0xff;
566 }

◆ getNbSweetCells2FromMask()

uint16_t LArRodBlockPhysicsV6::getNbSweetCells2FromMask ( ) const
private

Definition at line 578 of file LArRodBlockPhysicsV6.cxx.

579 {
580  if(!m_MaskDigitsPointer) return 0;
581  int n=0;
582  for(int i=0;i<4;i++)
583  for(int j=0;j<32;j++)
584  if((m_MaskDigitsPointer[i] >> j) &0x1) n++;
585  return n;
586 }

◆ getNextAccumulatedCalibDigit()

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

Reimplemented in LArRodBlockCalibrationV3.

Definition at line 94 of file LArRodBlockStructure.cxx.

95 {
96  std::cout << "ERROR: Function getNextAccumulatedCalibDigit not implemented in this instance of LArRodBlockStructure!\n";
97  return 0;
98 }

◆ getNextAccumulatedDigit()

int LArRodBlockStructure::getNextAccumulatedDigit ( int &  channelNumber,
std::vector< uint64_t > &  SamplesSum,
std::vector< uint64_t > &  corr2Sum,
uint32_t &  gain 
)
virtualinherited

Reimplemented in LArRodBlockAccumulatedV3.

Definition at line 100 of file LArRodBlockStructure.cxx.

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

◆ getNextDigits()

int LArRodBlockPhysicsV6::getNextDigits ( int &  channelNumber,
std::vector< short > &  samples,
uint32_t &  gain 
)

Definition at line 417 of file LArRodBlockPhysicsV6.cxx.

418 {
419  //std::cout << " I am here !!!!!!!!!!!!!!!!!!!!!! " << std::endl;
420 #ifdef LARBSDBGOUTPUT
421  MsgStream logstr(Athena::getMessageSvc(), BlockType());
422  //Debug output
423  logstr << MYLEVEL << "Let s go in getNextDigits..." << endmsg;
424  logstr << MYLEVEL << "GetNextDigits for FEB 0x" << MSG::hex << (uint32_t)getHeader32(FEBID) << MSG::dec << endmsg;
425  logstr << MYLEVEL << "m_DigitsPointer=" << m_DigitsPointer << " m_DigitsIndex="<< m_DigitsIndex
426  << " m_DigitsChannel="<< m_DigitsChannel
427  << " m_channelsPerFEB=" << m_channelsPerFEB << endmsg;
428 #endif
429 
430  if (m_DigitsChannel>=m_channelsPerFEB) { //Already beyond maximal number of channels
431 #ifdef LARBSDBGOUTPUT
432  logstr << MYLEVEL << "Maximum number of channels reached" << endmsg;
433 #endif
434  return 0;
435  }
436  //const uint16_t block = getHeader16(m_DigitsOff);//Position of the raw FEB data block
437  if (!m_DigitsPointer) { //Block does not exist
438 #ifdef LARBSDBGOUTPUT
439  logstr << MYLEVEL << "No Digits Block in this FEB" << endmsg;
440 #endif
441  return 0;
442  }
443  if (!m_MaskDigitsPointer) { //Block does not exist
444 #ifdef LARBSDBGOUTPUT
445  logstr << MYLEVEL << "No Mask Digits Block in this FEB" << endmsg;
446 #endif
447  return 0;
448  }
449 
450  // Get Digits if the information is present according to summary block
451  uint32_t hasDigits;
452 
453  hasDigits = (uint32_t) ((m_MaskDigitsPointer[m_DigitsChannel>>5] >> (m_DigitsChannel&0x1f)) &0x1);
454  // Increment channel number until digits are found
455  while(hasDigits==0) {
456  m_DigitsChannel++;
457  if (m_DigitsChannel>=m_channelsPerFEB) { //Already beyond maximal number of channels
458 #ifdef LARBSDBGOUTPUT
459  logstr << MYLEVEL << "Maximum number of channels reached" << endmsg;
460 #endif
461  return 0;
462  }
463  hasDigits = (uint32_t) ((m_MaskDigitsPointer[m_DigitsChannel>>5] >> (m_DigitsChannel&0x1f)) &0x1);
464  }
465 
466  // Get next channel
467  unsigned rodChannelNumber=m_DigitsChannel; // Index of Channel in ROD-Block
468  channelNumber=((rodChannelNumber&0xe)<<2) + ((rodChannelNumber&0x1)<<6) + (rodChannelNumber>>4); //channel number of the FEB
469  //channelNumber=(rodChannelNumber>>4) + ((rodChannelNumber&0xf)<<3); //channel number of the FEB
470  const unsigned int nsamples = getHeader16(NSamples) & 0xff;
471 
472  // gain in 2 bits of a 32 bits word
473  if(m_GainPointer) {
474  gain = (uint32_t) ((m_GainPointer[m_DigitsChannel>>4] >> (m_DigitsChannel&0xf)*2) & 0x3);
476  } else gain=0xffffffff;
477 
478 #ifdef LARBSDBGOUTPUT
479  logstr << MYLEVEL << "This FEB has " << nsamples << " samples" << endmsg;
480 #endif
481 
482  if(nsamples==0) return 0;
483  int s_size = nsamples;
484  int index;
485  index = s_size*m_DigitsIndex;
486  //uint16_t s;
487  //for(unsigned int i=0;i<nsamples;i++) {
488  // s = m_DigitsPointer[index++]>>2;
489  // samples.push_back(s);
490  //}
491  //int ok=1;
492  //for(unsigned int i=0;i<nsamples;i++) {
493  // if(m_DigitsPointer[index+i]>>14 && m_DigitsIndex<getNbSweetCells2()-1) {
494  // std::cout << "Trying to decode strange digits value: " << std::hex << m_DigitsPointer[index+i] << std::dec << std::endl;
495  // ok=0;
496  // }
497  //}
498  if( nsamples&0x1){
499  if(m_DigitsIndex&0x1) {
500  samples.push_back(m_DigitsPointer[index-1]>>2);
501  samples.push_back(m_DigitsPointer[index+2]>>2);
502  samples.push_back(m_DigitsPointer[index+1]>>2);
503  samples.push_back(m_DigitsPointer[index+4]>>2);
504  samples.push_back(m_DigitsPointer[index+3]>>2);
505  if(nsamples==7) {
506  samples.push_back(m_DigitsPointer[index+6]>>2);
507  samples.push_back(m_DigitsPointer[index+5]>>2);
508  }
509  } else {
510  samples.push_back(m_DigitsPointer[index+1]>>2);
511  samples.push_back(m_DigitsPointer[index+0]>>2);
512  samples.push_back(m_DigitsPointer[index+3]>>2);
513  samples.push_back(m_DigitsPointer[index+2]>>2);
514  samples.push_back(m_DigitsPointer[index+5]>>2);
515  if(nsamples==7) {
516  samples.push_back(m_DigitsPointer[index+4]>>2);
517  samples.push_back(m_DigitsPointer[index+7]>>2);
518  }
519  }
520  } else {
521  samples.push_back(m_DigitsPointer[index+1]>>2);
522  samples.push_back(m_DigitsPointer[index+0]>>2);
523  samples.push_back(m_DigitsPointer[index+3]>>2);
524  samples.push_back(m_DigitsPointer[index+2]>>2);
525  }
526 
527 #ifdef LARBSDBGOUTPUT
528  logstr << MYLEVEL << " ===> ROD Channel = " << m_DigitsChannel << endmsg;
529  logstr << MYLEVEL << " ===> FEB Channel = " << channelNumber << endmsg;
530  logstr << MYLEVEL << " ===> Gain = " << gain << endmsg;
531  for(int i=0;i<nsamples;i++)
532  logstr << MYLEVEL << " ===> sample " << i << " = " << samples[i] << endmsg;
533 #endif
534  //std::cout << "Gain= " << gain << " Febgain=" << febgain << std::endl;
535  m_DigitsIndex++;
536  m_DigitsChannel++;
537  unsigned rearrangeFirstSample=0;
539  rearrangeFirstSample=m_rearrangeFirstSample; //Overwrite by jobOptions
540  else
541  rearrangeFirstSample=getFirstSampleIndex();
542  //std::cout << "FebConfig: "<< getFebConfig() << " FirstSampleIndex " << getFirstSampleIndex() <<std::endl;
543  if (rearrangeFirstSample && rearrangeFirstSample<samples.size()) //FIXME: Very ugly hack! See explanation in LArRodDecoder.h file
544  {//Change e.g. 3 0 1 2 4 to 0 1 2 3 4
545  short movedSample=samples[0];
546  for (unsigned i=1;i<=rearrangeFirstSample;i++)
547  samples[i-1]=samples[i];
548  samples[rearrangeFirstSample]=movedSample;
549  }
550 #ifdef LARBSDBGOUTPUT
551  logstr << MYLEVEL << "GetNextDigits for FEB finished 0x" << MSG::hex << (uint32_t)getHeader32(FEBID) << MSG::dec << endmsg;
552 #endif
553  return 1;
554 }

◆ getNextEnergy()

int LArRodBlockPhysicsV6::getNextEnergy ( int &  channelNumber,
int32_t &  energy,
int32_t &  time,
int32_t &  quality,
uint32_t &  gain 
)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 195 of file LArRodBlockPhysicsV6.h.

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 }

◆ getNextRawData()

int LArRodBlockPhysicsV6::getNextRawData ( int &  channelNumber,
std::vector< short > &  samples,
uint32_t &  gain 
)
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 302 of file LArRodBlockPhysicsV6.cxx.

303 {
304 #ifdef LARBSDBGOUTPUT
305  MsgStream logstr(Athena::getMessageSvc(), BlockType());
306  //Debug output
307  logstr << MYLEVEL << "Let s go in getNextRawData..." << endmsg;
308  logstr << MYLEVEL << "GetNextRawData for FEB 0x" << MSG::hex << (uint32_t)getHeader32(FEBID) << MSG::dec << endmsg;
309  logstr << MYLEVEL << "m_RawDataPointer=" << m_RawDataPointer << " m_RawDataIndex="<< m_RawDataIndex
310  << " m_channelsPerFEB=" << m_channelsPerFEB << endmsg;
311 #endif
312 
313  if (m_RawDataIndex>=m_channelsPerFEB) { //Already beyond maximal number of channels
314 #ifdef LARBSDBGOUTPUT
315  logstr << MYLEVEL << "Maximum number of channels reached" << endmsg;
316 #endif
317  return 0;
318  }
319  //const uint16_t block = getHeader16(m_RawDataOff);//Position of the raw FEB data block
320  if (!m_RawDataPointer) { //Block does not exist
321  // Try to get samples and gain from getNextDigits
322  return getNextDigits(channelNumber,samples,gain);
323  }
324 
325  // Get next channel
326  unsigned rodChannelNumber=m_RawDataIndex; // Index of Channel in ROD-Block
327  channelNumber=((rodChannelNumber&0xe)<<2) + ((rodChannelNumber&0x1)<<6) + (rodChannelNumber>>4); //channel number of the FEB
328  //channelNumber=(rodChannelNumber>>4) + ((rodChannelNumber&0xf)<<3); //channel number of the FEB
329  uint32_t febgain;
330  const unsigned int nsamples = getHeader16(NSamples) & 0xff;
331  const unsigned int ngains = getHeader16(NGains);
332 
333 #ifdef LARBSDBGOUTPUT
334  logstr << MYLEVEL << "This FEB has " << nsamples << " samples" << endmsg;
335  logstr << MYLEVEL << "This FEB has " << ngains << " gains" << endmsg;
336 #endif
337 
338  if(ngains==0 || nsamples==0) return 0;
339  int s_size = nsamples+1;
340  int offset = (10+nsamples)&0xfffc;
341  int index;
342  index = s_size*m_RawDataIndex + offset;
343  uint16_t s[2];
344  //for(unsigned int i=0;i<nsamples+1;i++) {
345  // if(m_RawDataPointer[index+i]>>14) {
346  // std::cout << "Trying to decode strange raw data value: " << std::hex << m_RawDataPointer[index+i] << std::dec << std::endl;
347  // }
348  //}
349  if((nsamples+1)&0x7) {
350  s[0] = m_RawDataPointer[index++]>>2;
351  febgain = m_RawDataPointer[index++];
352  samples.push_back(s[0]);
353  for(unsigned int i=0;i<nsamples/2;i++) {
354  s[1] = m_RawDataPointer[index++]>>2;
355  s[0] = m_RawDataPointer[index++]>>2;
356  samples.push_back(s[0]);
357  samples.push_back(s[1]);
358  }
359  } // End of check for 5 samples
360  else {
361  if (!(m_RawDataIndex%2)) {
362  s[0] = m_RawDataPointer[index++]>>2;
363  febgain = m_RawDataPointer[index++];
364  samples.push_back(s[0]);
365  for(unsigned int i=0;i<nsamples/2;i++) {
366  s[1] = m_RawDataPointer[index++]>>2;
367  s[0] = m_RawDataPointer[index++]>>2;
368  samples.push_back(s[0]);
369  samples.push_back(s[1]);
370  }
371  } else {
372  for(unsigned int i=0;i<nsamples/2;i++) {
373  s[1] = m_RawDataPointer[index++]>>2;
374  s[0] = m_RawDataPointer[index++]>>2;
375  samples.push_back(s[0]);
376  samples.push_back(s[1]);
377  }
378  febgain = m_RawDataPointer[index++];
379  s[0] = m_RawDataPointer[index++]>>2;
380  samples.push_back(s[0]);
381  }
382  } // End of >5 check
383  gain=RawToOfflineGain(febgain);
384 
385 #ifdef LARBSDBGOUTPUT
386  logstr << MYLEVEL << " ===> ROD Channel = " << m_RawDataIndex << endmsg;
387  logstr << MYLEVEL << " ===> FEB Channel = " << channelNumber << endmsg;
388  logstr << MYLEVEL << " ===> Gain = " << gain << endmsg;
389  for(int i=0;i<nsamples;i++)
390  logstr << MYLEVEL << " ===> sample " << i << " = " << samples[i] << endmsg;
391  int n = m_RawDataIndex;
392  int32_t e,t,q;
393  uint32_t g;
395 #endif
396  //std::cout << "Gain= " << gain << " Febgain=" << febgain << std::endl;
397  ++m_RawDataIndex;
398  unsigned rearrangeFirstSample=0;
400  rearrangeFirstSample=m_rearrangeFirstSample; //Overwrite by jobOptions
401  else
402  rearrangeFirstSample=getFirstSampleIndex();
403  //std::cout << "FebConfig: "<< getFebConfig() << " FirstSampleIndex " << rearrangeFirstSample <<std::endl;
404  if (rearrangeFirstSample && rearrangeFirstSample<samples.size()) //FIXME: Very ugly hack! See explanation in LArRodDecoder.h file
405  {//Change e.g. 3 0 1 2 4 to 0 1 2 3 4
406  short movedSample=samples[0];
407  for (unsigned i=1;i<=rearrangeFirstSample;i++)
408  samples[i-1]=samples[i];
409  samples[rearrangeFirstSample]=movedSample;
410  }
411 #ifdef LARBSDBGOUTPUT
412  logstr << MYLEVEL << "GetNextRawData for FEB finished 0x" << MSG::hex << (uint32_t)getHeader32(FEBID) << MSG::dec << endmsg;
413 #endif
414  return 1;
415 }

◆ getNStep()

uint16_t LArRodBlockStructure::getNStep ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockCalibrationV3, and LArRodBlockAccumulatedV3.

Definition at line 491 of file LArRodBlockStructure.h.

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

◆ getNTrigger()

uint16_t LArRodBlockStructure::getNTrigger ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockCalibrationV3, LArRodBlockCalibrationV2, LArRodBlockCalibrationV1, and LArRodBlockAccumulatedV3.

Definition at line 480 of file LArRodBlockStructure.h.

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

◆ getNumberOfGains()

uint32_t LArRodBlockPhysicsV6::getNumberOfGains ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 593 of file LArRodBlockPhysicsV6.cxx.

594 {
595  return getHeader16(NGains);
596 }

◆ getNumberOfSamples()

uint32_t LArRodBlockPhysicsV6::getNumberOfSamples ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 588 of file LArRodBlockPhysicsV6.cxx.

589 {
590  return getHeader16(NSamples);
591 }

◆ getNumberOfWords()

uint32_t LArRodBlockStructure::getNumberOfWords ( ) const
inlineinherited

Definition at line 428 of file LArRodBlockStructure.h.

429 {
430  return getHeader32(NWTot);
431 }

◆ getPulsed()

bool LArRodBlockStructure::getPulsed ( unsigned  channelNumber) const
inlinevirtualinherited

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

Definition at line 462 of file LArRodBlockStructure.h.

463 {
464  std::cout << "ERROR: Function getPulsed not implemented in this instance of LArRodBlockStructure!\n";
465  return 0;
466 }

◆ getRadd()

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

Reimplemented from LArRodBlockStructure.

Definition at line 613 of file LArRodBlockPhysicsV6.cxx.

614 {
615  if(!m_RawDataPointer) {
616  if(!m_RaddPointer) return 0;
617  if(sample%2) sample+=2;
618  return m_RaddPointer[sample];
619  }
620  int index;
621  if(sample==0) index=6;
622  else if(sample & 0x1) index=7+sample-1;
623  else index=7+sample+1;
625  if(adc>=8) return x>>8;
626  return x&0xff;
627 }

◆ getRawDataSize()

uint16_t LArRodBlockPhysicsV6::getRawDataSize ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 608 of file LArRodBlockPhysicsV6.cxx.

609 {
610  return getHeader16(RawDataBlkDim);
611 }

◆ getResults1Size()

uint16_t LArRodBlockPhysicsV6::getResults1Size ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 598 of file LArRodBlockPhysicsV6.cxx.

599 {
600  return getHeader16(ResultsDim1);
601 }

◆ getResults2Size()

uint16_t LArRodBlockPhysicsV6::getResults2Size ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 603 of file LArRodBlockPhysicsV6.cxx.

604 {
605  return getHeader16(ResultsDim2);
606 }

◆ getStatus()

uint32_t LArRodBlockPhysicsV6::getStatus ( ) const
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 653 of file LArRodBlockPhysicsV6.cxx.

654 {
655  if(getNumberOfWords()<EventStatus/2) return 0;
657  return x;
658 }

◆ getStepIndex()

uint16_t LArRodBlockStructure::getStepIndex ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockCalibrationV3, and LArRodBlockAccumulatedV3.

Definition at line 486 of file LArRodBlockStructure.h.

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

◆ getSumE()

int32_t LArRodBlockPhysicsV6::getSumE ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 334 of file LArRodBlockPhysicsV6.h.

335 {
336  if(m_SumPointer) return (m_SumPointer[3]>>9);
337  return 0;
338 }

◆ getTDCPhase()

uint8_t LArRodBlockStructure::getTDCPhase ( ) const
virtualinherited

Reimplemented in LArRodBlockCalibrationV2, LArRodBlockCalibrationV3, LArRodBlockCalibrationV1, LArRodBlockTransparentV0< DSPHEADER >, and LArRodBlockAccumulatedV3.

Definition at line 149 of file LArRodBlockStructure.cxx.

150 {
151  std::cout << "ERROR: Function getTDCPhase not implemented in this instance of LArRodBlockStructure!\n";
152  return 0;
153 }

◆ getVectorHeader16()

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

Definition at line 368 of file LArRodBlockStructure.h.

369 { if (n&0x1) //n is a odd number
370  return (std::as_const(*m_vFragment).at(n>>1) & 0xffff);
371  else //n is a even number
372  return (std::as_const(*m_vFragment).at(n>>1) >> 16);
373 }

◆ getVectorHeader32()

uint32_t LArRodBlockStructure::getVectorHeader32 ( const unsigned  n) const
inlineprotectedinherited

Definition at line 375 of file LArRodBlockStructure.h.

376 {
377  return (*m_vFragment)[n>>1];
378 }

◆ getVROBEx()

int32_t LArRodBlockPhysicsV6::getVROBEx ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 351 of file LArRodBlockPhysicsV6.h.

352 {
353  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
354  if(p) return (p[1]>>9);
355  return 0;
356 }

◆ getVROBEy()

int32_t LArRodBlockPhysicsV6::getVROBEy ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 358 of file LArRodBlockPhysicsV6.h.

359 {
360  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
361  if(p) return (p[2]>>9);
362  return 0;
363 }

◆ getVROBEz()

int32_t LArRodBlockPhysicsV6::getVROBEz ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 365 of file LArRodBlockPhysicsV6.h.

366 {
367  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
368  if(p) return (p[3]>>9);
369  return 0;
370 }

◆ getVROBFebId()

uint32_t LArRodBlockPhysicsV6::getVROBFebId ( )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 340 of file LArRodBlockPhysicsV6.h.

341 {
342  m_ROB_to_decode--;
343  if ( m_ROB_to_decode>=0){
346  } else m_virtualROBPointerLocal=0;
348  else return 0;
349 }

◆ getVROBSumE()

int32_t LArRodBlockPhysicsV6::getVROBSumE ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 372 of file LArRodBlockPhysicsV6.h.

373 {
374  const int32_t* p = reinterpret_cast<const int32_t*>(m_virtualROBPointerLocal);
375  if(p) return (p[4]>>9);
376  return 0;
377 }

◆ hasAccumBlock()

virtual uint32_t LArRodBlockStructure::hasAccumBlock ( ) const
inlinevirtualinherited

Reimplemented in LArRodBlockAccumulatedV3.

Definition at line 123 of file LArRodBlockStructure.h.

123 {return 0;} ;

◆ hasCalibBlock()

virtual uint32_t LArRodBlockPhysicsV6::hasCalibBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 87 of file LArRodBlockPhysicsV6.h.

87 {return 0;} ;

◆ hasControlWords()

virtual uint32_t LArRodBlockPhysicsV6::hasControlWords ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 90 of file LArRodBlockPhysicsV6.h.

90 {return getHeader16(RawDataBlkOff);} ;

◆ hasPhysicsBlock()

virtual uint32_t LArRodBlockPhysicsV6::hasPhysicsBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 88 of file LArRodBlockPhysicsV6.h.

88 {return getHeader16(ResultsOff1);} ;

◆ hasRawDataBlock()

virtual uint32_t LArRodBlockPhysicsV6::hasRawDataBlock ( ) const
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 89 of file LArRodBlockPhysicsV6.h.

◆ initializeFEB()

void LArRodBlockPhysicsV6::initializeFEB ( const uint32_t  id)
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 714 of file LArRodBlockPhysicsV6.cxx.

715 {
717  if (m_vFragment->size()<m_iHeadBlockSize) //Got empty or spoiled fragment
718  {
719  m_vFragment->resize(m_iHeadBlockSize,0); //Initialize FEB-Header
720  setHeader32(FEBID,id); //Set Feb ID
721  // At least 10 (head) + 16 (gain/sumblks) + 64 (energies)
722  m_vFragment->reserve(90);
723  }
724 
725  m_SumBlkBlockE1.resize(4);
726  for(unsigned int i=0;i<4;i++) m_SumBlkBlockE1[i]=0x0;
727  m_SumBlkBlockE2.resize(4);
728  for(unsigned int i=0;i<4;i++) m_SumBlkBlockE2[i]=0x0;
729  m_GainBlock.resize(8);
730  for(unsigned int i=0;i<8;i++) m_GainBlock[i]=0x0;
731 // m_RawDataBlock.resize(0);
732  m_TimeQualityBlock.resize(8);
733  for(unsigned int i=0;i<8;i++) m_TimeQualityBlock[i]=0x0;
734  m_EnergyBlockEncode.resize(128);
735  for(unsigned int i=0;i<128;i++) m_EnergyBlockEncode[i]=0x0;
736  m_DigitsEncode.clear();
737 
738  resetPointers();
739 
740 }

◆ initializeFragment()

void LArRodBlockPhysicsV6::initializeFragment ( std::vector< uint32_t > &  fragment)
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 687 of file LArRodBlockPhysicsV6.cxx.

687  {
688  m_pRODblock=&fragment; //remember pointer to fragment
689  if (fragment.size()>m_iHeadBlockSize) { //Got filled fragment
690  unsigned int sizeRead=0;
691  //Store existing data in the FEB-Map
692  while (sizeRead<fragment.size()) {
694  FebIter=fragment.begin()+sizeRead; //Store pointer to current Feb-Header
695  m_FebBlock=&(*FebIter); //Set m_FebBlock in order to use getHeader-functions.
696  uint32_t currFEBid=getHeader32(FEBID); //Get this FEB-ID
697  uint16_t currFebSize=getNumberOfWords(); //Size of this FEB-Block
698  if (FebIter+currFebSize>fragment.end()) {
699  fragment.clear(); //Clear existing vector
700  //*m_logstr << MSG::ERROR << "Got inconsistent ROD-Fragment!" << endmsg;
701  return;
702  }
703  m_mFebBlocks[currFEBid].assign(FebIter,FebIter+currFebSize); //Copy data from ROD-fragment into FEB-Block
704  sizeRead+=currFebSize+m_MiddleHeaderSize; //6 is the middle header size
705  //LARBSDBG("Found FEB-id " << currFEBid << " in existing ROD-Fragment");
706  } // end while
707  }
708  fragment.clear(); //Clear existing vector
709  return;
710 
711 }

◆ LE_getHeader16()

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

Definition at line 405 of file LArRodBlockStructure.h.

406 {
407  return (reinterpret_cast<const uint16_t*>(m_FebBlock))[n];
408 }

◆ LE_getVectorHeader16()

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

Definition at line 410 of file LArRodBlockStructure.h.

411 {
412  const uint32_t* data32 = std::as_const(*m_vFragment).data();
413  const uint16_t* data16 = reinterpret_cast<const uint16_t*> (data32);
414  return data16[n];
415 }

◆ LE_setHeader16()

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

Definition at line 417 of file LArRodBlockStructure.h.

418 {
419 #ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
420  if ((unsigned)n>=m_vFragment->size()*2) {
421  std::cout << "LArRodBlockStructure::LE_setHeader16 ERROR: WRITE BEYOND ARRAY BONDARY!" << std::endl;
422  std::abort();
423  }
424 #endif
425  ((uint16_t*)(&(m_vFragment->front())))[n] = w;
426 }

◆ nextFEB()

bool LArRodBlockStructure::nextFEB ( )
inlineinherited

Definition at line 497 of file LArRodBlockStructure.h.

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 }

◆ offlineCheckSum()

uint32_t LArRodBlockStructure::offlineCheckSum ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV4.

Definition at line 163 of file LArRodBlockStructure.cxx.

164 {
165  int end = getNumberOfWords()-3;
166  int start = 1;
167  uint32_t sum = 0;
169  for(int i=start;i<end;i++) {
170  sum += m_FebBlock[i];
171  }
172  return sum & 0x7fffffff;
173 }

◆ OfflineToRawGain()

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

Definition at line 352 of file LArRodBlockStructure.h.

353 {return m_OfflineToRawGainMap[gain];} //For efficency, don't check range

◆ onlineCheckSum()

uint32_t LArRodBlockStructure::onlineCheckSum ( ) const
virtualinherited

Reimplemented in LArRodBlockPhysicsV4.

Definition at line 155 of file LArRodBlockStructure.cxx.

156 {
157  int offset = getNumberOfWords()-1;
158  if(offset>=m_FebBlockSize) return 0;
159  if(offset<0) return 0;
160  return m_FebBlock[offset];
161 }

◆ operator()()

template<class RAWDATA >
bool LArRodBlockPhysicsV6::operator() ( const RAWDATA *  ch1,
const RAWDATA *  ch2 
) const

Definition at line 1036 of file LArRodBlockPhysicsV6.cxx.

1038 {
1039  HWIdentifier id1 = ch1->channelID();
1040  HWIdentifier id2 = ch2->channelID();
1041 
1044 
1045  if(febId1 == febId2 ){
1046  int cId1 = m_onlineHelper->channel(id1);
1047  int cId2 = m_onlineHelper->channel(id2);
1048  return FebToRodChannel(cId1) < FebToRodChannel(cId2);
1049  }
1050 
1051  return febId1 < febId2 ;
1052 }

◆ RawToOfflineGain()

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

Definition at line 349 of file LArRodBlockStructure.h.

350 {return m_RawToOfflineGainMap[gain];} //For efficency, don't check range

◆ report_error()

bool LArRodBlockStructure::report_error ( void  ) const
inlineinherited

Definition at line 177 of file LArRodBlockStructure.h.

177 { return m_error_next_feb;}

◆ resetPointers()

void LArRodBlockPhysicsV6::resetPointers ( )
privatevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 68 of file LArRodBlockPhysicsV6.cxx.

◆ setBit()

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

Definition at line 444 of file LArRodBlockStructure.h.

445 {
446  // chan = (0,127)
447  // int a = chan/32;
448  // int r = chan%32;
449  int a = chan>>5;
450  int r = chan&0x1f;
451  // a = (0,3), r = ( 0, 31 )
452  *(p+a) |= (1<<r) ;
453  return;
454 }

◆ setDAC()

void LArRodBlockStructure::setDAC ( const uint16_t  DACValue)
virtualinherited

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 57 of file LArRodBlockStructure.cxx.

58 {
59  std::cout << "ERROR: Function setDAC not implemented in this instance of LArRodBlockStructure!\n";
60  return;
61 }

◆ setDelay()

void LArRodBlockStructure::setDelay ( const uint16_t  DelayValue)
virtualinherited

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 63 of file LArRodBlockStructure.cxx.

64 {
65  std::cout << "ERROR: Function setDelay not implemented in this instance of LArRodBlockStructure!\n";
66  return;
67 }

◆ setE()

void LArRodBlockPhysicsV6::setE ( unsigned int  index,
double  E 
)
inlineprivate

Definition at line 385 of file LArRodBlockPhysicsV6.h.

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

◆ setEtQ()

void LArRodBlockStructure::setEtQ ( const int  channel,
const int32_t  energy,
const int32_t  time,
const int32_t  quality,
const uint32_t  gain 
)
virtualinherited

Definition at line 120 of file LArRodBlockStructure.cxx.

121 {
122  std::cout << "ERROR: Function setEtQ not implemented in this instance of LArRodBlockStructure!\n";
123  return;
124 }

◆ setEx()

void LArRodBlockPhysicsV6::setEx ( double  Ex)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 403 of file LArRodBlockPhysicsV6.h.

403  {
404  setE (0, Ex);
405 }

◆ setEy()

void LArRodBlockPhysicsV6::setEy ( double  Ey)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 408 of file LArRodBlockPhysicsV6.h.

408  {
409  setE (2, Ey);
410 }

◆ setEz()

void LArRodBlockPhysicsV6::setEz ( double  Ez)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 413 of file LArRodBlockPhysicsV6.h.

413  {
414  setE (4, Ez);
415 }

◆ setFirstSample()

void LArRodBlockStructure::setFirstSample ( const int  rearrangeFirstSample)
inlineinherited

Definition at line 168 of file LArRodBlockStructure.h.

169  {m_rearrangeFirstSample=rearrangeFirstSample;}

◆ setFragment()

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

Definition at line 252 of file LArRodBlockStructure.h.

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

◆ setFragmentVirtualROB()

int LArRodBlockStructure::setFragmentVirtualROB ( const uint32_t *  p,
uint32_t  n 
)
inlinevirtualinherited

Definition at line 280 of file LArRodBlockStructure.h.

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

◆ setGain()

virtual int LArRodBlockPhysicsV6::setGain ( const int  )
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 104 of file LArRodBlockPhysicsV6.h.

104 { return 1; };

◆ setHeader16()

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

Definition at line 380 of file LArRodBlockStructure.h.

381 {
382 #ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
383  if ((unsigned)n>=m_vFragment->size()*2) {
384  std::cout << "ERROR WRITE BEYOND ARRAY BONDARY!" << std::endl;
385  std::abort();
386  }
387 #endif
388  if (n&0x1) // n is a odd number
389  m_vFragment->at(n>>1)=((m_vFragment->at(n>>1) & 0xffff0000) | w);
390  else
391  m_vFragment->at(n>>1)=((m_vFragment->at(n>>1) & 0xffff) | (w << 16));
392 }

◆ setHeader32()

void LArRodBlockStructure::setHeader32 ( const unsigned  n,
const uint32_t  w 
)
inlineprotectedinherited

Definition at line 394 of file LArRodBlockStructure.h.

395 {
396 #ifdef LARBYTESTREAMRODBLOCK_CHCKBOUNDARIES
397  if ((unsigned)n>=m_vFragment->size()*2) {
398  std::cout << "ERROR WRITE BEYOND ARRAY BONDARY!" << std::endl;
399  std::abort();
400  }
401 #endif
402  m_vFragment->at(n>>1) = w;
403 }

◆ setNextEnergy() [1/2]

void LArRodBlockPhysicsV6::setNextEnergy ( const int  channel,
const int32_t  energy,
const int32_t  time,
const int32_t  quality,
const uint32_t  gain 
)
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 742 of file LArRodBlockPhysicsV6.cxx.

744 {
745  //LARBSDBG("setNextEnergy-------------------->>>>>********************** format V4 ***********");
746  //LARBSDBG("Channel=" << channel << " energy =" << energy);
747  int rcNb=FebToRodChannel(channel);
748  //int rcNb=(channel);
749  //rcNb ist supposed to equal or bigger than m_EIndex.
750  //In the latter case, we fill up the missing channels with zero
751  if (rcNb<m_EnergyIndex) {
752  //*m_logstr << MSG::ERROR << "LArRODBlockStructure ERROR: Internal error. Channels not ordered correctly. rcNb=" << rcNb
753  // << " m_EnergyIndex=" << m_EnergyIndex << endmsg;
754  return;
755  }
756 
757  //Fill up missing channels with zeros:
758  while (m_EnergyIndex<rcNb)
759  setNextEnergy((int16_t)0,(int16_t)32767,(int16_t)-32767,(uint32_t)0);
760 
761  // transform 32 bits data into 16 bits data
762 
763  uint16_t theenergy;
764  uint32_t abse,EncodedE;
765  int16_t thetime,thequality;
766  int32_t sign;
767 
768  //Time is in 10 ps in ByteStream, hence the factor 10 to convert from ps
769  thetime = (int16_t) time/10;
770  thequality = (int16_t) quality;
771 
772  sign=(energy>=0?1:-1); // get sign of energy
773  abse=(uint32_t)abs(energy);
774 
775  EncodedE=abse; // range 0
776 
777  if ((abse>8192)&&(abse<65536))
778  {
779  EncodedE=((abse>>3)|0x4000); // range 1 : drop last 3 bits and put range bits (bits 14 and 13 = 01)
780  }
781  else if ((abse>65535)&&(abse<524288))
782  {
783  EncodedE=((abse>>6)|0x8000); // range 2 : drop last 6 bits and put range bits (bits 14 and 13 = 10)
784  }
785  else if ((abse>524288))
786  {
787  EncodedE=((abse>>9)|0xc000); // range 3 : drop last 9 bits and put range bits (bits 14 and 13 = 11)
788  }
789 
790  // treat sign now :
791 
792  if (sign<0) EncodedE |= 0x2000;
793  theenergy = (uint16_t) EncodedE;
794 
795 
796  // Add data...
797 
798  //LARBSDBG("setNextEnergy-------------------->>>>> Energy = "<< energy << " Encoded Energy =" << theenergy);
799 
800  if (abse> m_EnergyThreshold1)
801  {
802  setNextEnergy(theenergy,thetime,thequality,gain);
803  }
804  else
805  {
806  setNextEnergy(theenergy,(int16_t)32767,(int16_t)-32767,gain);
807  }
808  return;
809 }

◆ setNextEnergy() [2/2]

void LArRodBlockPhysicsV6::setNextEnergy ( const uint16_t  energy,
const int16_t  time,
const int16_t  quality,
const uint32_t  gain 
)
private

Definition at line 812 of file LArRodBlockPhysicsV6.cxx.

813 {
814  if (m_EnergyIndex>=m_channelsPerFEB) //Use m_EIndex to count total number of channels
815  {//*m_logstr << MSG::ERROR << "LArRodBlockStructure ERROR: Attempt to write Energy for channel "
816  // << m_EnergyIndex << " channels into a FEB!" <<endmsg;
817  return;
818  }
819  //LARBSDBG("LArRodBlockStructure: Setting Energy for channel " << m_EnergyIndex << ". E=" << energy);
820 
821  //LARBSDBG("In setNextEnergy-------------------->>>>> time = " << time << " quality=" << quality);
822 
823  // Energy
824  int endianindex;
825  if (m_EnergyIndex & 0x1) endianindex = m_EnergyIndex-1;
826  else endianindex = m_EnergyIndex+1;
827  m_EnergyBlockEncode[endianindex] = energy;
828 
829  // Find correct position
830 
831  //LARBSDBG("Writing Raw data to E block. E=" << energy);
832 
833  // update summary block
834  // Gain is composed of two bits per cell
835  uint16_t gain_idx=m_EnergyIndex>>4;
836  uint16_t gain_bit=(m_EnergyIndex&0xf)*2;
838  m_GainBlock[gain_idx] |= (gain1 << gain_bit);
839 
840  // write Time and Chi2 for cells above HighEnergyCellCut threshold
841 
842  if (quality!=-32767) // Do write Time and Chi2 information
843  {
844  // count the number of hot cells
845  m_numberHotCell++;
846  // count the number of cells offtime
848  uint16_t mask_idx=m_EnergyIndex>>5;
849  uint16_t mask_bit=(m_EnergyIndex&0x1f);
850  m_SumBlkBlockE1[mask_idx] |= (0x1 << mask_bit);
851 
852  m_TimeQualityBlock.push_back(*((uint16_t*)&time));
853  m_TimeQualityBlock.push_back(*((uint16_t*)&quality));
854  }
855  m_EnergyIndex++; //Use m_EIndex to count the channels put in the Energy block
856 
857 }

◆ setNTrigger()

void LArRodBlockStructure::setNTrigger ( const uint16_t  NTrigger)
virtualinherited

Definition at line 75 of file LArRodBlockStructure.cxx.

76 {
77  std::cout << "ERROR: Function setNTrigger not implemented in this instance of LArRodBlockStructure!\n";
78  return;
79 }

◆ setNumberOfGains()

void LArRodBlockStructure::setNumberOfGains ( const uint8_t  n)
virtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 138 of file LArRodBlockStructure.cxx.

139 {
140  std::cout << "ERROR: Function setNumberOfGains not implemented in this instance of LArRodBlockStructure!\n";
141  return;
142 }

◆ setNumberOfSamples()

void LArRodBlockStructure::setNumberOfSamples ( const uint8_t  n)
virtualinherited

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, LArRodBlockPhysicsV2, and LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 132 of file LArRodBlockStructure.cxx.

133 {
134  std::cout << "ERROR: Function setNumberOfSamples not implemented in this instance of LArRodBlockStructure!\n";
135  return;
136 }

◆ setPointers()

bool LArRodBlockPhysicsV6::setPointers ( )
privatevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 88 of file LArRodBlockPhysicsV6.cxx.

89 {
91  {
92  int off = -8;
93  int ns = getHeader16(NSamples) & 0xff;
94  if (m_requiredNSamples > 0 && m_requiredNSamples != ns) return false;
95  int radd = (ns+1)/2;
96  int dim1 = getHeader16(ResultsDim1);
97  int off1 = getHeader16(ResultsOff1);
98  int off2 = getHeader16(ResultsOff2);
99  int dim2 = getHeader16(ResultsDim2);
100  int off3 = getHeader16(RawDataBlkOff);
101  int dim3 = getHeader16(RawDataBlkDim);
102  if ( !(ns&0x1) ) radd++;
103 
104  if (off1 && dim1+off1+off<m_FebBlockSize) {
105  off1 += off;
106  if (dim1>=8)
107  m_GainPointer=(const uint32_t*)(m_FebBlock+off1);
108  if (dim1>=12)
110  if (dim1>=16)
111  m_MaskDigitsPointer=(const uint32_t*)(m_FebBlock+off1+12);
112  if (dim1>=16+radd)
113  m_RaddPointer=(const uint16_t*)(m_FebBlock+off1+16);
114  if (dim1>=80+radd)
115  m_EnergyPointer=(const uint16_t*) (m_FebBlock+off1+16+radd);
116  if (dim1>=84+radd)
117  m_SumPointer=(const int32_t*)(m_FebBlock+off1+80+radd);
118  if (dim1>84+radd)
119  m_TimeQualityPointer=(const uint16_t*)(m_FebBlock+off1+84+radd);
120  off1 -= off;
121  }
122  if (off2 && dim2+off2+off<m_FebBlockSize) {
123  m_DigitsPointer=(const uint16_t*)(m_FebBlock+off2+off);
124  }
125  if (off3 && dim3+off3+off<m_FebBlockSize) {
126  m_RawDataPointer=(const uint16_t*)(m_FebBlock+off3+off);
127  }
128 
129  // Check for offsets problems
130  uint32_t problem = 0;
131  int n1, n2;
132  int n1_tmp, n2_tmp;
133  int off1_tmp, dim1_tmp;
134  int off2_tmp, dim2_tmp;
135  int off3_tmp, dim3_tmp;
136  if(off1==0) {
137  n1 = n2 = 0;
138  n1_tmp = n2_tmp =0;
139  off1_tmp = dim1_tmp = 0;
140  off2_tmp = dim2_tmp = 0;
141  off3_tmp = dim3_tmp = 0;
142  }
143  else {
144  m_RaddPointer=(const uint16_t*)(m_FebBlock+26);
147  n1 = getNbSweetCells1();
148  n2 = getNbSweetCells2();
149  n1_tmp = getNbSweetCells1FromMask();
150  n2_tmp = getNbSweetCells2FromMask();
151  off1_tmp = 10-off;
152  dim1_tmp = 84+(ns+1)/2+n1;
153  if ( !(ns&0x1) ) dim1_tmp++;
154  if ( m_requiredNSamples > 0 ){
155  dim1_tmp = 84 +(m_requiredNSamples+1)/2+n1;
156  if ( !(m_requiredNSamples&0x1) ) dim1_tmp++;
157  }
158  off2_tmp = off1_tmp+dim1_tmp;
159  dim2_tmp = (n2*ns+1)/2;
160  off3_tmp = off2_tmp+dim2_tmp;
161  dim3_tmp = getNumberOfWords()-3-off3_tmp-off;
162  if(dim2_tmp==0) off2_tmp = 0;
163  if(dim3_tmp==0) off3_tmp = 0;
164  }
165 
166  if(off1 != off1_tmp) problem=1;
167  if(dim1 != dim1_tmp) problem=2;
168  if(off2 != off2_tmp) problem=3;
169  if(dim2 != dim2_tmp) problem=4;
170  if(off3 != off3_tmp) problem=5;
171  if(dim3 != dim3_tmp) problem=6;
172  if(n1 != n1_tmp) problem=7;
173  if(n2 != n2_tmp) problem=8;
174  if (m_requiredNSamples > 0 &&
175  getHeader32(NGains) != (uint32_t)0x10000 + m_requiredNSamples) problem=9;
176  //if(getHeader32(NGains)!=0x10000 + (unsigned int)ns) problem=9;
177  //if(getHeader32(InFPGAFormat)!=1) problem=10;
178  //if(m_FebBlock[getNumberOfWords()-2]!=0x12345678) problem=11;
179 
180  if(problem) { // Try to recompute offsets
181  std::cout << "LArByteStreamProblem " << problem << std::endl;
182  std::cout << "NSamples = " << std::dec << ns << std::endl;
183  std::cout << "getHeader32(NGains) = " << std::hex << getHeader32(NGains) << std::endl;
184  std::cout << "NWTot: " << std::hex << getNumberOfWords() << " n1=" << n1 << " (" << n1_tmp << ") n2=" << n2 << " (" << n2_tmp << ")" << std::endl;
185  std::cout << "Found 1: " << off1 << " " << dim1 << std::endl;
186  std::cout << "Found 2: " << off2 << " " << dim2 << std::endl;
187  std::cout << "Found 3: " << off3 << " " << dim3 << std::dec << std::endl;
188 
189  if(n1==n1_tmp && n2==n2_tmp) { // Check consistency of cells above threshold
190  off1 = off1_tmp;
191  dim1 = dim1_tmp;
192  off2 = off2_tmp;
193  dim2 = dim2_tmp;
194  off3 = off3_tmp;
195  dim3 = dim3_tmp;
196  std::cout << "Recomputed 1: " << std::hex << off1 << " " << dim1 << std::endl;
197  std::cout << "Recomputed 2: " << off2 << " " << dim2 << std::endl;
198  std::cout << "Recomputed 3: " << off3 << " " << dim3 << std::dec << std::endl;
199 
200  if (off1 && dim1+off1+off<m_FebBlockSize) {
201  off1 += off;
202  if (dim1>=8)
203  m_GainPointer=(const uint32_t*)(m_FebBlock+off1);
204  if (dim1>=12)
206  if (dim1>=16)
207  m_MaskDigitsPointer=(const uint32_t*)(m_FebBlock+off1+12);
208  if (dim1>=16+radd)
209  m_RaddPointer=(const uint16_t*)(m_FebBlock+off1+16);
210  if (dim1>=80+radd)
211  m_EnergyPointer=(const uint16_t*) (m_FebBlock+off1+16+radd);
212  if (dim1>=84+radd)
213  m_SumPointer=(const int32_t*)(m_FebBlock+off1+80+radd);
214  if (dim1>84+radd)
215  m_TimeQualityPointer=(const uint16_t*)(m_FebBlock+off1+84+radd);
216  }
217  if (off2 && dim2+off2+off<m_FebBlockSize) {
218  m_DigitsPointer=(const uint16_t*)(m_FebBlock+off2+off);
219  }
220  if (off3 && dim3+off3+off<m_FebBlockSize) {
221  m_RawDataPointer=(const uint16_t*)(m_FebBlock+off3+off);
222  }
223  }
224  }
225 
226  problem=0;
227  // Recheck offsets
228  if(off1< off2 && off1 + dim1 > off2) problem = 1;
229  if(off1< off3 && off1 + dim1 > off3) problem = 2;
230  if(off2< off1 && off2 + dim2 > off1) problem = 3;
231  if(off2< off3 && off2 + dim2 > off3) problem = 4;
232  if(off3< off1 && off3 + dim3 > off1) problem = 5;
233  if(off3< off2 && off3 + dim3 > off2) problem = 6;
234 
235  if(problem) {
236  resetPointers();
237  std::cout << "LArByteStreamProblem " << problem << std::endl;
238  std::cout << "Unrecoverable problem" << std::endl;
239  }
240 
241  //uint32_t febId = getHeader32(FEBID);
242  //uint32_t onCheck = onlineCheckSum();
243  //uint32_t offCheck = offlineCheckSum();
244  //
245  //mycheck_tot++;
246  //if(onCheck!=offCheck)
247  //{
248  // mycheck_err++;
249  // std::cout << "FebID checksum " << std::hex << febId << std::endl;
250  // std::cout << "Online checksum " << std::hex << onCheck << " Offline checksum " << offCheck << std::dec << std::endl;
251  // std::cout << "Diff1 checksum " << std::hex << onCheck-offCheck << " Diff2 checksum " << offCheck-onCheck << std::dec << std::endl;
252  // double x=mycheck_err/((double) mycheck_tot)*100.0;
253  // std::cout << "Number of FEB in error: " << mycheck_err << " / " << mycheck_tot << " = " << x << " %" << std::endl;
254  //}
255 
256  //
257  //if(febId==0x3b1b8000 || febId==0x398b0000 || febId==0x3a988000) {
258  //if(onCheck!=offCheck) {
259  // std::cout << "***********************************************************************"<< std::endl;
260  // std::cout << "Problem :" << problem << std::endl;
261  // std::cout << "Header values :"<< std::endl;
262  // std::cout << "************************************************************************"<< std::endl;
263  // std::cout << "FebBlockSize = " << m_FebBlockSize << std::endl;
264  // std::cout << "EnergyIndex = " << m_EnergyIndex << std::endl;
265  // std::cout << "TimeQualityIndex = " << m_TimeQualityIndex << std::endl;
266  // std::cout << "DigitsIndex = " << m_DigitsIndex << std::endl;
267  // std::cout << "DigitsChannel = " << m_DigitsChannel << std::endl;
268  // std::cout << "RawDataIndex = " << m_RawDataIndex << std::endl;
269  // std::cout << "GainPointer = " << m_GainPointer << std::endl;
270  // std::cout << "MaskTimeQualityPointer = " << m_MaskTimeQualityPointer << std::endl;
271  // std::cout << "MaskDigitsPointer = " << m_MaskDigitsPointer << std::endl;
272  // std::cout << "RaddPointer = " << m_RaddPointer << std::endl;
273  // std::cout << "EnergyPointer = " << m_EnergyPointer << std::endl;
274  // std::cout << "SumPointer = " << m_SumPointer << std::endl;
275  // std::cout << "TimeQualityPointer = " << m_TimeQualityPointer << std::endl;
276  // std::cout << "DigitsPointer = " << m_DigitsPointer << std::endl;
277  // std::cout << "RawDataPointer = " << m_RawDataPointer << std::endl;
278  // std::cout << "numberHotCell = " << std::dec << getNbSweetCells1() << " " << getNbSweetCells2() << std::endl;
279  // std::cout << "Fragment @ = 0x" << std::hex << m_FebBlock << std::endl;
280  // std::cout << "NWTot = " << std::dec << getNumberOfWords() << std::endl;
281  // std::cout << "FebID = 0x" << std::hex << getHeader32(FEBID) << std::endl;
282  // std::cout << "FebSN = 0x" << std::hex << getHeader32(FEB_SN) << std::endl;
283  // std::cout << "ResultsOff1 = 0x" << std::hex << getHeader16(ResultsOff1) << std::endl;
284  // std::cout << "ResultsDim1 = 0x" << std::hex << getHeader16(ResultsDim1) << std::endl;
285  // std::cout << "ResultsOff2 = 0x" << std::hex << getHeader16(ResultsOff2) << std::endl;
286  // std::cout << "ResultsDim2 = 0x" << std::hex << getHeader16(ResultsDim2) << std::endl;
287  // std::cout << "RawDataBlkOff = 0x" << std::hex << getHeader16(RawDataBlkOff) << std::endl;
288  // std::cout << "RawDataBlkDim = 0x" << std::hex << getHeader16(RawDataBlkDim) << std::endl;
289  // std::cout << "Event status = 0x" << std::hex << getStatus() << std::dec << std::endl;
290  // std::cout << "************************************************************************"<< std::dec << std::endl;
291  // int size = getNumberOfWords();
292  // for(int i=0;i<size;i++) {
293  // std::cout << std::hex << i << " : " << std::hex << m_FebBlock+i << " : " << std::hex << m_FebBlock[i] << std::endl;
294  // }
295  //}
296 
297  }
298 
299  return true;
300 }

◆ setPulsed()

void LArRodBlockStructure::setPulsed ( const unsigned  channelNumber)
virtualinherited

Reimplemented in LArRodBlockCalibrationV0< DSPHEADER >.

Definition at line 69 of file LArRodBlockStructure.cxx.

70 {
71  std::cout << "ERROR: Function setPulsed not implemented in this instance of LArRodBlockStructure!\n";
72  return;
73 }

◆ setRawData()

void LArRodBlockPhysicsV6::setRawData ( const int  chIdx,
const std::vector< short > &  samples,
const uint32_t   
)
virtual

Reimplemented from LArRodBlockStructure.

Definition at line 859 of file LArRodBlockPhysicsV6.cxx.

859  {
860 
861  // First of all, set the bits
862  int cchIdx = FebToRodChannel(chIdx);
863  uint16_t mask_idx=cchIdx>>5;
864  uint16_t mask_bit=(cchIdx&0x1f);
865  m_SumBlkBlockE2[mask_idx] |= (0x1 << mask_bit);
866  for(std::vector<short>::const_iterator i=samples.begin();i!=samples.end();++i){
867  m_DigitsEncode.push_back((*i)<<2);
868  }
869 
870 }

◆ setRawDataFixed()

void LArRodBlockStructure::setRawDataFixed ( const int  channel,
const std::vector< short > &  samples,
const uint32_t  gain 
)
virtualinherited

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 126 of file LArRodBlockStructure.cxx.

127 {
128  std::cout << "ERROR: Function setRawDataFixed not implemented in this instance of LArRodBlockStructure!\n";
129  return;
130 }

◆ setRequiredNSamples()

void LArRodBlockPhysicsV6::setRequiredNSamples ( unsigned short  ns)
inline

Definition at line 119 of file LArRodBlockPhysicsV6.h.

119 { m_requiredNSamples = ns; }

◆ setSumE()

void LArRodBlockPhysicsV6::setSumE ( double  SumE)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 417 of file LArRodBlockPhysicsV6.h.

417  {
418  setE (6, SumE);
419 }

◆ setTDCPhase()

void LArRodBlockStructure::setTDCPhase ( const uint8_t  n)
virtualinherited

Reimplemented in LArRodBlockTransparentV0< DSPHEADER >.

Definition at line 144 of file LArRodBlockStructure.cxx.

145 {
146  std::cout << "ERROR: Function setTDCPhase not implemented in this instance of LArRodBlockStructure!\n";
147  return;
148 }

◆ sortDataVector() [1/10]

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

Definition at line 239 of file LArRodBlockStructure.cxx.

240 {return;}

◆ sortDataVector() [2/10]

void LArRodBlockStructure::sortDataVector

Definition at line 90 of file LArRodBlockStructure.cxx.

240 {return;}

◆ sortDataVector() [3/10]

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

Definition at line 242 of file LArRodBlockStructure.cxx.

243 {return;}

◆ sortDataVector() [4/10]

void LArRodBlockStructure::sortDataVector

Definition at line 91 of file LArRodBlockStructure.cxx.

243 {return;}

◆ sortDataVector() [5/10]

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

Definition at line 236 of file LArRodBlockStructure.cxx.

237 {return;}

◆ sortDataVector() [6/10]

void LArRodBlockStructure::sortDataVector

Definition at line 89 of file LArRodBlockStructure.cxx.

237 {return;}

◆ sortDataVector() [7/10]

void LArRodBlockStructure::sortDataVector

Definition at line 88 of file LArRodBlockStructure.cxx.

234 {return;}

◆ sortDataVector() [8/10]

void LArRodBlockPhysicsV6::sortDataVector ( std::vector< const LArDigit * > &  vDigit)
inlinevirtual

Reimplemented from LArRodBlockStructure.

Definition at line 125 of file LArRodBlockPhysicsV6.h.

126  {std::sort(vDigit.begin(),vDigit.end(),*this); }

◆ sortDataVector() [9/10]

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

Reimplemented in LArRodBlockPhysicsV3, LArRodBlockPhysicsV1, LArRodBlockPhysicsV0, and LArRodBlockPhysicsV2.

Definition at line 230 of file LArRodBlockStructure.cxx.

231 {return;}

◆ sortDataVector() [10/10]

void LArRodBlockStructure::sortDataVector

Definition at line 87 of file LArRodBlockStructure.cxx.

231 {return;}

Member Data Documentation

◆ m_channelsPerFEB

int LArRodBlockStructure::m_channelsPerFEB
protectedinherited

Definition at line 225 of file LArRodBlockStructure.h.

◆ m_DigitsChannel

int LArRodBlockPhysicsV6::m_DigitsChannel = 0
private

Definition at line 149 of file LArRodBlockPhysicsV6.h.

◆ m_DigitsEncode

std::vector<uint16_t> LArRodBlockPhysicsV6::m_DigitsEncode
private

Definition at line 144 of file LArRodBlockPhysicsV6.h.

◆ m_DigitsIndex

int LArRodBlockPhysicsV6::m_DigitsIndex = 0
private

Definition at line 148 of file LArRodBlockPhysicsV6.h.

◆ m_DigitsPointer

const uint16_t* LArRodBlockPhysicsV6::m_DigitsPointer = nullptr
private

Definition at line 158 of file LArRodBlockPhysicsV6.h.

◆ m_EnergyBlockEncode

std::vector<uint16_t> LArRodBlockPhysicsV6::m_EnergyBlockEncode
private

Definition at line 143 of file LArRodBlockPhysicsV6.h.

◆ m_EnergyIndex

int LArRodBlockPhysicsV6::m_EnergyIndex = 0
private

Definition at line 146 of file LArRodBlockPhysicsV6.h.

◆ m_EnergyPointer

const uint16_t* LArRodBlockPhysicsV6::m_EnergyPointer = nullptr
private

Definition at line 155 of file LArRodBlockPhysicsV6.h.

◆ m_EnergyThreshold1

uint16_t LArRodBlockPhysicsV6::m_EnergyThreshold1
private

Definition at line 168 of file LArRodBlockPhysicsV6.h.

◆ m_EnergyThreshold2

uint16_t LArRodBlockPhysicsV6::m_EnergyThreshold2
private

Definition at line 169 of file LArRodBlockPhysicsV6.h.

◆ m_error_next_feb

bool LArRodBlockStructure::m_error_next_feb
protectedinherited

Definition at line 243 of file LArRodBlockStructure.h.

◆ m_Ex

int32_t LArRodBlockStructure::m_Ex
protectedinherited

Definition at line 207 of file LArRodBlockStructure.h.

◆ m_Ey

int32_t LArRodBlockStructure::m_Ey
protectedinherited

Definition at line 208 of file LArRodBlockStructure.h.

◆ m_Ez

int32_t LArRodBlockStructure::m_Ez
protectedinherited

Definition at line 209 of file LArRodBlockStructure.h.

◆ m_FebBlock

const uint32_t* LArRodBlockStructure::m_FebBlock
protectedinherited

Definition at line 227 of file LArRodBlockStructure.h.

◆ m_FebBlockSize

int32_t LArRodBlockStructure::m_FebBlockSize
protectedinherited

Definition at line 229 of file LArRodBlockStructure.h.

◆ m_FebInfoBlock

std::vector<uint32_t> LArRodBlockPhysicsV6::m_FebInfoBlock
private

Definition at line 140 of file LArRodBlockPhysicsV6.h.

◆ m_fixedGain

int LArRodBlockPhysicsV6::m_fixedGain
private

Definition at line 162 of file LArRodBlockPhysicsV6.h.

◆ m_GainBlock

std::vector<uint32_t> LArRodBlockPhysicsV6::m_GainBlock
private

Definition at line 139 of file LArRodBlockPhysicsV6.h.

◆ m_GainPointer

const uint32_t* LArRodBlockPhysicsV6::m_GainPointer = nullptr
private

Definition at line 151 of file LArRodBlockPhysicsV6.h.

◆ m_iHeadBlockSize

unsigned short LArRodBlockStructure::m_iHeadBlockSize
protectedinherited

Definition at line 221 of file LArRodBlockStructure.h.

◆ m_MaskDigitsPointer

const uint32_t* LArRodBlockPhysicsV6::m_MaskDigitsPointer = nullptr
private

Definition at line 153 of file LArRodBlockPhysicsV6.h.

◆ m_MaskTimeQualityPointer

const uint32_t* LArRodBlockPhysicsV6::m_MaskTimeQualityPointer = nullptr
private

Definition at line 152 of file LArRodBlockPhysicsV6.h.

◆ m_mFebBlocks

FEBMAPTYPE LArRodBlockStructure::m_mFebBlocks
protectedinherited

Definition at line 234 of file LArRodBlockStructure.h.

◆ m_MiddleHeaderSize

int32_t LArRodBlockStructure::m_MiddleHeaderSize
protectedinherited

Definition at line 239 of file LArRodBlockStructure.h.

◆ m_numberHotCell

uint16_t LArRodBlockPhysicsV6::m_numberHotCell = 0U
private

Definition at line 165 of file LArRodBlockPhysicsV6.h.

◆ m_numberHotCellOffTime

uint16_t LArRodBlockPhysicsV6::m_numberHotCellOffTime
private

Definition at line 166 of file LArRodBlockPhysicsV6.h.

◆ m_numberOfEx

uint32_t LArRodBlockStructure::m_numberOfEx
protectedinherited

Definition at line 214 of file LArRodBlockStructure.h.

◆ m_numberOfEy

uint32_t LArRodBlockStructure::m_numberOfEy
protectedinherited

Definition at line 215 of file LArRodBlockStructure.h.

◆ m_numberOfEz

uint32_t LArRodBlockStructure::m_numberOfEz
protectedinherited

Definition at line 216 of file LArRodBlockStructure.h.

◆ m_numberOfSumE

uint32_t LArRodBlockStructure::m_numberOfSumE
protectedinherited

Definition at line 217 of file LArRodBlockStructure.h.

◆ m_OfflineToRawGainMap

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

Definition at line 238 of file LArRodBlockStructure.h.

◆ m_OffTimeCut

int16_t LArRodBlockPhysicsV6::m_OffTimeCut
private

Definition at line 170 of file LArRodBlockPhysicsV6.h.

◆ m_onlineHelper

const LArOnlineID* LArRodBlockPhysicsV6::m_onlineHelper
private

Definition at line 173 of file LArRodBlockPhysicsV6.h.

◆ m_pRODblock

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

Definition at line 232 of file LArRodBlockStructure.h.

◆ m_RaddPointer

const uint16_t* LArRodBlockPhysicsV6::m_RaddPointer = nullptr
private

Definition at line 154 of file LArRodBlockPhysicsV6.h.

◆ m_RawDataBlock

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

Definition at line 142 of file LArRodBlockPhysicsV6.h.

◆ m_RawDataIndex

int LArRodBlockPhysicsV6::m_RawDataIndex = 0
private

Definition at line 150 of file LArRodBlockPhysicsV6.h.

◆ m_RawDataPointer

const uint16_t* LArRodBlockPhysicsV6::m_RawDataPointer = nullptr
private

Definition at line 159 of file LArRodBlockPhysicsV6.h.

◆ m_RawToOfflineGainMap

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

Definition at line 237 of file LArRodBlockStructure.h.

◆ m_rearrangeFirstSample

unsigned int LArRodBlockStructure::m_rearrangeFirstSample
protectedinherited

Definition at line 241 of file LArRodBlockStructure.h.

◆ m_requiredNSamples

unsigned short LArRodBlockPhysicsV6::m_requiredNSamples
private

Definition at line 172 of file LArRodBlockPhysicsV6.h.

◆ m_ROB_to_decode

int32_t LArRodBlockStructure::m_ROB_to_decode
protectedinherited

Definition at line 246 of file LArRodBlockStructure.h.

◆ m_RodBlock

const uint32_t* LArRodBlockStructure::m_RodBlock
protectedinherited

Definition at line 228 of file LArRodBlockStructure.h.

◆ m_RodBlockSize

int32_t LArRodBlockStructure::m_RodBlockSize
protectedinherited

Definition at line 230 of file LArRodBlockStructure.h.

◆ m_SumBlkBlockE1

std::vector<uint32_t> LArRodBlockPhysicsV6::m_SumBlkBlockE1
private

Definition at line 137 of file LArRodBlockPhysicsV6.h.

◆ m_SumBlkBlockE2

std::vector<uint32_t> LArRodBlockPhysicsV6::m_SumBlkBlockE2
private

Definition at line 138 of file LArRodBlockPhysicsV6.h.

◆ m_SumE

int32_t LArRodBlockStructure::m_SumE
protectedinherited

Definition at line 210 of file LArRodBlockStructure.h.

◆ m_SumPointer

const int32_t* LArRodBlockPhysicsV6::m_SumPointer = nullptr
private

Definition at line 156 of file LArRodBlockPhysicsV6.h.

◆ m_TimeQualityBlock

std::vector<uint16_t> LArRodBlockPhysicsV6::m_TimeQualityBlock
private

Definition at line 141 of file LArRodBlockPhysicsV6.h.

◆ m_TimeQualityIndex

int LArRodBlockPhysicsV6::m_TimeQualityIndex = 0
private

Definition at line 147 of file LArRodBlockPhysicsV6.h.

◆ m_TimeQualityPointer

const uint16_t* LArRodBlockPhysicsV6::m_TimeQualityPointer = nullptr
private

Definition at line 157 of file LArRodBlockPhysicsV6.h.

◆ m_vFragment

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

Definition at line 231 of file LArRodBlockStructure.h.

◆ m_virtualROBJump

uint32_t LArRodBlockStructure::m_virtualROBJump
protectedinherited

Definition at line 245 of file LArRodBlockStructure.h.

◆ m_virtualROBPointer

const uint32_t* LArRodBlockStructure::m_virtualROBPointer
protectedinherited

Definition at line 247 of file LArRodBlockStructure.h.

◆ m_virtualROBPointerLocal

const uint32_t* LArRodBlockStructure::m_virtualROBPointerLocal
protectedinherited

Definition at line 248 of file LArRodBlockStructure.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
febId2
HWIdentifier febId2
Definition: LArRodBlockPhysicsV0.cxx:567
LArRodBlockPhysicsV6::getNbSweetCells2FromMask
uint16_t getNbSweetCells2FromMask() const
Definition: LArRodBlockPhysicsV6.cxx:578
beamspotman.r
def r
Definition: beamspotman.py:676
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LArRodBlockStructure::m_vFragment
std::vector< uint32_t > * m_vFragment
Definition: LArRodBlockStructure.h:231
LARBSDBG
#define LARBSDBG(text)
This class provides decoding/encoding from/to ROD format.
Definition: LArRodBlockPhysicsV6.h:28
LArRodBlockPhysicsV6::getNbSweetCells1
virtual uint16_t getNbSweetCells1() const
Definition: LArRodBlockPhysicsV6.cxx:556
LArRodBlockStructure::FEBID_h
@ FEBID_h
Definition: LArRodBlockStructure.h:55
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
LArRodBlockPhysicsV6::m_numberHotCell
uint16_t m_numberHotCell
Definition: LArRodBlockPhysicsV6.h:165
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
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::NWTot
@ NWTot
Definition: LArRodBlockPhysicsV6.h:36
LArRodBlockStructure::NWTot_h
@ NWTot_h
Definition: LArRodBlockStructure.h:53
LArRodBlockStructure::m_FebBlockSize
int32_t m_FebBlockSize
Definition: LArRodBlockStructure.h:229
LArRodBlockStructure::FEBSN
@ FEBSN
Definition: LArRodBlockStructure.h:56
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:218
LArRodBlockPhysicsV6::getFirstSampleIndex
uint16_t getFirstSampleIndex() const
Definition: LArRodBlockPhysicsV6.h:190
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArRodBlockPhysicsV6::m_EnergyPointer
const uint16_t * m_EnergyPointer
Definition: LArRodBlockPhysicsV6.h:155
LArRodBlockPhysicsV6::FebConfig
@ FebConfig
Definition: LArRodBlockPhysicsV6.h:53
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
LArRodBlockPhysicsV6::m_TimeQualityBlock
std::vector< uint16_t > m_TimeQualityBlock
Definition: LArRodBlockPhysicsV6.h:141
LArRodBlockPhysicsV6::FEB_SN_h
@ FEB_SN_h
Definition: LArRodBlockPhysicsV6.h:41
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
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:68
HWIdentifier
Definition: HWIdentifier.h:13
CaloGain::LARNGAIN
@ LARNGAIN
Definition: CaloGain.h:19
x
#define x
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
LArRodBlockStructure::m_pRODblock
std::vector< uint32_t > * m_pRODblock
Definition: LArRodBlockStructure.h:232
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
LArRodBlockStructure::OfflineToRawGain
uint32_t OfflineToRawGain(const uint32_t gain) const
Definition: LArRodBlockStructure.h:352
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
LArRodBlockPhysicsV6::m_MaskTimeQualityPointer
const uint32_t * m_MaskTimeQualityPointer
Definition: LArRodBlockPhysicsV6.h:152
LArRodBlockStructure::setPointers
virtual bool setPointers()
Definition: LArRodBlockStructure.h:189
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:742
LArRodBlockPhysicsV6::m_SumBlkBlockE2
std::vector< uint32_t > m_SumBlkBlockE2
Definition: LArRodBlockPhysicsV6.h:138
LArRodBlockPhysicsV6::FirstSampleIndex
@ FirstSampleIndex
Definition: LArRodBlockPhysicsV6.h:52
LArRodBlockPhysicsV6::getNbSweetCells2
virtual uint16_t getNbSweetCells2() const
Definition: LArRodBlockPhysicsV6.cxx:562
LArRodBlockStructure::m_iHeadBlockSize
unsigned short m_iHeadBlockSize
Definition: LArRodBlockStructure.h:221
LArRodBlockPhysicsV6::FEBID_h
@ FEBID_h
Definition: LArRodBlockPhysicsV6.h:39
LArRodBlockStructure::m_rearrangeFirstSample
unsigned int m_rearrangeFirstSample
Definition: LArRodBlockStructure.h:241
LArRodBlockStructure::getHeader32
uint32_t getHeader32(const unsigned n) const
Definition: LArRodBlockStructure.h:365
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
LArRodBlockPhysicsV6::m_numberHotCellOffTime
uint16_t m_numberHotCellOffTime
Definition: LArRodBlockPhysicsV6.h:166
LArOnlineID_Base::channel
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Definition: LArOnlineID_Base.cxx:1967
convertTimingResiduals.sum
sum
Definition: convertTimingResiduals.py:55
LArRodBlockPhysicsV6::EventStatus_h
@ EventStatus_h
Definition: LArRodBlockPhysicsV6.h:49
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
LArRodBlockPhysicsV6::m_DigitsChannel
int m_DigitsChannel
Definition: LArRodBlockPhysicsV6.h:149
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:564
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
LArRodBlockPhysicsV6::ResultsOff1
@ ResultsOff1
Definition: LArRodBlockPhysicsV6.h:42
lumiFormat.i
int i
Definition: lumiFormat.py:92
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
LArRodBlockPhysicsV6::m_RawDataPointer
const uint16_t * m_RawDataPointer
Definition: LArRodBlockPhysicsV6.h:159
LArRodBlockPhysicsV6::NSamples
@ NSamples
Definition: LArRodBlockPhysicsV6.h:51
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArRodBlockPhysicsV6::FEB_SN
@ FEB_SN
Definition: LArRodBlockPhysicsV6.h:40
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
LArRodBlockPhysicsV6::m_EnergyThreshold2
uint16_t m_EnergyThreshold2
Definition: LArRodBlockPhysicsV6.h:169
LArRodBlockPhysicsV6::m_GainPointer
const uint32_t * m_GainPointer
Definition: LArRodBlockPhysicsV6.h:151
LArRodBlockPhysicsV6::m_SumBlkBlockE1
std::vector< uint32_t > m_SumBlkBlockE1
Definition: LArRodBlockPhysicsV6.h:137
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:127
LArRodBlockPhysicsV6::setE
void setE(unsigned int index, double E)
Definition: LArRodBlockPhysicsV6.h:385
LArRodBlockPhysicsV6::m_OffTimeCut
int16_t m_OffTimeCut
Definition: LArRodBlockPhysicsV6.h:170
CaloCellPos2Ntuple.x7fffffff
x7fffffff
Definition: CaloCellPos2Ntuple.py:24
MYLEVEL
#define MYLEVEL
Definition: LArRodBlockPhysicsV3.h:47
LArRodBlockStructure::m_virtualROBPointerLocal
const uint32_t * m_virtualROBPointerLocal
Definition: LArRodBlockStructure.h:248
LArRodBlockStructure::resetPointers
virtual void resetPointers()
Definition: LArRodBlockStructure.h:187
LArRodBlockPhysicsV6::ResultsDim1
@ ResultsDim1
Definition: LArRodBlockPhysicsV6.h:43
LArRodBlockStructure::m_RawToOfflineGainMap
static const uint32_t m_RawToOfflineGainMap[4]
Definition: LArRodBlockStructure.h:237
imax
int imax(int i, int j)
Definition: TileLaserTimingTool.cxx:33
LArRodBlockPhysicsV6::NWTot_h
@ NWTot_h
Definition: LArRodBlockPhysicsV6.h:37
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
LArOnlineID_Base::feb_Id
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
Definition: LArOnlineID_Base.cxx:1483
CaloTime_fillDB.gain1
gain1
Definition: CaloTime_fillDB.py:356
LArRodBlockPhysicsV6::EventStatus
@ EventStatus
Definition: LArRodBlockPhysicsV6.h:48
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
LArRodBlockStructure::endtag
@ endtag
Definition: LArRodBlockStructure.h:58
LArRodBlockPhysicsV6::m_DigitsEncode
std::vector< uint16_t > m_DigitsEncode
Definition: LArRodBlockPhysicsV6.h:144
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
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:568
LArRodBlockPhysicsV6::FEBID
@ FEBID
Definition: LArRodBlockPhysicsV6.h:38
LArRodBlockPhysicsV6::ResultsOff2
@ ResultsOff2
Definition: LArRodBlockPhysicsV6.h:44
LArRodBlockPhysicsV6::InFPGAFormat
@ InFPGAFormat
Definition: LArRodBlockPhysicsV6.h:54
LArRodBlockPhysicsV6::m_EnergyIndex
int m_EnergyIndex
Definition: LArRodBlockPhysicsV6.h:146
LArRodBlockStructure::FEBSN_h
@ FEBSN_h
Definition: LArRodBlockStructure.h:57
LArRodBlockPhysicsV6::endtag
@ endtag
Definition: LArRodBlockPhysicsV6.h:56
Rtt_histogram.n1
n1
Definition: Rtt_histogram.py:21
ReadOfcFromCool.nsamples
nsamples
Definition: ReadOfcFromCool.py:115
LArRodBlockStructure::m_MiddleHeaderSize
int32_t m_MiddleHeaderSize
Definition: LArRodBlockStructure.h:239
LArRodBlockStructure::NWTot
@ NWTot
Definition: LArRodBlockStructure.h:52
LArRodBlockPhysicsV6::m_MaskDigitsPointer
const uint32_t * m_MaskDigitsPointer
Definition: LArRodBlockPhysicsV6.h:153
LArRodBlockPhysicsV6::m_EnergyThreshold1
uint16_t m_EnergyThreshold1
Definition: LArRodBlockPhysicsV6.h:168
DeMoScan.index
string index
Definition: DeMoScan.py:362
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
LArRodBlockPhysicsV6::getNextDigits
int getNextDigits(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
Definition: LArRodBlockPhysicsV6.cxx:417
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
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
LArRodBlockPhysicsV6::BlockType
std::string BlockType()
Definition: LArRodBlockPhysicsV6.h:62
LArRodBlockPhysicsV6::NGains
@ NGains
Definition: LArRodBlockPhysicsV6.h:50
LArRodBlockStructure::m_OfflineToRawGainMap
static const uint32_t m_OfflineToRawGainMap[3]
Definition: LArRodBlockStructure.h:238
extractSporadic.q
list q
Definition: extractSporadic.py:98
LArRodBlockPhysicsV6::FebToRodChannel
virtual int FebToRodChannel(int ch) const
Definition: LArRodBlockPhysicsV6.h:379
LArRodBlockPhysicsV6::m_TimeQualityIndex
int m_TimeQualityIndex
Definition: LArRodBlockPhysicsV6.h:147
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
febId1
HWIdentifier febId1
Definition: LArRodBlockPhysicsV0.cxx:566
LArRodBlockStructure::m_RodBlockSize
int32_t m_RodBlockSize
Definition: LArRodBlockStructure.h:230
LArRodBlockPhysicsV6::RawDataBlkOff
@ RawDataBlkOff
Definition: LArRodBlockPhysicsV6.h:46
LArRodBlockStructure::m_RodBlock
const uint32_t * m_RodBlock
Definition: LArRodBlockStructure.h:228
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
LArRodBlockPhysicsV6::m_requiredNSamples
unsigned short m_requiredNSamples
Definition: LArRodBlockPhysicsV6.h:172
LArRodBlockStructure::m_channelsPerFEB
int m_channelsPerFEB
Definition: LArRodBlockStructure.h:225
LArRodBlockPhysicsV6::InFPGAFormat_h
@ InFPGAFormat_h
Definition: LArRodBlockPhysicsV6.h:55
LArRodBlockPhysicsV6::RawDataBlkDim
@ RawDataBlkDim
Definition: LArRodBlockPhysicsV6.h:47
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
LArRodBlockStructure::FEBID
@ FEBID
Definition: LArRodBlockStructure.h:54
LArRodBlockStructure::m_mFebBlocks
FEBMAPTYPE m_mFebBlocks
Definition: LArRodBlockStructure.h:234
LArRodBlockPhysicsV6::ResultsDim2
@ ResultsDim2
Definition: LArRodBlockPhysicsV6.h:45
LArRodBlockStructure::setHeader32
void setHeader32(const unsigned n, const uint32_t w)
Definition: LArRodBlockStructure.h:394
pdg_comparison.conv
conv
Definition: pdg_comparison.py:321