ROOT logo
AliRoot » MUON » AliMUONRawStreamTrackerHP::AliBlockHeader

class AliMUONRawStreamTrackerHP::AliBlockHeader

 \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:
UInt_tfDspCount/< The number of AliDspHeader objects found in the array pointed to by fFirstDsp.
const AliMUONRawStreamTrackerHP::AliDspHeader*fFirstDsp/< The first DSP associated with this block.
const AliMUONBlockHeaderStruct*fHeader/< Pointer to header in DDL payload.
const AliMUONRawStreamTrackerHP::AliBlockHeader*fNext/< Pointer to next block.

Class Charts

Inheritance Chart:
AliMUONRawStreamTrackerHP::AliBlockHeader

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.
AliBlockHeader(AliMUONRawStreamTrackerHP::AliDspHeader* dspArray = NULL, const AliMUONBlockHeaderStruct* header = NULL)
 Default constructor.
AliBlockHeader(const AliMUONRawStreamTrackerHP::AliBlockHeader& o)
 Implement shallow copying in the copy constructor.
~AliBlockHeader()
 Default destructor.
{}
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 GetL0Trigger() const
 Return L0 trigger word
{assert(fHeader != NULL); return fHeader->fL0Trigger;}
Int_t GetMiniEventId() const
 Return Bunch Crossing for mini-event id (see TDR chapter 8)
{assert(fHeader != NULL); return fHeader->fMiniEventId;}
Int_t GetEventId1() const
 Return Event Id in bunch crossing
{assert(fHeader != NULL); return fHeader->fEventId1;}
Int_t GetEventId2() const
 Return Event Id in orbit number
{assert(fHeader != NULL); return fHeader->fEventId2;}
const AliMUONBlockHeaderStruct* GetHeader() const
 Return the header's raw data.
{return fHeader;}
const AliDspHeader* GetFirstDspHeader() const
 Returns the first AliDspHeader class in this block.
{ return fFirstDsp; }
UInt_t GetDspCount() const
 Returns the number of DSPs within this block.
{ return fDspCount; }
const AliDspHeader* GetDspHeader(UInt_t i) const
 Return the i'th DSP in this block.
void SetNext(const AliMUONRawStreamTrackerHP::AliBlockHeader* next)
 Sets the next block header.
{ fNext = next; }
void IncDspCount()
 Increments the DSP count.
{ fDspCount++; }