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