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 virtual Bool_t Next();
26 Int_t GetModule() const {return fModule;};
27 Int_t GetPrevModule() const {return fPrevModule;};
28 Bool_t IsNewModule() const {return fModule != fPrevModule;};
29 Int_t GetMCM() const {return fMCM;};
30 Int_t GetChannel() const {return fChannel;};
31 Int_t GetRow() const {return fRow;};
32 Int_t GetColumn() const {return fColumn;};
33 Int_t GetSignal() const {return fSignal;};
34 Int_t GetDetector() const {return fDetector;};
35 Int_t GetSMN() const {return fSMN;};
38 enum {kDDLOffset = 0xC00}; // offset for DDL numbers
41 AliPMDRawStream(const AliPMDRawStream& stream);
42 AliPMDRawStream& operator = (const AliPMDRawStream& stream);
44 void GetRowCol(Int_t ddlno, UInt_t mcmno, UInt_t chno,
45 Int_t &um, Int_t &row, Int_t &col) const;
47 AliRawReader* fRawReader; // object for reading the raw data
49 Int_t fModule; // index of current module
50 Int_t fPrevModule; // index of previous module
51 Int_t fMCM; // index of current MCM
52 Int_t fChannel; // index of current channel
53 Int_t fRow; // index of current row
54 Int_t fColumn; // index of current column
55 Int_t fSignal; // signal in ADC counts
56 Int_t fDetector; // PRE = 0, CPV = 1
57 Int_t fSMN; // serial module number (0-23)
59 ClassDef(AliPMDRawStream, 0) // class for reading PMD raw digits