]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCClusterFinderComponent.h
Put MUON tracking into the general framework (Christian)
[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();
8ede8717 54 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
55 AliHLTComponentDataType GetOutputDataType();
71d7c760 56 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
57 AliHLTComponent* Spawn();
a655eae3 58
71d7c760 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();
8ede8717 67 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
68 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
69 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
71d7c760 70
71 private:
db16520a 72 /** the cluster finder object */
2a083ac4 73 AliHLTTPCClusterFinder* fClusterFinder; //!transient
db16520a 74 /** the reader object for data decoding */
2a083ac4 75 AliHLTTPCDigitReader* fReader; //!transient
71d7c760 76
a38a7850 77 bool fClusterDeconv;
78 float fXYClusterError;
79 float fZClusterError;
2a083ac4 80 /**
81 * switch to indicated the reader
82 * use fPackedSwitch = true for packed inputtype "gkDDLPackedRawDataType"
83 * use fPackedSwitch = false for unpacked inputtype "gkUnpackedRawDataType"
84 */
85 Int_t fPackedSwitch; // see above
a38a7850 86
87 ClassDef(AliHLTTPCClusterFinderComponent, 0)
71d7c760 88
89 };
90#endif