]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSRawStreamSDDCompressed.h
Method AliITSRawStream::GetJitter is defined const as it should be. Classes AliITSRaw...
[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    GetJitter() const {return fJitter;}
34     virtual Int_t    GetCarlosId() const {return fCarlosId;}
35     virtual UInt_t   GetDataWord() const {return fData;}
36
37     virtual void SetDDLModuleMap(AliITSDDLModuleMapSDD* ddlsdd){
38       if(!fDDLModuleMap) fDDLModuleMap=new AliITSDDLModuleMapSDD();
39       fDDLModuleMap->SetDDLMap(ddlsdd);
40     }
41     virtual void     SetZeroSuppLowThreshold(Int_t iMod, Int_t iSid, Int_t th) 
42       {fLowThresholdArray[iMod][iSid]=th;}
43     Int_t   GetModuleNumber(UInt_t iDDL, UInt_t iModule) const {
44       if(!fDDLModuleMap) return kSPDModules+1; // dummy module number if the DDL map is not set (case of DAs)
45       return fDDLModuleMap->GetModuleNumber(iDDL,iModule);
46     }
47
48     enum {kSDDModules = 260};      // number of SDD modules
49     enum {kSPDModules = 240};      // number of SPD modules (used as offset)
50     enum {kDDLsNumber = 24};       // number of DDLs in SDD
51     enum {kModulesPerDDL = 12};    // number of modules in each DDL 
52     enum {kCarlosWords = 12};      // number of FIFOCARLOS Words
53     enum {kFifoWords =  4};        // number of FIFO Words
54     enum ESDDRawStreamError { 
55       kDataError = 1,
56       kDataFormatErr = 2
57     };
58   protected:
59
60     virtual Int_t    DecompAmbra(Int_t value) const;
61     AliITSDDLModuleMapSDD* fDDLModuleMap; // mapping DDL/module -> module number 
62     UInt_t           fData;         // data read for file
63     Int_t            fCarlosId;     // carlos ID
64     Int_t            fChannel;      // current channel
65     Int_t            fJitter;          // jitter between L0 and pascal stop (x25ns)
66     Int_t            fLowThresholdArray[kSDDModules][2]; // array with low thresholds for all modules
67
68     Int_t            fDDL;        //current ddl number
69
70     ClassDef(AliITSRawStreamSDDCompressed, 1) // class for reading ITS SDD raw digits
71 };
72
73 #endif