]>
Commit | Line | Data |
---|---|---|
a38a7850 | 1 | // XEmacs -*-C++-*- |
2 | // @(#) $Id$ | |
3 | ||
4 | #ifndef ALIHLTTPCDIGITREADERUNPACKED_H | |
5 | #define ALIHLTTPCDIGITREADERUNPACKED_H | |
6 | ||
297174de | 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 * | |
a38a7850 | 10 | |
84645eb0 | 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 | */ | |
a38a7850 | 16 | |
17 | #include "AliHLTTPCDigitReader.h" | |
18 | #include "AliHLTTPCDigitData.h" | |
19 | ||
20 | class AliHLTTPCDigitRowData; | |
21 | ||
84645eb0 | 22 | /** |
e962f438 | 23 | * @class AliHLTTPCDigitReaderUnpacked |
84645eb0 | 24 | * A digit reader implementation for unpacked TPC data. |
25 | * @ingroup alihlt_tpc | |
26 | */ | |
a38a7850 | 27 | class AliHLTTPCDigitReaderUnpacked : public AliHLTTPCDigitReader{ |
28 | public: | |
84645eb0 | 29 | /** standard constructor */ |
a38a7850 | 30 | AliHLTTPCDigitReaderUnpacked(); |
84645eb0 | 31 | /** destructor */ |
a38a7850 | 32 | virtual ~AliHLTTPCDigitReaderUnpacked(); |
5df0cbb9 | 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 | */ | |
84645eb0 | 41 | int InitBlock(void* ptr,unsigned long size, Int_t patch, Int_t slice); |
5d2abf3b | 42 | using AliHLTTPCDigitReader::InitBlock; |
5df0cbb9 | 43 | |
44 | /** | |
45 | * place the reader at the next signal | |
46 | * @return 1 if there was a nest signal, 0 if not | |
47 | */ | |
f44e97dc | 48 | bool NextSignal(); |
5df0cbb9 | 49 | |
50 | /** | |
51 | * Get row number of the current signal | |
52 | * @return row number of the current signal | |
53 | */ | |
a38a7850 | 54 | int GetRow(); |
5df0cbb9 | 55 | |
56 | /** | |
57 | * Get pad number of the current signal | |
58 | * @return pad number of the current signal | |
59 | */ | |
a38a7850 | 60 | int GetPad(); |
5df0cbb9 | 61 | |
62 | /** | |
63 | * Get signal | |
64 | * @return ADC signal | |
65 | */ | |
a38a7850 | 66 | int GetSignal(); |
5df0cbb9 | 67 | |
68 | /** | |
69 | * Get time of the current signal | |
70 | * @return time of the current signal | |
71 | */ | |
a38a7850 | 72 | int GetTime(); |
73 | ||
74 | protected: | |
75 | ||
76 | ||
77 | private: | |
8f8bf0af | 78 | /** copy constructor prohibited */ |
79 | AliHLTTPCDigitReaderUnpacked(const AliHLTTPCDigitReaderUnpacked&); | |
80 | /** assignment operator prohibited */ | |
81 | AliHLTTPCDigitReaderUnpacked& operator=(const AliHLTTPCDigitReaderUnpacked&); | |
82 | ||
67fada6b | 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 | ||
5df0cbb9 | 91 | /** intermediate row data structure (pointer in fPtr buffer) */ |
a38a7850 | 92 | AliHLTTPCDigitRowData *fDigitRowData; //! |
5df0cbb9 | 93 | /** current row data structure (pointer in fPtr buffer) */ |
a38a7850 | 94 | AliHLTTPCDigitRowData *fActRowData; //! |
5df0cbb9 | 95 | /** the current digit data */ |
a38a7850 | 96 | AliHLTTPCDigitData *fData; //! |
5df0cbb9 | 97 | |
98 | /** input buffer */ | |
84645eb0 | 99 | void* fPtr; //! |
5df0cbb9 | 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 | |
a38a7850 | 111 | |
112 | ClassDef(AliHLTTPCDigitReaderUnpacked, 0) | |
113 | }; | |
114 | #endif | |
115 | ||
116 | ||
117 |