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

///////////////////////////////////////////////////////////////////////////////
///
/// This class provides access to TPC digits in raw data.
///
///////////////////////////////////////////////////////////////////////////////

#include "AliAltroRawStreamV3.h"

class AliRawReader;
class AliAltroMapping;

class AliTPCRawStreamV3: public AliAltroRawStreamV3 {
  public :
    AliTPCRawStreamV3(AliRawReader* rawReader, AliAltroMapping **mapping = NULL);
    virtual ~AliTPCRawStreamV3();

    virtual void             Reset();
    virtual Bool_t           NextChannel();
    virtual Bool_t           NextDDL();
  
    inline Int_t GetSector()     const { return fSector; }     // Provide index of current sector
    inline Int_t GetPrevSector() const { return fPrevSector; } // Provide index of previous sector
    inline Bool_t  IsNewSector() const {return fSector != fPrevSector;};
    inline Int_t GetRow()        const { return fRow; }        // Provide index of current row
    inline Int_t GetPrevRow()    const { return fPrevRow; }    // Provide index of previous row
    inline Bool_t  IsNewRow()    const {return (fRow != fPrevRow) || IsNewSector();};
    inline Int_t GetPad()        const { return fPad; }        // Provide index of current pad
    inline Int_t GetPrevPad()    const { return fPrevPad; }    // Provide index of previous pad
    inline Bool_t  IsNewPad()    const {return (fPad != fPrevPad) || IsNewRow();};
    inline Int_t GetPatchIndex() const { return fPatchIndex; }        // Provide index of current patch


  protected :
    AliTPCRawStreamV3& operator = (const AliTPCRawStreamV3& stream);
    AliTPCRawStreamV3(const AliTPCRawStreamV3& stream);

    virtual void ApplyAltroMapping();

    Int_t            fSector;       // index of current sector
    Int_t            fPrevSector;   // index of previous sector
    Int_t            fRow;          // index of current row
    Int_t            fPrevRow;      // index of previous row
    Int_t            fPad;          // index of current pad
    Int_t            fPrevPad;      // index of previous pad
    Int_t            fPatchIndex;   // current patch

    AliAltroMapping *fMapping[6];   // Pointers to ALTRO mapping
    Bool_t           fIsMapOwner;   // does object own its mappings?

    ClassDef(AliTPCRawStreamV3, 0)    // base class for reading TPC raw digits using the fast algorithm
};

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