]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCDigitReaderPacked.h
added consistency check for track parameters when reading data into a TrackArray
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDigitReaderPacked.h
CommitLineData
a38a7850 1// XEmacs -*-C++-*-
2// @(#) $Id$
3
4#ifndef ALIHLTTPCDIGITREADERPACKED_H
5#define ALIHLTTPCDIGITREADERPACKED_H
6
e962f438 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 AliHLTTPCDigitReaderPacked.h
27f5f8ed 12 @author Timm Steinbeck, Jochen Thaeder, Matthias Richter, Kenneth Aamodt
84645eb0 13 @date
14 @brief A digit reader implementation for simulated, packed TPC 'raw' data.
15*/
16
aff6e981 17//#define ENABLE_PAD_SORTING 1
a38a7850 18
19#include "AliHLTTPCDigitReader.h"
adc5a9e9 20#include <vector>
a38a7850 21
22class AliRawReaderMemory;
23class AliTPCRawStream;
24
84645eb0 25/**
26 * @class AliHLTTPCDigitReaderPacked
27 * A digit reader implementation for simulated, packed TPC 'raw' data.
aff6e981 28 * Includes reordering of the pads by default, sorting (and time and
29 * memory consuming intermediate storing of the data) can be disabled
e962f438 30 * by @ref SetUnsorted() with argument <b>kTRUE</b>.
297174de 31 *
84645eb0 32 * @ingroup alihlt_tpc
33 */
a38a7850 34class AliHLTTPCDigitReaderPacked : public AliHLTTPCDigitReader{
35public:
84645eb0 36 /** standard constructor */
37 AliHLTTPCDigitReaderPacked();
84645eb0 38 /** destructor */
39 virtual ~AliHLTTPCDigitReaderPacked();
a38a7850 40
84645eb0 41 /**
42 * Init the reader with a data block.
43 * The function fetches the first and last row for the readout partition
e962f438 44 * from @ref AliHLTTPCTransform.
84645eb0 45 * @param ptr pointer to data buffer
46 * @param size size of the data buffer
47 * @param patch patch (readout partition) number within the slice
48 * @param slice sector no (0 to 35)
49 */
50 Int_t InitBlock(void* ptr,ULong_t size, Int_t patch, Int_t slice);
aff6e981 51 void SetUnsorted(bool unsorted){fUnsorted=unsorted;}
f44e97dc 52 Bool_t NextSignal();
84645eb0 53 Int_t GetRow();
54 Int_t GetPad();
55 Int_t GetSignal();
56 Int_t GetTime();
adc5a9e9 57 bool NextChannel();
58 int NextBunch();
70d0b23e 59 AliHLTUInt32_t GetAltroBlockHWaddr() const;
adc5a9e9 60 int GetBunchSize();
61 const UInt_t* GetSignals();
62 Int_t GetTimeOfUnsortedSignal();
db16520a 63
a38a7850 64protected:
db16520a 65
a38a7850 66private:
8f8bf0af 67 /** copy constructor prohibited */
68 AliHLTTPCDigitReaderPacked(const AliHLTTPCDigitReaderPacked&);
69 /** assignment operator prohibited */
70 AliHLTTPCDigitReaderPacked& operator=(const AliHLTTPCDigitReaderPacked&);
71
27f5f8ed 72 // Initialize AliROOT TPC raw stream parsing class
aff6e981 73 AliRawReaderMemory *fRawMemoryReader; //!transient
db16520a 74
aff6e981 75 AliTPCRawStream *fTPCRawStream; //!transient
a38a7850 76
aff6e981 77 //#if ENABLE_PAD_SORTING
78 Int_t fCurrentRow; //!transient
79 Int_t fCurrentPad; //!transient
80 Int_t fCurrentBin; //!transient
db16520a 81
aff6e981 82 Int_t fRowOffset; //!transient
83 Int_t fNRows; //!transient
db16520a 84
aff6e981 85 Int_t fNMaxRows; //!transient
86 Int_t fNMaxPads; //!transient
87 Int_t fNTimeBins; //!transient
db16520a 88
13398559 89 Int_t *fData; //!transient
aff6e981 90 //#endif // ENABLE_PAD_SORTING
27f5f8ed 91
aff6e981 92 Bool_t fUnsorted; //!transient
27f5f8ed 93
adc5a9e9 94 vector<UInt_t> fDataBunch;
95 Bool_t fNextChannelFlag;
96 Int_t fCurrentPatch;
97 ClassDef(AliHLTTPCDigitReaderPacked, 3)
db16520a 98
a38a7850 99};
a38a7850 100
74c73e5a 101#endif