]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.h
bugfix in component output and code cleanup (Sergey)
[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 #ifndef ALIHLTTPCCATRACKERCOMPONENT_H
9 #define ALIHLTTPCCATRACKERCOMPONENT_H
10
11 #include "AliHLTProcessor.h"
12
13 class AliHLTTPCCATracker;
14
15 /**
16  * @class AliHLTTPCCATrackerComponent
17  * The Cellular Automaton tracker component.
18  */
19 class AliHLTTPCCATrackerComponent : public AliHLTProcessor
20 {
21 public:
22   /** standard constructor */
23   AliHLTTPCCATrackerComponent();
24   
25   /** dummy copy constructor, defined according to effective C++ style */
26   AliHLTTPCCATrackerComponent(const AliHLTTPCCATrackerComponent&);
27   
28   /** dummy assignment op, but defined according to effective C++ style */
29   AliHLTTPCCATrackerComponent& operator=(const AliHLTTPCCATrackerComponent&);
30
31   /** standard destructor */
32   virtual ~AliHLTTPCCATrackerComponent();
33       
34   // Public functions to implement AliHLTComponent's interface.
35   // These functions are required for the registration process
36   
37   /** @see component interface @ref AliHLTComponent::GetComponentID */
38   const char* GetComponentID() ;
39   
40   /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
41   void GetInputDataTypes( vector<AliHLTComponentDataType>& list)  ;
42   
43   /** @see component interface @ref AliHLTComponent::GetOutputDataType */
44   AliHLTComponentDataType GetOutputDataType() ;
45
46   /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
47   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
48
49   /** @see component interface @ref AliHLTComponent::Spawn */
50   AliHLTComponent* Spawn() ;
51
52 protected:
53
54   // Protected functions to implement AliHLTComponent's interface.
55   // These functions provide initialization as well as the actual processing
56   // capabilities of the component. 
57   
58   /** @see component interface @ref AliHLTComponent::DoInit */
59   int DoInit( int argc, const char** argv );
60   
61   /** @see component interface @ref AliHLTComponent::DoDeinit */
62   int DoDeinit();
63   
64   /** @see component interface @ref AliHLTProcessor::DoEvent */
65   int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
66                AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
67                AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
68   
69 private:
70   
71   /** the tracker object */
72   AliHLTTPCCATracker* fTracker;                                //! transient
73   
74   /** magnetic field */
75   Double_t fBField;                                            // see above
76   
77   ClassDef(AliHLTTPCCATrackerComponent, 0);
78   
79 };
80 #endif