ROOT logo
#ifndef ALIACORDERAWREADER_H
#define ALIACORDERAWREADER_H
/***************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 ***************************************************************************/
// Authors:
//	Mario Rodriguez Cahuantzi <mrodrigu@mail.cern.ch>
//	Arturo Fernandez Tellez   <afernan@mail.cern.ch>
 
#include <TNamed.h>
#include "AliRawReader.h"

  
class AliACORDERawReader : public TNamed {
  public :

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

  virtual  ~AliACORDERawReader();
  AliACORDERawReader(const AliACORDERawReader& o): TNamed(o),fRawReader(0),fData(NULL),fPosition(0),fIsOnline(kFALSE),fDataSize(0)
{
	fWord[0] = fWord[1] = fWord[2] = fWord[3] = 0;
}
  
  AliACORDERawReader& operator=(const AliACORDERawReader&) { 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 EACORDERawReaderError {
    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;}
     
  protected :

  AliRawReader*    fRawReader;    // object for reading the raw data
  UChar_t*         fData;         // raw data
  Int_t            fPosition;     // current (32 bit) position in fData
  Bool_t           fIsOnline;     // for case online DA usage
  UInt_t          fWord[4];      // data vector
  Int_t           fDataSize;     // data size
  Int_t            fAllData[110][50]; // container for raw data

enum EACORDERawStreamError {
      kRawDataSizeErr = 1
  };
  
 ClassDef(AliACORDERawReader,3) //class for reading ACORDE Raw data
};

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