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