ROOT logo
#ifndef ALIRAWREADERDATE_H
#define ALIRAWREADERDATE_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
///
/// This is a class for reading raw data from a date file or event.
///
///////////////////////////////////////////////////////////////////////////////

#include "AliRawReader.h"

struct eventHeaderStruct;
struct equipmentHeaderStruct;


class AliRawReaderDate: public AliRawReader {
  public :
    AliRawReaderDate(void* event, Bool_t owner = kFALSE);
    AliRawReaderDate(const char* fileName, Int_t eventNumber = -1);
    virtual ~AliRawReaderDate();

    virtual UInt_t   GetType() const;
    virtual UInt_t   GetRunNumber() const;
    virtual const UInt_t* GetEventId() const;
    virtual const UInt_t* GetTriggerPattern() const;
    virtual const UInt_t* GetDetectorPattern() const;
    virtual const UInt_t* GetAttributes() const;
    virtual const UInt_t* GetSubEventAttributes() const;
    virtual UInt_t   GetLDCId() const;
    virtual UInt_t   GetGDCId() const;
    virtual UInt_t   GetTimestamp() const;

    virtual Int_t    GetEquipmentSize() const;
    virtual Int_t    GetEquipmentType() const;
    virtual Int_t    GetEquipmentId() const;
    virtual const UInt_t* GetEquipmentAttributes() const;
    virtual Int_t    GetEquipmentElementSize() const;
    virtual Int_t    GetEquipmentHeaderSize() const;

    virtual Bool_t   ReadHeader();
    virtual Bool_t   ReadNextData(UChar_t*& data);
    virtual Bool_t   ReadNext(UChar_t* data, Int_t size);

    virtual Bool_t   Reset();

    virtual Bool_t   NextEvent();
    virtual Bool_t   RewindEvents();

    virtual Int_t    CheckData() const;

    virtual AliRawReader* CloneSingleEvent() const;

  protected :
    FILE*            fFile;         // DATE file
    eventHeaderStruct* fEvent;      // raw data super event
    eventHeaderStruct* fSubEvent;   // raw data sub event
    equipmentHeaderStruct* fEquipment; // raw data equipment header

    UChar_t*         fPosition;     // current position in the raw data
    UChar_t*         fEnd;          // end position of the current data block

    Bool_t           fOwner;        // is raw-reader owner of the raw event or not

  private:
    AliRawReaderDate(const AliRawReaderDate& rawReader); // Not implemented
    AliRawReaderDate& operator = (const AliRawReaderDate& rawReader); // Not implemented

    ClassDef(AliRawReaderDate, 0) // class for reading raw digits from a root file
};

#endif
 AliRawReaderDate.h:1
 AliRawReaderDate.h:2
 AliRawReaderDate.h:3
 AliRawReaderDate.h:4
 AliRawReaderDate.h:5
 AliRawReaderDate.h:6
 AliRawReaderDate.h:7
 AliRawReaderDate.h:8
 AliRawReaderDate.h:9
 AliRawReaderDate.h:10
 AliRawReaderDate.h:11
 AliRawReaderDate.h:12
 AliRawReaderDate.h:13
 AliRawReaderDate.h:14
 AliRawReaderDate.h:15
 AliRawReaderDate.h:16
 AliRawReaderDate.h:17
 AliRawReaderDate.h:18
 AliRawReaderDate.h:19
 AliRawReaderDate.h:20
 AliRawReaderDate.h:21
 AliRawReaderDate.h:22
 AliRawReaderDate.h:23
 AliRawReaderDate.h:24
 AliRawReaderDate.h:25
 AliRawReaderDate.h:26
 AliRawReaderDate.h:27
 AliRawReaderDate.h:28
 AliRawReaderDate.h:29
 AliRawReaderDate.h:30
 AliRawReaderDate.h:31
 AliRawReaderDate.h:32
 AliRawReaderDate.h:33
 AliRawReaderDate.h:34
 AliRawReaderDate.h:35
 AliRawReaderDate.h:36
 AliRawReaderDate.h:37
 AliRawReaderDate.h:38
 AliRawReaderDate.h:39
 AliRawReaderDate.h:40
 AliRawReaderDate.h:41
 AliRawReaderDate.h:42
 AliRawReaderDate.h:43
 AliRawReaderDate.h:44
 AliRawReaderDate.h:45
 AliRawReaderDate.h:46
 AliRawReaderDate.h:47
 AliRawReaderDate.h:48
 AliRawReaderDate.h:49
 AliRawReaderDate.h:50
 AliRawReaderDate.h:51
 AliRawReaderDate.h:52
 AliRawReaderDate.h:53
 AliRawReaderDate.h:54
 AliRawReaderDate.h:55
 AliRawReaderDate.h:56
 AliRawReaderDate.h:57
 AliRawReaderDate.h:58
 AliRawReaderDate.h:59
 AliRawReaderDate.h:60
 AliRawReaderDate.h:61
 AliRawReaderDate.h:62
 AliRawReaderDate.h:63
 AliRawReaderDate.h:64
 AliRawReaderDate.h:65
 AliRawReaderDate.h:66
 AliRawReaderDate.h:67
 AliRawReaderDate.h:68
 AliRawReaderDate.h:69
 AliRawReaderDate.h:70
 AliRawReaderDate.h:71
 AliRawReaderDate.h:72
 AliRawReaderDate.h:73
 AliRawReaderDate.h:74
 AliRawReaderDate.h:75