]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCDigitReaderUnpacked.h
code documentation
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDigitReaderUnpacked.h
1 // XEmacs -*-C++-*-
2 // @(#) $Id$
3
4 #ifndef ALIHLTTPCDIGITREADERUNPACKED_H
5 #define ALIHLTTPCDIGITREADERUNPACKED_H
6
7 // Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
8 // See cxx source for full Copyright notice                               */
9
10 /** @file   AliHLTTPCDigitReaderUnpacked.h
11     @author Timm Steinbeck, Jochen Thaeder, Matthias Richter
12     @date   
13     @brief  A digit reader implementation for unpacked TPC data.
14 */
15
16 #include "AliHLTTPCDigitReader.h"
17 #include "AliHLTTPCDigitData.h"
18
19 class AliHLTTPCDigitRowData;
20
21 /**
22  * @class AliHLTTPCDigitReaderUnpacked
23  * A digit reader implementation for unpacked TPC data.
24  * @ingroup alihlt_tpc
25  */
26 class AliHLTTPCDigitReaderUnpacked : public AliHLTTPCDigitReader{
27 public:
28   /** standard constructor */
29   AliHLTTPCDigitReaderUnpacked();
30   /** destructor */
31   virtual ~AliHLTTPCDigitReaderUnpacked();
32
33   /**
34    * Init the reader
35    * @param ptr    pointer to input buffer
36    * @param size   size of the input buffer
37    * @param patch  readout partition
38    * @param slice  sector no
39    */  
40   int InitBlock(void* ptr,unsigned long size, Int_t patch, Int_t slice);
41   using AliHLTTPCDigitReader::InitBlock;
42
43   /**
44    * place the reader at the next signal
45    * @return 1 if there was a nest signal, 0 if not
46    */
47   bool NextSignal();
48
49   /**
50    * Get row number of the current signal
51    * @return row number of the current signal
52    */
53   int GetRow();
54
55   /**
56    * Get pad number of the current signal
57    * @return pad number of the current signal
58    */
59   int GetPad();
60
61   /**
62    * Get signal
63    * @return ADC signal
64    */
65   int GetSignal();
66
67   /**
68    * Get time of the current signal
69    * @return time of the current signal
70    */
71   int GetTime();
72   
73 protected:
74
75
76 private:
77   /** copy constructor prohibited */
78   AliHLTTPCDigitReaderUnpacked(const AliHLTTPCDigitReaderUnpacked&);
79   /** assignment operator prohibited */
80   AliHLTTPCDigitReaderUnpacked& operator=(const AliHLTTPCDigitReaderUnpacked&);
81
82   /**
83    * Increment to the next raw data pointer.
84    * @param pRow        [IN] the current row data pointer
85    *                    [OUT] the new pointer
86    * @return -EBADF in case of format error 
87    */
88   int GetNextRowData(AliHLTTPCDigitRowData*& pRow) const;
89
90   /** intermediate row data structure (pointer in fPtr buffer) */
91   AliHLTTPCDigitRowData *fDigitRowData; //!
92   /** current row data structure (pointer in fPtr buffer) */
93   AliHLTTPCDigitRowData *fActRowData; //!
94   /** the current digit data */
95   AliHLTTPCDigitData *fData; //!
96
97   /** input buffer */
98   void* fPtr; //!
99   /** size of the input buffer */
100   unsigned long fSize;                                             // see above
101
102   /** current bin */
103   Int_t fBin;                                                      // see above
104   /** current row */
105   Int_t fRow;                                                      // see above
106   /** first row */
107   Int_t fFirstRow;                                                 // see above
108   /** last row */
109   Int_t fLastRow;                                                  // see above
110
111   ClassDef(AliHLTTPCDigitReaderUnpacked, 0)
112 };
113 #endif
114
115  
116