3 #ifndef ALIHLTTPCCLUSTERFINDERCOMPONENT_H
4 #define ALIHLTTPCCLUSTERFINDERCOMPONENT_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
9 /* AliHLTTPCClusterFinderComponent
12 #include "AliHLTProcessor.h"
13 #include "AliHLTTPCDefinitions.h"
14 #include "AliHLTTPCDigitReaderPacked.h"
15 #include "AliHLTTPCDigitReaderUnpacked.h"
16 #include "AliHLTTPCDigitReaderRaw.h"
18 class AliHLTTPCClusterFinder;
21 * @class AliHLTTPCClusterFinderComponent
22 * Implementation of the cluster finder component.
23 * The component implements the interface methods of the @ref AliHLTProcessor.
24 * The actual cluster finding algorithm is implemented in @ref AliHLTTPCClusterFinder.
26 * The component has the following component arguments:
27 * - rawreadermode the mode for the @ref AliHLTTPCDigitReaderRaw
28 * - adc-threshold ADC count threshold for zero suppression, if <0 the base line
29 * calculation and subtraction is switched off
30 * - pp-run set parameters specific to a pp run; currently this switches
31 * cluster deconvolution off for pp runs
35 class AliHLTTPCClusterFinderComponent : public AliHLTProcessor
40 * @param packed whether to use the packed or unpacked reader
42 AliHLTTPCClusterFinderComponent(bool packed);
43 /** not a valid copy constructor, defined according to effective C++ style */
44 AliHLTTPCClusterFinderComponent(const AliHLTTPCClusterFinderComponent&);
45 /** not a valid assignment op, but defined according to effective C++ style */
46 AliHLTTPCClusterFinderComponent& operator=(const AliHLTTPCClusterFinderComponent&);
48 virtual ~AliHLTTPCClusterFinderComponent();
50 // Public functions to implement AliHLTComponent's interface.
51 // These functions are required for the registration process
53 const char* GetComponentID();
54 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
55 AliHLTComponentDataType GetOutputDataType();
56 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
57 AliHLTComponent* Spawn();
61 // Protected functions to implement AliHLTComponent's interface.
62 // These functions provide initialization as well as the actual processing
63 // capabilities of the component.
65 int DoInit( int argc, const char** argv );
67 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
68 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
69 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
72 /** the cluster finder object */
73 AliHLTTPCClusterFinder* fClusterFinder; //!transient
74 /** the reader object for data decoding */
75 AliHLTTPCDigitReader* fReader; //!transient
78 float fXYClusterError;
81 * switch to indicated the reader
82 * use fPackedSwitch = true for packed inputtype "gkDDLPackedRawDataType"
83 * use fPackedSwitch = false for unpacked inputtype "gkUnpackedRawDataType"
85 Int_t fPackedSwitch; // see above
87 ClassDef(AliHLTTPCClusterFinderComponent, 0)