]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCClusterFinderComponent.h
Bogdan: new version of MUON visualization.
[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
de554e07 9/** @file AliHLTTPCClusterFinderComponent.h
10 @author Timm Steinbeck, Matthias Richter, Jochen Thaeder
11 @date
12 @brief The TPC cluster finder component.
13*/
71d7c760 14
15#include "AliHLTProcessor.h"
16#include "AliHLTTPCDefinitions.h"
a38a7850 17#include "AliHLTTPCDigitReaderPacked.h"
18#include "AliHLTTPCDigitReaderUnpacked.h"
db16520a 19#include "AliHLTTPCDigitReaderRaw.h"
71d7c760 20
a38a7850 21class AliHLTTPCClusterFinder;
71d7c760 22
84645eb0 23/**
24 * @class AliHLTTPCClusterFinderComponent
25 * Implementation of the cluster finder component.
26 * The component implements the interface methods of the @ref AliHLTProcessor.
27 * The actual cluster finding algorithm is implemented in @ref AliHLTTPCClusterFinder.
de554e07 28 * The component can handle unpacked and packed data of different formats via the
29 * AliHLTTPCDigitReader implementations. Two components are registered, the
30 * TPCClusterFinderUnpacked and the TPCClusterFinderPacked. The latter one can
31 * instantiate different digit readers depending on the arguments.
84645eb0 32 *
33 * The component has the following component arguments:
34 * - rawreadermode the mode for the @ref AliHLTTPCDigitReaderRaw
35 * - adc-threshold ADC count threshold for zero suppression, if <0 the base line
36 * calculation and subtraction is switched off
37 * - pp-run set parameters specific to a pp run; currently this switches
38 * cluster deconvolution off for pp runs
39 *
40 * @ingroup alihlt_tpc
41 */
71d7c760 42class AliHLTTPCClusterFinderComponent : public AliHLTProcessor
43 {
44 public:
74c73e5a 45 /**
46 * constructor
47 * @param packed whether to use the packed or unpacked reader
48 */
a38a7850 49 AliHLTTPCClusterFinderComponent(bool packed);
74c73e5a 50 /** not a valid copy constructor, defined according to effective C++ style */
51 AliHLTTPCClusterFinderComponent(const AliHLTTPCClusterFinderComponent&);
52 /** not a valid assignment op, but defined according to effective C++ style */
53 AliHLTTPCClusterFinderComponent& operator=(const AliHLTTPCClusterFinderComponent&);
54 /** destructor */
71d7c760 55 virtual ~AliHLTTPCClusterFinderComponent();
56
57 // Public functions to implement AliHLTComponent's interface.
58 // These functions are required for the registration process
59
60 const char* GetComponentID();
8ede8717 61 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
62 AliHLTComponentDataType GetOutputDataType();
71d7c760 63 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
64 AliHLTComponent* Spawn();
a655eae3 65
71d7c760 66 protected:
67
68 // Protected functions to implement AliHLTComponent's interface.
69 // These functions provide initialization as well as the actual processing
70 // capabilities of the component.
71
72 int DoInit( int argc, const char** argv );
73 int DoDeinit();
8ede8717 74 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
75 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
76 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
71d7c760 77
78 private:
db16520a 79 /** the cluster finder object */
2a083ac4 80 AliHLTTPCClusterFinder* fClusterFinder; //!transient
db16520a 81 /** the reader object for data decoding */
2a083ac4 82 AliHLTTPCDigitReader* fReader; //!transient
71d7c760 83
a38a7850 84 bool fClusterDeconv;
85 float fXYClusterError;
86 float fZClusterError;
2a083ac4 87 /**
88 * switch to indicated the reader
89 * use fPackedSwitch = true for packed inputtype "gkDDLPackedRawDataType"
90 * use fPackedSwitch = false for unpacked inputtype "gkUnpackedRawDataType"
91 */
92 Int_t fPackedSwitch; // see above
a38a7850 93
94 ClassDef(AliHLTTPCClusterFinderComponent, 0)
71d7c760 95
96 };
97#endif