3 // ************************************************************************
4 // This file is property of and copyright by the ALICE HLT Project *
5 // ALICE Experiment at CERN, All rights reserved. *
6 // See cxx source for full Copyright notice *
8 //*************************************************************************
10 #ifndef ALIHLTTPCCATRACKERCOMPONENT_H
11 #define ALIHLTTPCCATRACKERCOMPONENT_H
13 #include "AliHLTProcessor.h"
15 class AliHLTTPCCATracker;
16 class AliHLTTPCSpacePointData;
19 * @class AliHLTTPCCATrackerComponent
20 * The Cellular Automaton tracker component.
22 class AliHLTTPCCATrackerComponent : public AliHLTProcessor
25 /** standard constructor */
26 AliHLTTPCCATrackerComponent();
28 /** dummy copy constructor, defined according to effective C++ style */
29 AliHLTTPCCATrackerComponent(const AliHLTTPCCATrackerComponent&);
31 /** dummy assignment op, but defined according to effective C++ style */
32 AliHLTTPCCATrackerComponent& operator=(const AliHLTTPCCATrackerComponent&);
34 /** standard destructor */
35 virtual ~AliHLTTPCCATrackerComponent();
37 // Public functions to implement AliHLTComponent's interface.
38 // These functions are required for the registration process
40 /** @see component interface @ref AliHLTComponent::GetComponentID */
41 const char* GetComponentID() ;
43 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
44 void GetInputDataTypes( vector<AliHLTComponentDataType>& list) ;
46 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
47 AliHLTComponentDataType GetOutputDataType() ;
49 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
50 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
52 /** @see component interface @ref AliHLTComponent::Spawn */
53 AliHLTComponent* Spawn() ;
57 // Protected functions to implement AliHLTComponent's interface.
58 // These functions provide initialization as well as the actual processing
59 // capabilities of the component.
61 /** @see component interface @ref AliHLTComponent::DoInit */
62 Int_t DoInit( Int_t argc, const char** argv );
64 /** @see component interface @ref AliHLTComponent::DoDeinit */
68 Int_t Reconfigure(const char* cdbEntry, const char* chainId);
70 /** @see component interface @ref AliHLTProcessor::DoEvent */
71 Int_t DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
72 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
73 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
77 /** the tracker object */
78 AliHLTTPCCATracker* fTracker; //! transient
81 Double_t fSolenoidBz; // see above
82 Int_t fMinNTrackClusters; //* required min number of clusters on the track
83 Double_t fClusterZCut; //* cut on cluster Z position (for noise rejection at the age of TPC)
84 Double_t fFullTime; //* total time for DoEvent() [s]
85 Double_t fRecoTime; //* total reconstruction time [s]
86 Long_t fNEvents; //* number of reconstructed events
87 Bool_t fNewOutputType; //* use new type of output (temporary flag)
89 static Bool_t CompareClusters(AliHLTTPCSpacePointData *a, AliHLTTPCSpacePointData *b);
91 /** set configuration parameters **/
92 Int_t Configure( const char* arguments );
94 ClassDef(AliHLTTPCCATrackerComponent, 0);