]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCDigitDumpComponent.h
adding pointer protection
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCDigitDumpComponent.h
index 6236d93f8742c02277e9fcb2aa4acf16e2092f99..15ae45f80f3a66b66ca889218dc38e845659ad51 100644 (file)
@@ -3,9 +3,9 @@
 
 #ifndef ALIHLTTPCDIGITDUMPCOMPONENT_H
 #define ALIHLTTPCDIGITDUMPCOMPONENT_H
-/* This file is property of and copyright by the ALICE HLT Project        * 
- * ALICE Experiment at CERN, All rights reserved.                         *
- * See cxx source for full Copyright notice                               */
+//* This file is property of and copyright by the ALICE HLT Project        * 
+//* ALICE Experiment at CERN, All rights reserved.                         *
+//* See cxx source for full Copyright notice                               *
 
 /** @file   AliHLTTPCDigitDumpComponent.h
     @author Matthias Richter
     @brief  Special file writer converting TPC digit input to ASCII.
 */
 
-// see below for class documentation
-// or
-// refer to README to build package
-// or
-// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt   
-
 #include "AliHLTFileWriter.h"
 
+class AliHLTTPCDigitReader;
+
 /**
  * @class AliHLTTPCDigitDumpComponent
  * A converter for digit data of the TPC input to ASCII output.
  * Data blocks of type ::kAliHLTDataTypeDDLRaw and origin 'TPC ' is docoded
  * written in readable ASCII format to a file.
  * 
+ * The component supports different types of readers in order to
+ * choose different data formats (raw/digits) and reading modes.
+ *
  * Component ID: \b TPCDigitDump <br>
  * Library: \b libAliHLTTPC
  *
  * \li -rcutrailersize    <i> size   </i> <br>
  *      size of the RCU trailer in 32bit words (default 2), if digitreader
  *      'decoder' is used, the trailer size is determined automatically
- * \li -rawreadermode  <i> mode   </i> <br>
- *      data mode of the <b>AliHLTTPCDigitReaderRaw</b> 
  * \li -unsorted <br>
- *      unsorted mode of digit readers (default sorted)
+ *      unsorted mode of digit readers (default mode)
  * \li -sorted <br>
- *      sorted mode of digit readers (default)
+ *      sorted mode of digit readers (default is unsorted)
+ * \li -bulk <br>
+ *      bulk read mode: NextChannel/Bunch
+ * \li -stream <br>
+ *      stream read mode: Next
  *
  * @ingroup alihlt_tpc_components
  */
@@ -80,17 +81,24 @@ class AliHLTTPCDigitDumpComponent : public AliHLTFileWriter {
   /** assignment operator prohibited */
   AliHLTTPCDigitDumpComponent& operator=(const AliHLTTPCDigitDumpComponent&);
 
+  /**
+   * Print slice/partition/row/pad header if changed.
+   */
+  int PrintHeaders(int slice, int &iPrintedSlice,
+                  int part, int &iPrintedPart,
+                  AliHLTTPCDigitReader* pReader,
+                  int &iPrintedRow, int &iPrintedPad,
+                  ofstream &dump) const;
+
   enum {
     kDigitReaderInvalid,
     kDigitReaderUnpacked,
     kDigitReaderPacked,
-    kDigitReaderRaw,
-    kDigitReaderDecoder
+    kDigitReaderRaw, // deprecated but kept for backward compatiobility of macros
+    kDigitReaderDecoder,
+    kDigitReader32Bit
   };
 
-  /** the mode for the DigitReaderRaw */
-  unsigned fRawreaderMode; //!transient
-
   /** the digit reader to use */
   short fDigitReaderType; //!transient
 
@@ -100,6 +108,15 @@ class AliHLTTPCDigitDumpComponent : public AliHLTFileWriter {
   /** unsorted/sorted mode of digit readers */
   bool fUnsorted; //!transient
 
+  /** bulk read mode */
+  bool fbBulkMode; //!transient
+
+  /** the digit reader */
+  AliHLTTPCDigitReader* fpReader; //!transient
+
+  /** flag if 32 bit format is used */
+  Bool_t f32BitFormat;
+
   ClassDef(AliHLTTPCDigitDumpComponent, 0);
 };