]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.h
extra benchmarks are added
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackerComponent.h
CommitLineData
cf471b1e 1//-*- Mode: C++ -*-
2// @(#) $Id$
ce565086 3// ************************************************************************
fbb9b71b 4// This file is property of and copyright by the ALICE HLT Project *
ce565086 5// ALICE Experiment at CERN, All rights reserved. *
6// See cxx source for full Copyright notice *
7// *
8//*************************************************************************
cf471b1e 9
10#ifndef ALIHLTTPCCATRACKERCOMPONENT_H
11#define ALIHLTTPCCATRACKERCOMPONENT_H
12
13#include "AliHLTProcessor.h"
57a4102f 14#include "AliHLTComponentBenchmark.h"
cf471b1e 15
b22af1bf 16class AliHLTTPCCATrackerFramework;
17class AliHLTTPCCASliceOutput;
eb30eb49 18class AliHLTTPCSpacePointData;
cf471b1e 19
20/**
21 * @class AliHLTTPCCATrackerComponent
22 * The Cellular Automaton tracker component.
23 */
24class AliHLTTPCCATrackerComponent : public AliHLTProcessor
4c256004 25{
fbb9b71b 26 public:
27 /** standard constructor */
28 AliHLTTPCCATrackerComponent();
29
30 /** dummy copy constructor, defined according to effective C++ style */
31 AliHLTTPCCATrackerComponent( const AliHLTTPCCATrackerComponent& );
32
33 /** dummy assignment op, but defined according to effective C++ style */
34 AliHLTTPCCATrackerComponent& operator=( const AliHLTTPCCATrackerComponent& );
35
36 /** standard destructor */
37 virtual ~AliHLTTPCCATrackerComponent();
38
39 // Public functions to implement AliHLTComponent's interface.
40 // These functions are required for the registration process
41
4acc2401 42 /** @see component interface @ref AliHLTComponent::GetComponentID */
fbb9b71b 43 const char* GetComponentID() ;
44
45 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
46 void GetInputDataTypes( vector<AliHLTComponentDataType>& list ) ;
47
48 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
49 AliHLTComponentDataType GetOutputDataType() ;
50
51 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
52 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
53
54 /** @see component interface @ref AliHLTComponent::Spawn */
55 AliHLTComponent* Spawn() ;
56
57 protected:
58
59 // Protected functions to implement AliHLTComponent's interface.
60 // These functions provide initialization as well as the actual processing
61 // capabilities of the component.
62
63 /** @see component interface @ref AliHLTComponent::DoInit */
64 int DoInit( int argc, const char** argv );
65
66 /** @see component interface @ref AliHLTComponent::DoDeinit */
67 int DoDeinit();
68
69 /** reconfigure **/
70 int Reconfigure( const char* cdbEntry, const char* chainId );
71
72 /** @see component interface @ref AliHLTProcessor::DoEvent */
73 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
4acc2401 74 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
75 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
fbb9b71b 76
77 private:
78
79 /** the tracker object */
b22af1bf 80 AliHLTTPCCATrackerFramework* fTracker; //! transient
fbb9b71b 81
82 /** magnetic field */
83 double fSolenoidBz; // see above
84 int fMinNTrackClusters; //* required min number of clusters on the track
85 double fClusterZCut; //* cut on cluster Z position (for noise rejection at the age of TPC)
31649d4b 86 double fNeighboursSearchArea; //* area in cm for the neighbour search algorithm
f0fb467d 87 double fClusterErrorCorrectionY; // correction for the cluster errors
88 double fClusterErrorCorrectionZ; // correction for the cluster errors
89
57a4102f 90 AliHLTComponentBenchmark fBenchmark; // benchmarks
31649d4b 91 bool fAllowGPU; //* Allow this tracker to run on GPU
fbb9b71b 92
93 static bool CompareClusters( AliHLTTPCSpacePointData *a, AliHLTTPCSpacePointData *b );
94
95 /** set configuration parameters **/
768b27af 96 void SetDefaultConfiguration();
97 int ReadConfigurationString( const char* arguments );
98 int ReadCDBEntry( const char* cdbEntry, const char* chainId );
17d6eada 99 int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
fbb9b71b 100
101 ClassDef( AliHLTTPCCATrackerComponent, 0 );
102
4c256004 103};
31649d4b 104#endif //ALIHLTTPCCATRACKERCOMPONENT_H