]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSAltroChannelSelectorComponent.h
Components for selective readout of the DDL blocks
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSAltroChannelSelectorComponent.h
CommitLineData
8678cfc2 1//-*- Mode: C++ -*-
2// @(#) $Id$
3
4#ifndef ALIHLTPHOSALTROCHANNELSELECTORCOMPONENT_H
5#define ALIHLTPHOSALTROCHANNELSELECTORCOMPONENT_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 selector component for ALTRO Raw data. The component subscribes
27 * to the RAW data {***:DDL_RAW } and gets in addition a list of channels
28 * to select. The list must be of identical specification as the RAW data
29 * and can be of data type:
30 * - {TPC :ACTIVPAD}: description in coordinates of the TPC readout: row and
31 * pad
32 * - {***:HWADDR16}: 16 bit hardware addresses
33 *
34 * Currently, the DigitReaderRaw is used to read the data, the rawreader
35 * mode has to be set correctly ([0,5], see AliHLTTPCClusterFinderComponent).
36 * Later on if the fast Altro decoder is used as default input decoder for
37 * TPC offline reconstruction, we will move to a new DigitReader using
38 * this decoder.
39 *
40 * Component ID: \b AltroChannelSelector <br>
41 * Library: \b libAliHLTTPC
42 *
43 * Mandatory arguments: <br>
44 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
45 *
46 * Optional arguments: <br>
47 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
48 *
49 */
50class AliHLTPHOSAltroChannelSelectorComponent : public AliHLTProcessor {
51 public:
52 /** default constructor */
53 AliHLTPHOSAltroChannelSelectorComponent();
54 /** destructor */
55 virtual ~AliHLTPHOSAltroChannelSelectorComponent();
56
57 // interface functions: property getters
58 const char* GetComponentID();
59 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
60 AliHLTComponentDataType GetOutputDataType();
61 void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
62 AliHLTComponent* Spawn();
63
64 protected:
65 // interface functions: processing
66 int DoInit(int argc, const char** argv);
67 int DoDeinit();
68 int DoEvent(const AliHLTComponentEventData& evtData,
69 const AliHLTComponentBlockData* blocks,
70 AliHLTComponentTriggerData& trigData,
71 AliHLTUInt8_t* outputPtr,
72 AliHLTUInt32_t& size,
73 AliHLTComponentBlockDataList& outputBlocks );
74
75
76 private:
77 /** copy constructor prohibited */
78 AliHLTPHOSAltroChannelSelectorComponent(const AliHLTPHOSAltroChannelSelectorComponent&);
79 /** assignment operator prohibited */
80 AliHLTPHOSAltroChannelSelectorComponent& operator=(const AliHLTPHOSAltroChannelSelectorComponent&);
81
82 /**
83 * Copy a data block at the end of a buffer.
84 * The source buffer is inserted at given position relative to the buffer
85 * end.
86 * @param pTgt target buffer
87 * @param capacity capacity (size) of the buffer
88 * @param position porition relative to the END of the buffer
89 * @param pSrc source buffer to be copied
90 * @param size size of the source buffer
91 * @return copied size, neg error code if failed
92 */
93 int CopyBlockToEnd(AliHLTUInt8_t* pTgt, unsigned capacity, unsigned position, void* pSrc, unsigned size);
94
95 /** the mode for the DigitReaderRaw */
96 unsigned fRawreaderMode; //!transient
97
98 ClassDef(AliHLTPHOSAltroChannelSelectorComponent, 0);
99};
100
101#endif