ROOT logo
#ifndef ALIT0RAWREADER_H
#define ALIT0RAWREADER_H
/***************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * Alla Maevskaya INR RAS alla@inr.ru
 *
 * See cxx source for full Copyright notice                               
 ***************************************************************************/

 
#include <TTask.h>
#include "AliRawReader.h"
#include "AliT0Parameters.h"

  
class AliT0RawReader : public TTask {
  public :

  AliT0RawReader(AliRawReader *rawReader,Bool_t isOnline = kFALSE) ;
//  AliT0RawReader(AliRawReader *rawReader,Bool_t isOnline = kTRUE) ;

  virtual  ~AliT0RawReader();
  AliT0RawReader(const AliT0RawReader& o): TTask(o),
    fRawReader(0),
    fData(NULL),
    fPosition(0),
    fParam(0),
    fIsOnline(kFALSE),
    fBunchID(0),
    fPrintout(kFALSE)
    {}
  
  AliT0RawReader& operator=(const AliT0RawReader&) { return *this; }


  Bool_t  Next(); //read next raw digit
  Int_t            GetPosition();
  UInt_t         GetNextWord();
  Int_t GetData( Int_t channel, Int_t hit) {return fAllData[channel][hit];}


  enum ET0RawReaderError {
    kIncorrectDataSize = 1,
    kWrongDRMHeader = 2,
    kWrongDRMTrailer = 3,
    kWrongTRMHeader = 4,
    kWrongTRMTrailer = 5,
    kWrongChain0Header = 6,
    kWrongChain0Trailer = 7,
    kWrongChain1Header = 8,
    kWrongChain1Trailer = 9,
    kIncorrectLUT = 10
  };

  Bool_t IsOnlineMode () {return fIsOnline;}
  Int_t GetTRMBunchID() {return fBunchID;};

  void SetPrintout(Bool_t pp ) {fPrintout = pp;}
     
  protected :

  AliRawReader*    fRawReader;    // object for reading the raw data
  UChar_t*         fData;         // raw data
  Int_t            fPosition;     // current (32 bit) position in fData
  AliT0Parameters *fParam;       // instanse of  Parameters class
  Bool_t           fIsOnline;     // for case online DA usage
  Int_t            fBunchID;       //bunchID from TRM chain header
  Bool_t           fPrintout;      // advanced printout
  Int_t            fAllData[220][5]; // container for raw data
  
 ClassDef(AliT0RawReader,4) //class for reading T0 Raw data
};

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