]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCClusterFinderComponent.h
- use_newio switch removed from libAliHLTTPC, always on; not removed in
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCClusterFinderComponent.h
CommitLineData
71d7c760 1// @(#) $Id$
2
3#ifndef ALIHLTTPCCLUSTERFINDERCOMPONENT_H
4#define ALIHLTTPCCLUSTERFINDERCOMPONENT_H
a38a7850 5
71d7c760 6/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
8
9/* AliHLTTPCClusterFinderComponent
10 */
11
12#include "AliHLTProcessor.h"
13#include "AliHLTTPCDefinitions.h"
a38a7850 14#include "AliHLTTPCDigitReaderPacked.h"
15#include "AliHLTTPCDigitReaderUnpacked.h"
db16520a 16#include "AliHLTTPCDigitReaderRaw.h"
71d7c760 17
a38a7850 18class AliHLTTPCClusterFinder;
71d7c760 19
84645eb0 20/**
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.
25 *
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
32 *
33 * @ingroup alihlt_tpc
34 */
71d7c760 35class AliHLTTPCClusterFinderComponent : public AliHLTProcessor
36 {
37 public:
74c73e5a 38 /**
39 * constructor
40 * @param packed whether to use the packed or unpacked reader
41 */
a38a7850 42 AliHLTTPCClusterFinderComponent(bool packed);
74c73e5a 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&);
47 /** destructor */
71d7c760 48 virtual ~AliHLTTPCClusterFinderComponent();
49
50 // Public functions to implement AliHLTComponent's interface.
51 // These functions are required for the registration process
52
53 const char* GetComponentID();
54 void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
55 AliHLTComponent_DataType GetOutputDataType();
56 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
57 AliHLTComponent* Spawn();
58
59 protected:
60
61 // Protected functions to implement AliHLTComponent's interface.
62 // These functions provide initialization as well as the actual processing
63 // capabilities of the component.
64
65 int DoInit( int argc, const char** argv );
66 int DoDeinit();
67 int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks,
68 AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
69 AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
70
71 private:
db16520a 72 /** the cluster finder object */
73 AliHLTTPCClusterFinder* fClusterFinder;
74 /** the reader object for data decoding */
75 AliHLTTPCDigitReader* fReader;
71d7c760 76
a38a7850 77 bool fClusterDeconv;
78 float fXYClusterError;
79 float fZClusterError;
80 Int_t fPackedSwitch;
81
82 ClassDef(AliHLTTPCClusterFinderComponent, 0)
71d7c760 83
84 };
85#endif