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

/* $Id$ */

///////////////////////////////////////////////////////////////////////////////
///
/// This class provides access to ITS SSD digits in raw data.
//  Revised by Enrico Fragiacomo
//  Last update: 2007/09/06
///
///////////////////////////////////////////////////////////////////////////////

#include "AliITSRawStream.h"

class AliRawReader;


class AliITSRawStreamSSD: public AliITSRawStream {
  public :
    AliITSRawStreamSSD(AliRawReader* rawReader);
    virtual ~AliITSRawStreamSSD() {};

    virtual Bool_t   Next();

    Int_t            GetSideFlag() const {return fCoord1;}
    Int_t            GetStrip() const {return fCoord2;}
    Int_t GetDDL() const {return fddl;}
    Int_t GetAD() const {return fad;}
    Int_t GetADC() const {return fadc;}

    static Bool_t InitDDLModuleMap();  // Initialize DLL module map
    static void Setv11HybridDDLMapping();
    static void SetvPPRasymmFMDDDLMapping();

    enum {kDDLsNumber = 16};      // number of DDLs in SSD
    enum {kModulesPerDDL = 108};  // number of modules in each DDL

    static Int_t     GetModuleNumber(UInt_t iDDL, UInt_t iModule);

    enum ESSDRawStreamError {
      kWrongModuleIdErr = 1
    };

    Int_t fddl;   // ddl
    Int_t fad;    // ad module
    Int_t fadc;   // adc

    Bool_t flag;  //

  protected :
    static Bool_t fgkDDLModuleMapInit; // Module map is initialized or not
    static Int_t fgkDDLModuleMap[kDDLsNumber][kModulesPerDDL];  // mapping DDL/module -> module number

    UInt_t           fData;         // data read for file

    ClassDef(AliITSRawStreamSSD, 0) // class for reading ITS SSD raw digits
};

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