]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCSliceTrackerComponent.h
Bogdan: new version of MUON visualization.
[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 #include "AliHLTProcessor.h"
16 #include "AliHLTTPCDefinitions.h"
17
18 class AliHLTTPCConfMapper;
19 class AliHLTTPCVertex;
20 class AliHLTTPCInterMerger;
21
22 /**
23  * @class AliHLTTPCSliceTrackerComponent
24  * The TPC conformal mapping tracker component.
25  * 
26  * The component has the following component arguments:
27  * - disable-merger  disable merging of track segments
28  * - pp-run          parameter set for pp run
29  * - multiplicity    multiplicity to choose parameter set for
30  * - bfield          magnatic field
31  * 
32  * @ingroup alihlt_tpc
33  */
34 class AliHLTTPCSliceTrackerComponent : public AliHLTProcessor
35 {
36 public:
37   /** default constructor */
38   AliHLTTPCSliceTrackerComponent();
39   /** not a valid copy constructor, defined according to effective C++ style */
40   AliHLTTPCSliceTrackerComponent(const AliHLTTPCSliceTrackerComponent&);
41   /** not a valid assignment op, but defined according to effective C++ style */
42   AliHLTTPCSliceTrackerComponent& operator=(const AliHLTTPCSliceTrackerComponent&);
43   /** destructor */
44   virtual ~AliHLTTPCSliceTrackerComponent();
45
46         // Public functions to implement AliHLTComponent's interface.
47         // These functions are required for the registration process
48
49         const char* GetComponentID();
50         void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
51         AliHLTComponentDataType GetOutputDataType();
52         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
53         AliHLTComponent* Spawn();
54
55 protected:
56         
57         void SetTrackerParam(Int_t phiSegments=50,Int_t etaSegments=100,
58                              Int_t trackletlength=3,Int_t tracklength=5,
59                              Int_t rowscopetracklet=2,Int_t rowscopetrack=3,
60                              Double_t minPtFit=0,Double_t maxangle=1.31,
61                              Double_t goodDist=5,Double_t hitChi2Cut=10,
62                              Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
63                              Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
64                              bool vertexconstraint=true);
65         void SetTrackerParam( bool doPP, int multiplicity, double bField );
66         void SetTrackerParam1()
67                 {
68                 SetTrackerParam( 10, 20, 5, 10, 2,2,
69                                  0, 1.31, 5, 100,
70                                  50, 100, 50, 0.1, 0.1,
71                                  true );
72                 }
73
74         // Protected functions to implement AliHLTComponent's interface.
75         // These functions provide initialization as well as the actual processing
76         // capabilities of the component. 
77
78         int DoInit( int argc, const char** argv );
79         int DoDeinit();
80         int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
81                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
82                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
83         
84 private:
85
86   /** instance of the tracker */
87   AliHLTTPCConfMapper* fTracker;                                   //! transient
88   /** vertex object */
89   AliHLTTPCVertex* fVertex;                                        //! transient
90   /** eta range */
91   Float_t fEta[2];                                                 //  see above
92   /** switch for subsequent non-vertex tracking */
93   Bool_t fDoNonVertex;                                             //  see above
94   /** */
95   Bool_t  fDoPP;                                                   //  see above
96   /** multiplicity estimate */
97   Int_t fMultiplicity;                                             //  see above
98   /** magnetic field */
99   Double_t fBField;                                                //  see above
100
101 // BEGINN ############################################## MODIFIY JMT
102   Bool_t fnonvertextracking;   // enable NONVERTEX Tracking
103   Bool_t fmainvertextracking;  // enable MAINVERTEX Tracking
104 // END ################################################# MODIFIY JMT
105
106   /** merger object */
107   AliHLTTPCInterMerger *fpInterMerger;                             //! transient
108
109   ClassDef(AliHLTTPCSliceTrackerComponent, 0);
110
111 };
112 #endif