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

///////////////////////////////////////////////////////////////////////////////
///
/// This class provides access to CC-USB data in EMCAL test bench raw data.
/// Author: guernane@lpsc.in2p3.fr
///
///////////////////////////////////////////////////////////////////////////////

#include <TObject.h>

class AliRawReader;

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

    virtual Bool_t   Next();

    UInt_t           GetTDC(Int_t iTDC) const
    {return fTDC[iTDC];}
    
    UInt_t           GetQDC(Int_t iQDC) const
    {return fQDC[iQDC];}
    UInt_t           GetScalerCCUSB(Int_t iScaler) const 
    {return fScalerCCUSB[iScaler];}
    UInt_t           GetScalerLecroy(Int_t iScaler) const
    {return fScalerLecroy[iScaler];}

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

    AliRawReader*    fRawReader;     // object for reading the raw data
    UInt_t           fData;          // data read for file
    UInt_t           fHeader;        // bit 15=1 indicates a watchdog buffer
                                     // bit 14=1 indicates a scaler buffer
                                     // bits 0-9 represent the number of events in the buffer
    UInt_t           fOptHeader;     // bits 0-11 represent the number of words in the buffer
    UInt_t           fEventLength;   // event length including terminator words
    UInt_t           fEOBuffer;      // event terminator
    
    static const Int_t fgkNScalerCCUSB  =  2; // number of internal CC-USB scalers
    static const Int_t fgkNScalerLecroy = 12; // number of Lecroy scalers
    static const Int_t fgkNTDC    = 40;       // number of TDC
    static const Int_t fgkNQDC    = 32;       // number of QDC
    
    UInt_t         fTDC[fgkNTDC];                   // TDC channels
    UInt_t         fQDC[fgkNQDC];                   // QDC values         
    UInt_t         fScalerCCUSB[fgkNScalerCCUSB];   // Internal scaler values         
    UInt_t         fScalerLecroy[fgkNScalerLecroy]; // Lecroy scaler values         

    ClassDef(AliEMCALCCUSBRawStream, 0)  // class for reading CC-USB raw digits
};

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