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 ///////////////////////////////////////////////////////////////////////////////
20 class AliPMDMappingData;
23 class AliPMDRawStream: public TObject {
25 AliPMDRawStream(AliRawReader* rawReader);
26 virtual ~AliPMDRawStream();
28 Int_t DdlData(TObjArray *pmdddlcont);
30 enum {kDDLOffset = 0xC00}; // offset for DDL numbers
32 enum EPMDRawStreamError {
33 kDDLIndexMismatch = 1,
39 AliPMDRawStream(const AliPMDRawStream& stream);
40 AliPMDRawStream& operator = (const AliPMDRawStream& stream);
42 void GetRowCol(Int_t imodule, Int_t pbusid,
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;
49 void TransformH2S(Int_t smn, Int_t &row, Int_t &col) const;
50 Int_t ComputeParity(UInt_t data1);
52 void Ddl0Mapping(Int_t moduleNo[], Int_t mcmperBus[],
53 Int_t startRowBus[], Int_t endRowBus[],
54 Int_t startColBus[], Int_t endColBus[]);
55 void Ddl1Mapping(Int_t moduleNo[], Int_t mcmperBus[],
56 Int_t startRowBus[], Int_t endRowBus[],
57 Int_t startColBus[], Int_t endColBus[]);
58 void Ddl2Mapping(Int_t moduleNo[], Int_t mcmperBus[],
59 Int_t startRowBus[], Int_t endRowBus[],
60 Int_t startColBus[], Int_t endColBus[]);
61 void Ddl3Mapping(Int_t moduleNo[], Int_t mcmperBus[],
62 Int_t startRowBus[], Int_t endRowBus[],
63 Int_t startColBus[], Int_t endColBus[]);
64 void Ddl4Mapping(Int_t moduleNo[], Int_t mcmperBus[],
65 Int_t startRowBus[], Int_t endRowBus[],
66 Int_t startColBus[], Int_t endColBus[]);
67 void Ddl5Mapping(Int_t moduleNo[], Int_t mcmperBus[],
68 Int_t startRowBus[], Int_t endRowBus[],
69 Int_t startColBus[], Int_t endColBus[]);
71 AliPMDMappingData *GetMappingData() const;
73 AliRawReader* fRawReader; // object for reading the raw data
74 UChar_t* fData; // pointer to the data
77 AliPMDMappingData *fMapData; //! Mapping data
79 ClassDef(AliPMDRawStream, 8) // class for reading PMD raw digits