]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSRawStreamSDDCompressed.h
Updated geometry
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSDDCompressed.h
1 #ifndef ALIITSRAWSTREAMSDDCOMPRESSED_H
2 #define ALIITSRAWSTREAMSDDCOMPRESSED_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////
9 //                                                               //
10 // Class to decode compressed SDD Raw Data format                //
11 // Origin: F.Prino, Torino, prino@to.infn.it                     //
12 //                                                               //
13 ///////////////////////////////////////////////////////////////////
14
15 #include "AliITSRawStream.h"
16 #include "AliITSDDLModuleMapSDD.h"
17
18 class AliRawReader;
19
20
21 class AliITSRawStreamSDDCompressed: public AliITSRawStream {
22   public :
23     AliITSRawStreamSDDCompressed(AliRawReader* rawReader);
24     AliITSRawStreamSDDCompressed(const AliITSRawStreamSDDCompressed& rs);
25     AliITSRawStreamSDDCompressed& operator=(const AliITSRawStreamSDDCompressed& rs);
26     virtual ~AliITSRawStreamSDDCompressed();
27
28     virtual Bool_t   Next();
29
30     virtual Int_t    GetAnode() const {return fCoord1;}
31     virtual Int_t    GetTime() const {return fCoord2;}
32     virtual Int_t    GetChannel() const {return fChannel;}
33     virtual Int_t    ReadJitter() const {return 0;}
34     virtual Int_t    GetCarlosId() const {return fCarlosId;}
35
36     virtual void SetDDLModuleMap(AliITSDDLModuleMapSDD* ddlsdd){fDDLModuleMap->SetDDLMap(ddlsdd);}
37     virtual void     SetZeroSuppLowThreshold(Int_t iMod, Int_t iSid, Int_t th) 
38       {fLowThresholdArray[iMod][iSid]=th;}
39     Int_t   GetModuleNumber(UInt_t iDDL, UInt_t iModule) const {
40       return fDDLModuleMap->GetModuleNumber(iDDL,iModule);
41     }
42
43     enum {kSDDModules = 260};      // number of SDD modules
44     enum {kSPDModules = 240};      // number of SPD modules (used as offset)
45     enum {kDDLsNumber = 24};       // number of DDLs in SDD
46     enum {kModulesPerDDL = 12};    // number of modules in each DDL 
47     enum {kCarlosWords = 12};      // number of FIFOCARLOS Words
48     enum {kFifoWords =  4};        // number of FIFO Words
49     enum ESDDRawStreamError { 
50       kDataError = 1,
51       kDataFormatErr = 2
52     };
53   protected:
54
55     virtual Int_t    DecompAmbra(Int_t value) const;
56     AliITSDDLModuleMapSDD* fDDLModuleMap; // mapping DDL/module -> module number 
57     UInt_t           fData;         // data read for file
58     Int_t            fCarlosId;     // carlos ID
59     Int_t            fChannel;      // current channel
60     Int_t            fJitter;          // jitter between L0 and pascal stop (x25ns)
61     Int_t            fLowThresholdArray[kSDDModules][2]; // array with low thresholds for all modules
62
63     Int_t            fDDL;        //current ddl number
64
65     ClassDef(AliITSRawStreamSDDCompressed, 1) // class for reading ITS SDD raw digits
66 };
67
68 #endif