]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.h
TPC CA Global Merger component added
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackerComponent.h
1 //-*- Mode: C++ -*-
2 // @(#) $Id$
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                               *
7 //                                                                        *
8 //*************************************************************************
9
10 #ifndef ALIHLTTPCCATRACKERCOMPONENT_H
11 #define ALIHLTTPCCATRACKERCOMPONENT_H
12
13 #include "AliHLTProcessor.h"
14
15 class AliHLTTPCCATracker;
16 class AliHLTTPCSpacePointData;
17
18 /**
19  * @class AliHLTTPCCATrackerComponent
20  * The Cellular Automaton tracker component.
21  */
22 class AliHLTTPCCATrackerComponent : public AliHLTProcessor
23 {
24 public:
25   /** standard constructor */
26   AliHLTTPCCATrackerComponent();
27   
28   /** dummy copy constructor, defined according to effective C++ style */
29   AliHLTTPCCATrackerComponent(const AliHLTTPCCATrackerComponent&);
30   
31   /** dummy assignment op, but defined according to effective C++ style */
32   AliHLTTPCCATrackerComponent& operator=(const AliHLTTPCCATrackerComponent&);
33
34   /** standard destructor */
35   virtual ~AliHLTTPCCATrackerComponent();
36       
37   // Public functions to implement AliHLTComponent's interface.
38   // These functions are required for the registration process
39   
40   /** @see component interface @ref AliHLTComponent::GetComponentID */
41   const char* GetComponentID() ;
42   
43   /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
44   void GetInputDataTypes( vector<AliHLTComponentDataType>& list)  ;
45   
46   /** @see component interface @ref AliHLTComponent::GetOutputDataType */
47   AliHLTComponentDataType GetOutputDataType() ;
48
49   /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
50   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
51
52   /** @see component interface @ref AliHLTComponent::Spawn */
53   AliHLTComponent* Spawn() ;
54
55 protected:
56
57   // Protected functions to implement AliHLTComponent's interface.
58   // These functions provide initialization as well as the actual processing
59   // capabilities of the component. 
60   
61   /** @see component interface @ref AliHLTComponent::DoInit */
62   Int_t DoInit( Int_t argc, const char** argv );
63   
64   /** @see component interface @ref AliHLTComponent::DoDeinit */
65   Int_t DoDeinit();
66
67   /** reconfigure **/
68   Int_t Reconfigure(const char* cdbEntry, const char* chainId);
69
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 );
74   
75 private:
76   
77   /** the tracker object */
78   AliHLTTPCCATracker* fTracker;                                //! transient
79   
80   /** magnetic field */
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)
88
89   static Bool_t CompareClusters(AliHLTTPCSpacePointData *a, AliHLTTPCSpacePointData *b);
90
91   /** set configuration parameters **/
92   Int_t Configure( const char* arguments );
93
94   ClassDef(AliHLTTPCCATrackerComponent, 0);
95   
96 };
97 #endif