]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCClusterFinderComponent.h
corrected copy and paste typo
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCClusterFinderComponent.h
CommitLineData
71d7c760 1// @(#) $Id$
2
3#ifndef ALIHLTTPCCLUSTERFINDERCOMPONENT_H
4#define ALIHLTTPCCLUSTERFINDERCOMPONENT_H
a38a7850 5
01f43166 6/* This file is property of and copyright by the ALICE HLT Project *
7 * ALICE Experiment at CERN, All rights reserved. *
71d7c760 8 * See cxx source for full Copyright notice */
9
de554e07 10/** @file AliHLTTPCClusterFinderComponent.h
11 @author Timm Steinbeck, Matthias Richter, Jochen Thaeder
12 @date
13 @brief The TPC cluster finder component.
14*/
71d7c760 15
16#include "AliHLTProcessor.h"
17#include "AliHLTTPCDefinitions.h"
a38a7850 18#include "AliHLTTPCDigitReaderPacked.h"
19#include "AliHLTTPCDigitReaderUnpacked.h"
db16520a 20#include "AliHLTTPCDigitReaderRaw.h"
71d7c760 21
a38a7850 22class AliHLTTPCClusterFinder;
01f43166 23class AliHLTTPCPadArray;
71d7c760 24
84645eb0 25/**
26 * @class AliHLTTPCClusterFinderComponent
27 * Implementation of the cluster finder component.
28 * The component implements the interface methods of the @ref AliHLTProcessor.
29 * The actual cluster finding algorithm is implemented in @ref AliHLTTPCClusterFinder.
de554e07 30 * The component can handle unpacked and packed data of different formats via the
31 * AliHLTTPCDigitReader implementations. Two components are registered, the
32 * TPCClusterFinderUnpacked and the TPCClusterFinderPacked. The latter one can
33 * instantiate different digit readers depending on the arguments.
84645eb0 34 *
35 * The component has the following component arguments:
01f43166 36 * - rawreadermode the mode for the @ref AliHLTTPCDigitReaderRaw, use -2 if using unsorted
84645eb0 37 * - adc-threshold ADC count threshold for zero suppression, if <0 the base line
38 * calculation and subtraction is switched off
39 * - pp-run set parameters specific to a pp run; currently this switches
01f43166 40 * cluster deconvolution off for pp runs (not true for unsorted reading)
41 * - unsorted if 1 the data will be read unsorted in to a PadArray object. This should
42 * only be done on patch level since it use a lot of memory
43 * - patch specify on which patch to resd the data unsorted
84645eb0 44 *
45 * @ingroup alihlt_tpc
46 */
71d7c760 47class AliHLTTPCClusterFinderComponent : public AliHLTProcessor
48 {
49 public:
74c73e5a 50 /**
51 * constructor
52 * @param packed whether to use the packed or unpacked reader
53 */
a38a7850 54 AliHLTTPCClusterFinderComponent(bool packed);
74c73e5a 55 /** not a valid copy constructor, defined according to effective C++ style */
56 AliHLTTPCClusterFinderComponent(const AliHLTTPCClusterFinderComponent&);
57 /** not a valid assignment op, but defined according to effective C++ style */
58 AliHLTTPCClusterFinderComponent& operator=(const AliHLTTPCClusterFinderComponent&);
59 /** destructor */
71d7c760 60 virtual ~AliHLTTPCClusterFinderComponent();
61
62 // Public functions to implement AliHLTComponent's interface.
63 // These functions are required for the registration process
64
5df0cbb9 65 /** interface function, see @ref AliHLTComponent for description */
66 const char* GetComponentID();
67 /** interface function, see @ref AliHLTComponent for description */
68 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
69 /** interface function, see @ref AliHLTComponent for description */
70 AliHLTComponentDataType GetOutputDataType();
71 /** interface function, see @ref AliHLTComponent for description */
72 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
73 /** interface function, see @ref AliHLTComponent for description */
74 AliHLTComponent* Spawn();
a655eae3 75
71d7c760 76 protected:
77
78 // Protected functions to implement AliHLTComponent's interface.
79 // These functions provide initialization as well as the actual processing
80 // capabilities of the component.
81
82 int DoInit( int argc, const char** argv );
83 int DoDeinit();
8ede8717 84 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
85 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
86 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
71d7c760 87
88 private:
db16520a 89 /** the cluster finder object */
2a083ac4 90 AliHLTTPCClusterFinder* fClusterFinder; //!transient
db16520a 91 /** the reader object for data decoding */
2a083ac4 92 AliHLTTPCDigitReader* fReader; //!transient
71d7c760 93
a38a7850 94 bool fClusterDeconv;
95 float fXYClusterError;
96 float fZClusterError;
2a083ac4 97 /**
98 * switch to indicated the reader
99 * use fPackedSwitch = true for packed inputtype "gkDDLPackedRawDataType"
100 * use fPackedSwitch = false for unpacked inputtype "gkUnpackedRawDataType"
101 */
102 Int_t fPackedSwitch; // see above
a38a7850 103
01f43166 104 /*
105 * Reads the data the new unsorted way if true
106 *
107 */
108 Int_t fUnsorted; //!transient
109
110 /*
111 * Patch number to be read, currently given as component argument,
112 * will be changed later.
113 */
114 Int_t fPatch; //!transient
115
116 /*
117 * Pointer to a PadArray object containing a double array of all the pads in
118 * the current patch.
119 */
120 AliHLTTPCPadArray * fPadArray; //!transient
121
122 ClassDef(AliHLTTPCClusterFinderComponent, 1)
71d7c760 123
124 };
125#endif