|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef LARBYTESTREAM_LARRODBLOCKPHYSICSV6_H
8 #define LARBYTESTREAM_LARRODBLOCKPHYSICSV6_H
20 #include "GaudiKernel/ISvcLocator.h"
25 #define MYLEVEL (MSG::FATAL)
26 #define LARBSDBG(text) logstr<<MYLEVEL<<text<<endmsg
28 #define LARBSDBG(text)
62 std::string
BlockType() {
return std::string(
"RodBlockPhysicsV6");}
94 virtual inline int32_t
getEx()
const;
95 virtual inline int32_t
getEy()
const;
96 virtual inline int32_t
getEz()
const;
97 virtual inline int32_t
getSumE()
const;
100 virtual inline int32_t
getVROBEy()
const;
101 virtual inline int32_t
getVROBEz()
const;
104 virtual inline int setGain(
const int ) {
return 1; };
114 virtual inline void setEx(
double);
115 virtual inline void setEy(
double);
116 virtual inline void setEz(
double);
117 virtual inline void setSumE(
double);
122 template<
class RAWDATA>
123 bool operator () (
const RAWDATA* ch1,
const RAWDATA* ch2)
const;
126 {std::sort(vDigit.begin(),vDigit.end(),*
this); }
197 #ifdef LARBSDBGOUTPUT
201 LARBSDBG(
"in LArRodBlockPhysicsV6::getNextEnergy.");
209 channelNumber=((rodChannelNumber&0xe)<<2) + ((rodChannelNumber&0x1)<<6) + (rodChannelNumber>>4);
260 LARBSDBG(
"-------->>>> in LArRodBlockPhysicsV6::getNextEnergy : decode energy.....");
265 aux = (int32_t) (encodedEnergy&0x1fff);
266 range = (encodedEnergy & 0xc000) >> 14;
267 if(aux==0 &&
range>0) aux=0x2000;
268 sign = encodedEnergy & 0x2000;
277 }
else gain=0xffffffff;
292 #ifdef LARBSDBGOUTPUT
293 logstr <<
MYLEVEL <<
"This cell has time and Quality information "<<
endmsg;
303 #ifdef LARBSDBGOUTPUT
306 logstr <<
MYLEVEL <<
" Encoded Energy ="<< MSG::hex << encodedEnergy << MSG::dec <<
" E=" <<
energy
310 <<
" channel Number=" << channelNumber
354 if(
p)
return (
p[1]>>9);
361 if(
p)
return (
p[2]>>9);
368 if(
p)
return (
p[3]>>9);
375 if(
p)
return (
p[4]>>9);
381 return ( (
ch&0x7) << 4) | ( (
ch&0x38) >>2 ) | ((
ch&0x40)>>6);
391 conv.i =
static_cast<int32_t
>(
E);
424 #ifdef LARBSDBGOUTPUT
425 #undef LARBSDBGOUTPUT
uint16_t getNbSweetCells2FromMask() const
virtual int32_t getSumE() const
virtual int32_t getVROBEy() const
#define LARBSDBG(text)
This class provides decoding/encoding from/to ROD format.
virtual uint16_t getNbSweetCells1() const
virtual uint32_t getVROBFebId()
virtual void setSumE(double)
virtual bool canSetCalibration()
virtual int32_t getEy() const
virtual int getNextEnergy(int &channelNumber, int32_t &energy, int32_t &time, int32_t &quality, uint32_t &gain)
virtual int32_t getVROBSumE() const
uint16_t getFirstSampleIndex() const
virtual uint32_t hasCalibBlock() const
virtual int32_t getEx() const
uint16_t getFebConfig() const
const uint16_t * m_EnergyPointer
virtual uint16_t getResults1Size() const
virtual bool setPointers()
virtual uint16_t getCtrl2(uint32_t adc) const
std::vector< uint16_t > m_TimeQualityBlock
bool operator()(const RAWDATA *ch1, const RAWDATA *ch2) const
virtual uint16_t getCtrl3(uint32_t adc) const
const LArOnlineID * m_onlineHelper
virtual void resetPointers()
const int32_t * m_SumPointer
setScaleOne setStatusOne setSaturated int16_t
IMessageSvc * getMessageSvc(bool quiet=false)
virtual uint32_t hasPhysicsBlock() const
const uint32_t * m_MaskTimeQualityPointer
virtual uint16_t getRawDataSize() const
void setNextEnergy(const int channel, const int32_t energy, const int32_t time, const int32_t quality, const uint32_t gain)
std::vector< uint32_t > m_SumBlkBlockE2
virtual uint16_t getNbSweetCells2() const
virtual uint16_t getResults2Size() const
std::vector< uint32_t > m_FebInfoBlock
virtual void setEy(double)
uint16_t m_numberHotCellOffTime
uint32_t RawToOfflineGain(const uint32_t gain) const
const uint16_t * m_RawDataPointer
uint16_t m_EnergyThreshold2
const uint32_t * m_GainPointer
virtual uint16_t getCtrl1(uint32_t adc) const
virtual int32_t getVROBEz() const
std::vector< uint32_t > m_SumBlkBlockE1
void setRequiredNSamples(unsigned short ns)
void setE(unsigned int index, double E)
std::vector< uint32_t > m_RawDataBlock
const uint32_t * m_virtualROBPointerLocal
const uint16_t * m_DigitsPointer
virtual uint32_t hasControlWords() const
virtual int getNextRawData(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
virtual uint32_t hasRawDataBlock() const
std::vector< uint16_t > m_DigitsEncode
std::vector< uint32_t > m_GainBlock
const uint32_t * m_virtualROBPointer
uint16_t getNbSweetCells1FromMask() const
virtual void sortDataVector(std::vector< const LArRawChannel * > &)
virtual int32_t getVROBEx() const
const uint32_t * m_MaskDigitsPointer
uint16_t m_EnergyThreshold1
def time(flags, cells_name, *args, **kw)
virtual uint32_t getNumberOfGains() const
void setRawData(const int, const std::vector< short > &, const uint32_t)
int getNextDigits(int &channelNumber, std::vector< short > &samples, uint32_t &gain)
const uint16_t * m_TimeQualityPointer
std::vector< uint16_t > m_EnergyBlockEncode
virtual uint32_t getNumberOfSamples() const
virtual int FebToRodChannel(int ch) const
virtual int32_t getEz() const
virtual uint32_t getRadd(uint32_t adc, uint32_t sample) const
virtual void setEz(double)
unsigned short m_requiredNSamples
void initializeFEB(const uint32_t id)
virtual uint32_t getStatus() const
uint16_t getHeader16(const unsigned n) const
uint32_t m_virtualROBJump
const uint16_t * m_RaddPointer
virtual void setEx(double)
void sortDataVector(std::vector< const LArDigit * > &vDigit)
void initializeFragment(std::vector< uint32_t > &fragment)
virtual int setGain(const int)