4 #ifndef ALIHLTTPCDIGITREADERPACKED_H
5 #define ALIHLTTPCDIGITREADERPACKED_H
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 *
11 /** @file AliHLTTPCDigitReaderPacked.h
12 @author Timm Steinbeck, Jochen Thaeder, Matthias Richter, Kenneth Aamodt
14 @brief A digit reader implementation for simulated, packed TPC 'raw' data.
17 //#define ENABLE_PAD_SORTING 1
19 #include "AliHLTTPCDigitReader.h"
22 class AliRawReaderMemory;
23 class AliTPCRawStream;
26 * @class AliHLTTPCDigitReaderPacked
27 * A digit reader implementation for simulated, packed TPC 'raw' data.
28 * Includes reordering of the pads by default, sorting (and time and
29 * memory consuming intermediate storing of the data) can be disabled
30 * by @ref SetUnsorted() with argument <b>kTRUE</b>.
34 class AliHLTTPCDigitReaderPacked : public AliHLTTPCDigitReader{
36 /** standard constructor */
37 AliHLTTPCDigitReaderPacked();
39 virtual ~AliHLTTPCDigitReaderPacked();
42 * Init the reader with a data block.
43 * The function fetches the first and last row for the readout partition
44 * from @ref AliHLTTPCTransform.
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)
50 Int_t InitBlock(void* ptr,ULong_t size, Int_t patch, Int_t slice);
51 void SetUnsorted(bool unsorted){fUnsorted=unsorted;}
59 AliHLTUInt32_t GetAltroBlockHWaddr() const;
61 const UInt_t* GetSignals();
62 Int_t GetTimeOfUnsortedSignal();
67 /** copy constructor prohibited */
68 AliHLTTPCDigitReaderPacked(const AliHLTTPCDigitReaderPacked&);
69 /** assignment operator prohibited */
70 AliHLTTPCDigitReaderPacked& operator=(const AliHLTTPCDigitReaderPacked&);
72 // Initialize AliROOT TPC raw stream parsing class
73 AliRawReaderMemory *fRawMemoryReader; //!transient
75 AliTPCRawStream *fTPCRawStream; //!transient
77 //#if ENABLE_PAD_SORTING
78 Int_t fCurrentRow; //!transient
79 Int_t fCurrentPad; //!transient
80 Int_t fCurrentBin; //!transient
82 Int_t fRowOffset; //!transient
83 Int_t fNRows; //!transient
85 Int_t fNMaxRows; //!transient
86 Int_t fNMaxPads; //!transient
87 Int_t fNTimeBins; //!transient
89 Int_t *fData; //!transient
90 //#endif // ENABLE_PAD_SORTING
92 Bool_t fUnsorted; //!transient
94 vector<UInt_t> fDataBunch;
95 Bool_t fNextChannelFlag;
97 ClassDef(AliHLTTPCDigitReaderPacked, 3)