]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCSliceTrackerComponent.h
15eef662d803fe8a0424feac7d4831b12d16279a
[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 /* AliHLTTPCSliceTrackerComponent
10  */
11
12 #include "AliHLTProcessor.h"
13 #include "AliHLTTPCDefinitions.h"
14
15 class AliHLTTPCConfMapper;
16 class AliHLTTPCVertex;
17 class AliHLTTPCInterMerger;
18
19 class AliHLTTPCSliceTrackerComponent : public AliHLTProcessor
20 {
21 public:
22   /** default constructor */
23   AliHLTTPCSliceTrackerComponent();
24   /** not a valid copy constructor, defined according to effective C++ style */
25   AliHLTTPCSliceTrackerComponent(const AliHLTTPCSliceTrackerComponent&);
26   /** not a valid assignment op, but defined according to effective C++ style */
27   AliHLTTPCSliceTrackerComponent& operator=(const AliHLTTPCSliceTrackerComponent&);
28   /** destructor */
29   virtual ~AliHLTTPCSliceTrackerComponent();
30
31         // Public functions to implement AliHLTComponent's interface.
32         // These functions are required for the registration process
33
34         const char* GetComponentID();
35         void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
36         AliHLTComponentDataType GetOutputDataType();
37         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
38         AliHLTComponent* Spawn();
39
40 protected:
41         
42         void SetTrackerParam(Int_t phiSegments=50,Int_t etaSegments=100,
43                              Int_t trackletlength=3,Int_t tracklength=5,
44                              Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
45                              Double_t minPtFit=0,Double_t maxangle=1.31,
46                              Double_t goodDist=5,Double_t hitChi2Cut=10,
47                              Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
48                              Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
49                              bool vertexconstraint=true);
50         void SetTrackerParam( bool doPP, int multiplicity, double bField );
51         void SetTrackerParam1()
52                 {
53                 SetTrackerParam( 10, 20, 5, 10, 2,2,
54                                  0, 1.31, 5, 100,
55                                  50, 100, 50, 0.1, 0.1,
56                                  true );
57                 }
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         int DoInit( int argc, const char** argv );
64         int DoDeinit();
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   /** instance of the tracker */
72   AliHLTTPCConfMapper* fTracker;                                   //! transient
73   /** vertex object */
74   AliHLTTPCVertex* fVertex;                                        //! transient
75   /** eta range */
76   Float_t fEta[2];                                                 //  see above
77   /** switch for subsequent non-vertex tracking */
78   Bool_t fDoNonVertex;                                             //  see above
79   /** */
80   Bool_t  fDoPP;                                                   //  see above
81   /** multiplicity estimate */
82   Int_t fMultiplicity;                                             //  see above
83   /** magnetic field */
84   Double_t fBField;                                                //  see above
85
86 // BEGINN ############################################## MODIFIY JMT
87   Bool_t fnonvertextracking;   // enable NONVERTEX Tracking
88   Bool_t fmainvertextracking;  // enable MAINVERTEX Tracking
89 // END ################################################# MODIFIY JMT
90
91   /** merger object */
92   AliHLTTPCInterMerger *fpInterMerger;                             //! transient
93
94   ClassDef(AliHLTTPCSliceTrackerComponent, 0);
95
96 };
97 #endif