]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PMD/AliPMDRawStream.h
final raw data mapping
[u/mrichter/AliRoot.git] / PMD / AliPMDRawStream.h
1 #ifndef ALIPMDRAWSTREAM_H
2 #define ALIPMDRAWSTREAM_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 PMD digits in raw data.
11 ///
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include <TObject.h>
15
16 class AliRawReader;
17
18
19 class AliPMDRawStream: public TObject {
20   public :
21     AliPMDRawStream(AliRawReader* rawReader);
22     virtual ~AliPMDRawStream();
23
24     Bool_t DdlData(Int_t indexDDL, TObjArray *pmdddlcont);
25
26     enum {kDDLOffset = 0xC00};      // offset for DDL numbers
27
28     enum EPMDRawStreamError {
29       kDDLIndexMismatch = 1,
30       kNoMappingFile = 2,
31       kParityError = 3
32     };
33
34   private :
35     AliPMDRawStream(const AliPMDRawStream& stream);
36     AliPMDRawStream& operator = (const AliPMDRawStream& stream);
37
38     void             GetRowCol(Int_t ddlno, Int_t smn, Int_t pbusid, 
39                                UInt_t mcmno, UInt_t chno,
40                                Int_t startRowBus[], Int_t endRowBus[],
41                                Int_t startColBus[], Int_t endColBus[],
42                                Int_t &row, Int_t &col) const;
43     void             ConvertDDL2SMN(Int_t iddl, Int_t imodule,
44                                     Int_t &smn, Int_t &detector) const;
45     void             TransformH2S(Int_t smn, Int_t &row, Int_t &col) const;
46     int              ComputeParity(Int_t data);
47
48     AliRawReader*    fRawReader;    // object for reading the raw data
49
50
51     ClassDef(AliPMDRawStream, 4)    // class for reading PMD raw digits
52 };
53
54 #endif