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 */
8 ///////////////////////////////////////////////////////////////////////////////
10 /// This class provides access to PMD digits in raw data.
12 ///////////////////////////////////////////////////////////////////////////////
19 class AliPMDRawStream: public TObject {
21 AliPMDRawStream(AliRawReader* rawReader);
22 virtual ~AliPMDRawStream();
24 Int_t DdlData(TObjArray *pmdddlcont);
26 enum {kDDLOffset = 0xC00}; // offset for DDL numbers
28 enum EPMDRawStreamError {
29 kDDLIndexMismatch = 1,
35 AliPMDRawStream(const AliPMDRawStream& stream);
36 AliPMDRawStream& operator = (const AliPMDRawStream& stream);
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_t ComputeParity(UInt_t data1);
48 void Ddl0Mapping(Int_t moduleNo[], Int_t mcmperBus[],
49 Int_t startRowBus[], Int_t endRowBus[],
50 Int_t startColBus[], Int_t endColBus[]);
51 void Ddl1Mapping(Int_t moduleNo[], Int_t mcmperBus[],
52 Int_t startRowBus[], Int_t endRowBus[],
53 Int_t startColBus[], Int_t endColBus[]);
54 void Ddl2Mapping(Int_t moduleNo[], Int_t mcmperBus[],
55 Int_t startRowBus[], Int_t endRowBus[],
56 Int_t startColBus[], Int_t endColBus[]);
57 void Ddl3Mapping(Int_t moduleNo[], Int_t mcmperBus[],
58 Int_t startRowBus[], Int_t endRowBus[],
59 Int_t startColBus[], Int_t endColBus[]);
60 void Ddl4Mapping(Int_t moduleNo[], Int_t mcmperBus[],
61 Int_t startRowBus[], Int_t endRowBus[],
62 Int_t startColBus[], Int_t endColBus[]);
63 void Ddl5Mapping(Int_t moduleNo[], Int_t mcmperBus[],
64 Int_t startRowBus[], Int_t endRowBus[],
65 Int_t startColBus[], Int_t endColBus[]);
67 AliRawReader* fRawReader; // object for reading the raw data
68 UChar_t* fData; // pointer to the data
71 ClassDef(AliPMDRawStream, 6) // class for reading PMD raw digits