ROOT logo
AliRoot » MUON » AliMUONRawStreamTrackerHP::AliDspHeader

class AliMUONRawStreamTrackerHP::AliDspHeader

 \ingroup raw
 \class AliMUONRawStreamTrackerHP
 \brief A high performance stream decoder for muon tracking DDL streams.

 This is the raw stream class which interfaces between the high performance
 core decoder and the AliRawReader class.
 To gain the most out of the decoder, the Next() method which returns batches
 of decoded digit / channel information should be used. That is:
 \code
   const AliBusPatch* Next();
 \endcode

 This decoder tries to implement as similar an interface as possible to
 AliMUONRawStreamTracker where possible. However certain constructs which
 would slow us down too much are avoided.

 \author Artur Szostak <artursz@iafrica.com>

Function Members (Methods)

Data Members

private:
const AliMUONRawStreamTrackerHP::AliBlockHeader*fBlock/< Pointer to parent block structure.
UInt_tfBusPatchCount/< The number of AliDspHeader objects found in the array pointed to by fFirstBusPatch
const AliMUONRawStreamTrackerHP::AliBusPatch*fFirstBusPatch/< The first bus patch of this DSP.
const AliMUONDSPHeaderStruct*fHeader/< Pointer to header in DDL payload.
const AliMUONRawStreamTrackerHP::AliDspHeader*fNext/< Pointer to next DSP.

Class Charts

Inheritance Chart:
AliMUONRawStreamTrackerHP::AliDspHeader

Function documentation

void Print() const
 Print header to screen.
Bool_t Next(Int_t& busPatchId, UShort_t& manuId, UChar_t& manuChannel, UShort_t& adc)
 Advance one step in the iteration. Returns false if finished.
Int_t GetDataKey() const
 Return data key word for CRT header
{assert(fHeader != NULL); return fHeader->fDataKey;}
Int_t GetTotalLength() const
 Return total length of block structure (w/o padding word)
{assert(fHeader != NULL); return fHeader->fTotalLength;}
Int_t GetLength() const
 Return length of raw data
{assert(fHeader != NULL); return fHeader->fLength;}
Int_t GetDspId() const
 Return Dsp id
{assert(fHeader != NULL); return fHeader->fDSPId;}
Int_t GetMiniEventId() const
 Return Bunch Crossing for mini-event id (see TDR chapter 8)
{assert(fHeader != NULL); return fHeader->fMiniEventId;}
const AliMUONBlockHeaderStruct* GetHeader() const
 Return the header's raw data.
{return fHeader;}
void SetNext(const AliMUONRawStreamTrackerHP::AliDspHeader* next)
 Sets the next block header.
{ fNext = next; }
AliDspHeader(const AliMUONRawStreamTrackerHP::AliBlockHeader* block = NULL, const AliMUONRawStreamTrackerHP::AliBusPatch* busPatchArray = NULL, const AliMUONDSPHeaderStruct* header = NULL)
 Default constructor.
AliDspHeader(const AliMUONRawStreamTrackerHP::AliDspHeader& o)
 Implement shallow copying in the copy constructor.
~AliDspHeader()
 Default destructor.
{}
Int_t GetBlkL1ATrigger() const
 Return L1 accept in Block Structure (CRT)
{assert(fHeader != NULL); return fHeader->fBlkL1ATrigger;}
Int_t GetL1ATrigger() const
 Return Number of L1 accept in DSP Structure (FRT)
{assert(fHeader != NULL); return fHeader->fL1ATrigger;}
Int_t GetL1RTrigger() const
 Return Number of L1 reject in DSP Structure (FRT)
{assert(fHeader != NULL); return fHeader->fL1RTrigger;}
UInt_t GetPaddingWord() const
 Return padding dummy word for 64 bits transfer
{assert(fHeader != NULL); return fHeader->fPaddingWord;}
Int_t GetErrorWord() const
 Return Error word
{assert(fHeader != NULL); return fHeader->fErrorWord;}
const AliBlockHeader* GetBlockHeader() const
 Return the parent block header.
{ return fBlock; }
const AliBusPatch* GetFirstBusPatch() const
 Returns the first AliBusPatch class in this DSP.
{ return fFirstBusPatch; }
UInt_t GetBusPatchCount() const
 Returns the number of bus patches within this DSP.
{ return fBusPatchCount; }
const AliBusPatch* GetBusPatch(UInt_t i) const
 Return the i'th bus patch in this DSP.
void IncBusPatchCount()
 Increments the bus patch count.