]>
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; | |
3d8b8ac5 | 17 | class AliCDBManager; |
18 | class AliCDBStorage; | |
19 | class AliCDBEntry; | |
20 | class AliPMDMappingData; | |
a09a2da4 | 21 | |
22 | ||
23 | class AliPMDRawStream: public TObject { | |
24 | public : | |
25 | AliPMDRawStream(AliRawReader* rawReader); | |
26 | virtual ~AliPMDRawStream(); | |
27 | ||
722ccc67 | 28 | Int_t DdlData(TObjArray *pmdddlcont); |
a09a2da4 | 29 | |
30 | enum {kDDLOffset = 0xC00}; // offset for DDL numbers | |
31 | ||
608c1f27 | 32 | enum EPMDRawStreamError { |
33 | kDDLIndexMismatch = 1, | |
34 | kNoMappingFile = 2, | |
35 | kParityError = 3 | |
36 | }; | |
37 | ||
a09a2da4 | 38 | private : |
39 | AliPMDRawStream(const AliPMDRawStream& stream); | |
40 | AliPMDRawStream& operator = (const AliPMDRawStream& stream); | |
41 | ||
08cf9354 | 42 | void GetRowCol(Int_t imodule, Int_t pbusid, |
34ab69dd | 43 | UInt_t mcmno, UInt_t chno, |
44 | Int_t startRowBus[], Int_t endRowBus[], | |
45 | Int_t startColBus[], Int_t endColBus[], | |
46 | Int_t &row, Int_t &col) const; | |
47 | void ConvertDDL2SMN(Int_t iddl, Int_t imodule, | |
48 | Int_t &smn, Int_t &detector) const; | |
e54787da | 49 | void TransformH2S(Int_t smn, Int_t &row, Int_t &col) const; |
722ccc67 | 50 | Int_t ComputeParity(UInt_t data1); |
51 | UInt_t GetNextWord(); | |
3d8b8ac5 | 52 | void Ddl0Mapping(Int_t moduleNo[], Int_t mcmperBus[], |
89f0ae35 | 53 | Int_t startRowBus[], Int_t endRowBus[], |
54 | Int_t startColBus[], Int_t endColBus[]); | |
3d8b8ac5 | 55 | void Ddl1Mapping(Int_t moduleNo[], Int_t mcmperBus[], |
89f0ae35 | 56 | Int_t startRowBus[], Int_t endRowBus[], |
57 | Int_t startColBus[], Int_t endColBus[]); | |
3d8b8ac5 | 58 | void Ddl2Mapping(Int_t moduleNo[], Int_t mcmperBus[], |
89f0ae35 | 59 | Int_t startRowBus[], Int_t endRowBus[], |
60 | Int_t startColBus[], Int_t endColBus[]); | |
3d8b8ac5 | 61 | void Ddl3Mapping(Int_t moduleNo[], Int_t mcmperBus[], |
89f0ae35 | 62 | Int_t startRowBus[], Int_t endRowBus[], |
63 | Int_t startColBus[], Int_t endColBus[]); | |
3d8b8ac5 | 64 | void Ddl4Mapping(Int_t moduleNo[], Int_t mcmperBus[], |
89f0ae35 | 65 | Int_t startRowBus[], Int_t endRowBus[], |
66 | Int_t startColBus[], Int_t endColBus[]); | |
3d8b8ac5 | 67 | void Ddl5Mapping(Int_t moduleNo[], Int_t mcmperBus[], |
89f0ae35 | 68 | Int_t startRowBus[], Int_t endRowBus[], |
69 | Int_t startColBus[], Int_t endColBus[]); | |
a09a2da4 | 70 | |
3d8b8ac5 | 71 | AliPMDMappingData *GetMappingData() const; |
72 | ||
a09a2da4 | 73 | AliRawReader* fRawReader; // object for reading the raw data |
722ccc67 | 74 | UChar_t* fData; // pointer to the data |
75 | Int_t fPosition; | |
a09a2da4 | 76 | |
3d8b8ac5 | 77 | AliPMDMappingData *fMapData; //! Mapping data |
78 | ||
79 | ClassDef(AliPMDRawStream, 8) // class for reading PMD raw digits | |
a09a2da4 | 80 | }; |
81 | ||
82 | #endif |