]>
Commit | Line | Data |
---|---|---|
a09a2da4 | 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 | ||
722ccc67 | 24 | Int_t DdlData(TObjArray *pmdddlcont); |
a09a2da4 | 25 | |
26 | enum {kDDLOffset = 0xC00}; // offset for DDL numbers | |
27 | ||
608c1f27 | 28 | enum EPMDRawStreamError { |
29 | kDDLIndexMismatch = 1, | |
30 | kNoMappingFile = 2, | |
31 | kParityError = 3 | |
32 | }; | |
33 | ||
a09a2da4 | 34 | private : |
35 | AliPMDRawStream(const AliPMDRawStream& stream); | |
36 | AliPMDRawStream& operator = (const AliPMDRawStream& stream); | |
37 | ||
08cf9354 | 38 | void GetRowCol(Int_t imodule, Int_t pbusid, |
34ab69dd | 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; | |
e54787da | 45 | void TransformH2S(Int_t smn, Int_t &row, Int_t &col) const; |
722ccc67 | 46 | Int_t ComputeParity(UInt_t data1); |
47 | UInt_t GetNextWord(); | |
08cf9354 | 48 | void Ddl0Mapping(Int_t modulePerDDL, |
49 | Int_t moduleNo[], Int_t mcmperBus[], | |
89f0ae35 | 50 | Int_t startRowBus[], Int_t endRowBus[], |
51 | Int_t startColBus[], Int_t endColBus[]); | |
08cf9354 | 52 | void Ddl1Mapping(Int_t modulePerDDL, |
53 | Int_t moduleNo[], Int_t mcmperBus[], | |
89f0ae35 | 54 | Int_t startRowBus[], Int_t endRowBus[], |
55 | Int_t startColBus[], Int_t endColBus[]); | |
08cf9354 | 56 | void Ddl2Mapping(Int_t modulePerDDL, |
57 | Int_t moduleNo[], Int_t mcmperBus[], | |
89f0ae35 | 58 | Int_t startRowBus[], Int_t endRowBus[], |
59 | Int_t startColBus[], Int_t endColBus[]); | |
08cf9354 | 60 | void Ddl3Mapping(Int_t modulePerDDL, |
61 | Int_t moduleNo[], Int_t mcmperBus[], | |
89f0ae35 | 62 | Int_t startRowBus[], Int_t endRowBus[], |
63 | Int_t startColBus[], Int_t endColBus[]); | |
08cf9354 | 64 | void Ddl4Mapping(Int_t modulePerDDL, |
65 | Int_t moduleNo[], Int_t mcmperBus[], | |
89f0ae35 | 66 | Int_t startRowBus[], Int_t endRowBus[], |
67 | Int_t startColBus[], Int_t endColBus[]); | |
08cf9354 | 68 | void Ddl5Mapping(Int_t modulePerDDL, |
69 | Int_t moduleNo[], Int_t mcmperBus[], | |
89f0ae35 | 70 | Int_t startRowBus[], Int_t endRowBus[], |
71 | Int_t startColBus[], Int_t endColBus[]); | |
a09a2da4 | 72 | |
73 | AliRawReader* fRawReader; // object for reading the raw data | |
722ccc67 | 74 | UChar_t* fData; // pointer to the data |
75 | Int_t fPosition; | |
a09a2da4 | 76 | |
08cf9354 | 77 | ClassDef(AliPMDRawStream, 7) // class for reading PMD raw digits |
a09a2da4 | 78 | }; |
79 | ||
80 | #endif |