]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCSliceTrackerComponent.h
incremented library version
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCSliceTrackerComponent.h
1 // XEmacs -*-C++-*-
2 // @(#) $Id$
3
4 #ifndef ALIHLTTPCSLICETRACKERCOMPONENT_H
5 #define ALIHLTTPCSLICETRACKERCOMPONENT_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 /** @file   AliHLTTPCSliceTrackerComponent.h
10     @author Timm Steinbeck, Matthias Richter
11     @date   
12     @brief  The TPC conformal mapping tracker component.
13 */
14
15 // see below for class documentation
16 // or
17 // refer to README to build package
18 // or
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
20
21 #include "AliHLTProcessor.h"
22
23 class AliHLTTPCConfMapper;
24 class AliHLTTPCVertex;
25 class AliHLTTPCInterMerger;
26
27 /**
28  * @class AliHLTTPCSliceTrackerComponent
29  * The TPC conformal mapping tracker component.
30  * 
31  * The component has the following component arguments:
32  * - disable-merger  disable merging of track segments
33  * - pp-run          parameter set for pp run
34  * - multiplicity    multiplicity to choose parameter set for
35  * - bfield          magnatic field
36  * 
37  * @ingroup alihlt_tpc
38  */
39 class AliHLTTPCSliceTrackerComponent : public AliHLTProcessor
40 {
41 public:
42   /** default constructor */
43   AliHLTTPCSliceTrackerComponent();
44   /** destructor */
45   virtual ~AliHLTTPCSliceTrackerComponent();
46
47   // Public functions to implement AliHLTComponent's interface.
48   // These functions are required for the registration process
49
50   /** interface function, see @ref AliHLTComponent for description */
51   const char* GetComponentID();
52   /** interface function, see @ref AliHLTComponent for description */
53   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
54   /** interface function, see @ref AliHLTComponent for description */
55   AliHLTComponentDataType GetOutputDataType();
56   /** interface function, see @ref AliHLTComponent for description */
57   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
58   /** interface function, see @ref AliHLTComponent for description */
59   AliHLTComponent* Spawn();
60
61 protected:
62
63   /**
64    * Set Tracker parameters
65    * Knowledge on that has been lost, so somebody has to insert more
66    * documentation.
67    */   
68   void SetTrackerParam(Int_t phiSegments=50,Int_t etaSegments=100,
69                        Int_t trackletlength=3,Int_t tracklength=5,
70                        Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
71                        Double_t minPtFit=0,Double_t maxangle=1.31,
72                        Double_t goodDist=5,Double_t hitChi2Cut=10,
73                        Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
74                        Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
75                        bool vertexconstraint=true);
76
77   /**
78    * Set Tracker parameters
79    * Knowledge on that has been lost, so somebody has to insert more
80    * documentation.
81    */
82   void SetTrackerParam( bool doPP, int multiplicity, double bField );
83
84   /**
85    * Set default tracker parameters
86    * Knowledge on that has been lost, so somebody has to insert more
87    * documentation.
88    */
89   void SetTrackerParam1();
90
91   // Protected functions to implement AliHLTComponent's interface.
92   // These functions provide initialization as well as the actual processing
93   // capabilities of the component. 
94
95   /** interface function, see @ref AliHLTComponent for description */
96   int DoInit( int argc, const char** argv );
97   /** interface function, see @ref AliHLTComponent for description */
98   int DoDeinit();
99   /** interface function, see @ref AliHLTComponent for description */
100   int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
101                AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
102                AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks );
103
104   using AliHLTProcessor::DoEvent;
105   
106 private:
107   /** copy constructor prohibited */
108   AliHLTTPCSliceTrackerComponent(const AliHLTTPCSliceTrackerComponent&);
109   /** assignment operator prohibited */
110   AliHLTTPCSliceTrackerComponent& operator=(const AliHLTTPCSliceTrackerComponent&);
111
112   /** instance of the tracker */
113   AliHLTTPCConfMapper* fTracker;                                   //! transient
114   /** vertex object */
115   AliHLTTPCVertex* fVertex;                                        //! transient
116   /** eta range */
117   Float_t fEta[2];                                                 //  see above
118   /** switch for subsequent non-vertex tracking */
119   Bool_t fDoNonVertex;                                             //  see above
120   /** */
121   Bool_t  fDoPP;                                                   //  see above
122   /** multiplicity estimate */
123   Int_t fMultiplicity;                                             //  see above
124   /** magnetic field */
125   Double_t fBField;                                                //  see above
126
127   Bool_t fnonvertextracking;   // enable NONVERTEX Tracking
128   Bool_t fmainvertextracking;  // enable MAINVERTEX Tracking
129
130   /** merger object */
131   AliHLTTPCInterMerger *fpInterMerger;                             //! transient
132
133   ClassDef(AliHLTTPCSliceTrackerComponent, 0);
134
135 };
136 #endif