New version of SPD raw-data reconstruction. The format now correponds to the actual...
[u/mrichter/AliRoot.git] / ITS / AliITSRawStreamSPD.h
1 #ifndef ALIITSRAWSTREAMSPD_H
2 #define ALIITSRAWSTREAMSPD_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 /// This class provides access to ITS SPD digits in raw data.
11 ///
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include "AliITSRawStream.h"
15
16
17 class AliITSRawStreamSPD: public AliITSRawStream {
18   public :
19     AliITSRawStreamSPD(AliRawReader* rawReader);
20     virtual ~AliITSRawStreamSPD() {};
21
22     virtual Bool_t   Next();
23     virtual void     SkipCalibHeader();
24
25     Int_t            GetRow() const {return fCoord2;};
26     Int_t            GetColumn() const {return fCoord1;};
27
28     enum {kDDLsNumber = 20};      // number of DDLs in SPD
29     enum {kModulesPerDDL = 12};   // number of modules in each DDL
30
31     static Int_t     GetModuleNumber(UInt_t iDDL, UInt_t iModule)
32       {return fgkDDLModuleMap[iDDL][iModule];}
33
34   private :
35     static const Int_t fgkDDLModuleMap[kDDLsNumber][kModulesPerDDL];  // mapping DDL/module -> module number
36
37     UShort_t         fData;         // data read for file
38     Int_t            fDDLNumber;    // current DDL number
39     Int_t            fEventNumber;  // event trigger number
40     UInt_t           fOffset;       // offset for cell column
41     UInt_t           fHitCount;     // counter of hits
42
43     UChar_t          fDataChar1, fDataChar2, fDataChar3, fDataChar4; // temps part of a 32bit word
44     Bool_t           fFirstWord;      // keeps track of which of the two 16bit words out of the 32bit word to read
45     Bool_t           ReadNextShort();
46
47     ClassDef(AliITSRawStreamSPD, 0) // class for reading ITS SPD raw digits
48 };
49
50 #endif