]>
Commit | Line | Data |
---|---|---|
3e6ec852 | 1 | //-*- Mode: C++ -*- |
2 | // @(#) $Id$ | |
3 | ||
4 | #ifndef ALIHLTTPCDIGITDUMPCOMPONENT_H | |
5 | #define ALIHLTTPCDIGITDUMPCOMPONENT_H | |
297174de | 6 | //* This file is property of and copyright by the ALICE HLT Project * |
7 | //* ALICE Experiment at CERN, All rights reserved. * | |
8 | //* See cxx source for full Copyright notice * | |
3e6ec852 | 9 | |
10 | /** @file AliHLTTPCDigitDumpComponent.h | |
11 | @author Matthias Richter | |
12 | @date | |
13 | @brief Special file writer converting TPC digit input to ASCII. | |
14 | */ | |
15 | ||
3e6ec852 | 16 | #include "AliHLTFileWriter.h" |
17 | ||
18 | /** | |
19 | * @class AliHLTTPCDigitDumpComponent | |
20 | * A converter for digit data of the TPC input to ASCII output. | |
2efb85be | 21 | * Data blocks of type ::kAliHLTDataTypeDDLRaw and origin 'TPC ' is docoded |
32a35f9f | 22 | * written in readable ASCII format to a file. |
3e6ec852 | 23 | * |
24 | * Component ID: \b TPCDigitDump <br> | |
25 | * Library: \b libAliHLTTPC | |
26 | * | |
27 | * See AliHLTFileWriter for arguments, further specific options | |
28 | * Mandatory arguments: <br> | |
1ac82ce6 | 29 | * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting --> |
3e6ec852 | 30 | * |
31 | * Optional arguments: <br> | |
1ac82ce6 | 32 | * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting --> |
8c27b00a | 33 | * \li -digitreader <i> reader </i> <br> |
7c9a4e09 | 34 | * type of the digit reader: <i>unpacked, packed, raw, decoder</i> |
35 | * default 'decoder' | |
70d0b23e | 36 | * \li -rcutrailersize <i> size </i> <br> |
7c9a4e09 | 37 | * size of the RCU trailer in 32bit words (default 2), if digitreader |
38 | * 'decoder' is used, the trailer size is determined automatically | |
70d0b23e | 39 | * \li -unsorted <br> |
40 | * unsorted mode of digit readers (default sorted) | |
41 | * \li -sorted <br> | |
42 | * sorted mode of digit readers (default) | |
3e6ec852 | 43 | * |
2efb85be | 44 | * @ingroup alihlt_tpc_components |
3e6ec852 | 45 | */ |
46 | class AliHLTTPCDigitDumpComponent : public AliHLTFileWriter { | |
47 | public: | |
48 | /** default constructor */ | |
49 | AliHLTTPCDigitDumpComponent(); | |
50 | /** destructor */ | |
51 | virtual ~AliHLTTPCDigitDumpComponent(); | |
52 | ||
53 | // interface functions: property getters | |
54 | virtual const char* GetComponentID(); | |
55 | virtual void GetInputDataTypes(AliHLTComponentDataTypeList& list); | |
56 | virtual AliHLTComponent* Spawn(); | |
57 | ||
58 | protected: | |
59 | // interface functions: processing | |
00b50bfa | 60 | int InitWriter(); |
61 | int CloseWriter(); | |
62 | int DumpEvent( const AliHLTComponentEventData& evtData, | |
63 | const AliHLTComponentBlockData* blocks, | |
64 | AliHLTComponentTriggerData& trigData ); | |
65 | using AliHLTDataSink::DumpEvent; | |
66 | ||
67 | int ScanArgument(int argc, const char** argv); | |
3e6ec852 | 68 | |
3e6ec852 | 69 | private: |
70 | /** copy constructor prohibited */ | |
71 | AliHLTTPCDigitDumpComponent(const AliHLTTPCDigitDumpComponent&); | |
72 | /** assignment operator prohibited */ | |
73 | AliHLTTPCDigitDumpComponent& operator=(const AliHLTTPCDigitDumpComponent&); | |
74 | ||
8c27b00a | 75 | enum { |
76 | kDigitReaderInvalid, | |
77 | kDigitReaderUnpacked, | |
78 | kDigitReaderPacked, | |
51b88d1e | 79 | kDigitReaderRaw, // deprecated but kept for backward compatiobility of macros |
7c9a4e09 | 80 | kDigitReaderDecoder |
8c27b00a | 81 | }; |
82 | ||
8c27b00a | 83 | /** the digit reader to use */ |
84 | short fDigitReaderType; //!transient | |
85 | ||
70d0b23e | 86 | /** size of the RCU trailer in 32bit words */ |
87 | short fRcuTrailerSize; //! transient | |
88 | ||
89 | /** unsorted/sorted mode of digit readers */ | |
90 | bool fUnsorted; //!transient | |
91 | ||
51b88d1e | 92 | ClassDef(AliHLTTPCDigitDumpComponent, 1); |
3e6ec852 | 93 | }; |
94 | ||
95 | #endif |