implemented TPCDigitDump and AltroChannelSelector
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTAltroChannelSelectorComponent.h
1 //-*- Mode: C++ -*-
2 // @(#) $Id$
3
4 #ifndef ALIHLTALTROCHANNELSELECTORCOMPONENT_H
5 #define ALIHLTALTROCHANNELSELECTORCOMPONENT_H
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                               */
9
10 /** @file   AliHLTAltroChannelSelectorComponent.h
11     @author Matthias Richter
12     @date   
13     @brief  Special file writer converting TPC digit input to ASCII.
14 */
15
16 // see below for class documentation
17 // or
18 // refer to README to build package
19 // or
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt   
21
22 #include "AliHLTProcessor.h"
23
24 /**
25  * @class AliHLTAltroChannelSelectorComponent
26  * A converter for digit data of the TPC input to ASCII output.
27  * Data is written to file.
28  * 
29  * Component ID: \b AltroChannelSelector <br>
30  * Library: \b libAliHLTTPC
31  *
32  * Mandatory arguments: <br>
33  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
34  *
35  * Optional arguments: <br>
36  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
37  *
38  */
39 class AliHLTAltroChannelSelectorComponent : public AliHLTProcessor {
40  public:
41   /** default constructor */
42   AliHLTAltroChannelSelectorComponent();
43   /** destructor */
44   virtual ~AliHLTAltroChannelSelectorComponent();
45
46   // interface functions: property getters
47   const char* GetComponentID();
48   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
49   AliHLTComponentDataType GetOutputDataType();
50   void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
51   AliHLTComponent* Spawn();
52
53  protected:
54   // interface functions: processing
55   int DoInit(int argc, const char** argv);
56   int DoDeinit();
57   int DoEvent(const AliHLTComponentEventData& evtData,
58               const AliHLTComponentBlockData* blocks, 
59               AliHLTComponentTriggerData& trigData,
60               AliHLTUInt8_t* outputPtr, 
61               AliHLTUInt32_t& size,
62               AliHLTComponentBlockDataList& outputBlocks );
63
64  
65  private:
66   /** copy constructor prohibited */
67   AliHLTAltroChannelSelectorComponent(const AliHLTAltroChannelSelectorComponent&);
68   /** assignment operator prohibited */
69   AliHLTAltroChannelSelectorComponent& operator=(const AliHLTAltroChannelSelectorComponent&);
70
71   /**
72    * Copy a data block at the end of a buffer.
73    * The source buffer is inserted at given position relative to the buffer
74    * end.
75    * @param pTgt       target buffer
76    * @param capacity   capacity (size) of the buffer
77    * @param position   porition relative to the END of the buffer
78    * @param pSrc       source buffer to be copied
79    * @param size       size of the source buffer
80    * @return copied size, neg error code if failed
81    */
82   int CopyBlockToEnd(AliHLTUInt8_t* pTgt, unsigned capacity, unsigned position, void* pSrc, unsigned size);
83
84   /** the mode for the DigitReaderRaw */
85   unsigned fRawreaderMode; //!transient
86
87   ClassDef(AliHLTAltroChannelSelectorComponent, 0);
88 };
89
90 #endif