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

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
///
/// This class provides access to VME data in test beam raw data.
///
///////////////////////////////////////////////////////////////////////////////

#include <TObject.h>

class AliRawReader;


class AliVMERawStream: public TObject {
  public :
    AliVMERawStream(AliRawReader* rawReader);
    virtual ~AliVMERawStream() {};

    virtual Bool_t   Next();

    UShort_t         GetBlock() const {return fBlock;};
    UShort_t         GetNumber() const {return fNumber;};
    UShort_t         GetChannel() const {return fChannel;};
    UShort_t         GetValue() const {return fValue;};

    UInt_t           GetTDCChannel(Int_t iTDC) const
      {return fTDCChannel[iTDC];};
    UInt_t           GetTDCValue(Int_t iTDC) const
      {return fTDCValue[iTDC];};

    UInt_t           GetTime() const {return fTime;};
    UInt_t           GetTimeMuSec() const {return fTimeMuSec;};

  private :
    AliVMERawStream(const AliVMERawStream& stream);
    AliVMERawStream& operator = (const AliVMERawStream& stream);

    Bool_t           CheckString(const char* str) const;
    Bool_t           ReadTDC();
    Bool_t           ReadTime();

    AliRawReader*    fRawReader;    // object for reading the raw data

    UInt_t           fData;         // data read for file

    Int_t            fNChannels;    // number of c-ram channels
    UShort_t         fBlock;        // C-ram block
    UShort_t         fNumber;       // C-ram serial number
    UShort_t         fChannel;      // C-ram channel
    UShort_t         fValue;        // C-ram ADC value

    static const Int_t fgkNTDC = 3; // number of TDCs
    UInt_t           fTDCChannel[fgkNTDC];      // TDC channels
    UInt_t           fTDCValue[fgkNTDC];        // TDC values

    UInt_t           fTime;         // timing information
    UInt_t           fTimeMuSec;    // micro seconds

    ClassDef(AliVMERawStream, 0) // class for reading VME raw digits
};

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