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 #ifndef ALIHLTTPCCATRACKERCOMPONENT_H
9 #define ALIHLTTPCCATRACKERCOMPONENT_H
11 #include "AliHLTProcessor.h"
13 class AliHLTTPCCATracker;
14 class AliHLTTPCSpacePointData;
17 * @class AliHLTTPCCATrackerComponent
18 * The Cellular Automaton tracker component.
20 class AliHLTTPCCATrackerComponent : public AliHLTProcessor
23 /** standard constructor */
24 AliHLTTPCCATrackerComponent();
26 /** dummy copy constructor, defined according to effective C++ style */
27 AliHLTTPCCATrackerComponent(const AliHLTTPCCATrackerComponent&);
29 /** dummy assignment op, but defined according to effective C++ style */
30 AliHLTTPCCATrackerComponent& operator=(const AliHLTTPCCATrackerComponent&);
32 /** standard destructor */
33 virtual ~AliHLTTPCCATrackerComponent();
35 // Public functions to implement AliHLTComponent's interface.
36 // These functions are required for the registration process
38 /** @see component interface AliHLTComponent::GetComponentID */
39 const char* GetComponentID() ;
41 /** @see component interface AliHLTComponent::GetInputDataTypes */
42 void GetInputDataTypes( vector<AliHLTComponentDataType>& list) ;
44 /** @see component interface AliHLTComponent::GetOutputDataType */
45 AliHLTComponentDataType GetOutputDataType() ;
47 /** @see component interface AliHLTComponent::GetOutputDataSize */
48 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
50 /** @see component interface AliHLTComponent::Spawn */
51 AliHLTComponent* Spawn() ;
55 // Protected functions to implement AliHLTComponent's interface.
56 // These functions provide initialization as well as the actual processing
57 // capabilities of the component.
59 /** @see component interface AliHLTComponent::DoInit */
60 int DoInit( int argc, const char** argv );
62 /** @see component interface AliHLTComponent::DoDeinit */
65 /** @see component interface @ref AliHLTProcessor::DoEvent */
66 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
67 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
68 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
72 /** the tracker object */
73 AliHLTTPCCATracker* fTracker; //! transient
76 Double_t fSolenoidBz; // see above
77 Int_t fMinNTrackClusters; //* required min number of clusters on the track
78 Double_t fCellConnectionAngleXY; //* max phi angle between connected cells (deg)
79 Double_t fCellConnectionAngleXZ; //* max psi angle between connected cells (deg)
80 Double_t fClusterZCut; //* cut on cluster Z position (for noise rejection at the age of TPC)
81 Double_t fFullTime; //* total time for DoEvent() [s]
82 Double_t fRecoTime; //* total reconstruction time [s]
83 Long_t fNEvents; //* number of reconstructed events
85 static Bool_t CompareClusters(AliHLTTPCSpacePointData *a, AliHLTTPCSpacePointData *b);
87 ClassDef(AliHLTTPCCATrackerComponent, 0);