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 */
9 /** @file AliHLTTPCSliceTrackerComponent.h
10 @author Timm Steinbeck, Matthias Richter
12 @brief The TPC conformal mapping tracker component.
15 // see below for class documentation
17 // refer to README to build package
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21 #include "AliHLTProcessor.h"
23 class AliHLTTPCConfMapper;
24 class AliHLTTPCVertex;
25 class AliHLTTPCInterMerger;
28 * @class AliHLTTPCSliceTrackerComponent
29 * The TPC conformal mapping tracker component.
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
39 class AliHLTTPCSliceTrackerComponent : public AliHLTProcessor
42 /** default constructor */
43 AliHLTTPCSliceTrackerComponent();
45 virtual ~AliHLTTPCSliceTrackerComponent();
47 // Public functions to implement AliHLTComponent's interface.
48 // These functions are required for the registration process
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();
64 * Set Tracker parameters
65 * Knowledge on that has been lost, so somebody has to insert more
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);
78 * Set Tracker parameters
79 * Knowledge on that has been lost, so somebody has to insert more
82 void SetTrackerParam( bool doPP, int multiplicity, double bField );
85 * Set default tracker parameters
86 * Knowledge on that has been lost, so somebody has to insert more
89 void SetTrackerParam1();
91 // Protected functions to implement AliHLTComponent's interface.
92 // These functions provide initialization as well as the actual processing
93 // capabilities of the component.
95 /** interface function, see @ref AliHLTComponent for description */
96 int DoInit( int argc, const char** argv );
97 /** interface function, see @ref AliHLTComponent for description */
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 );
104 using AliHLTProcessor::DoEvent;
107 /** copy constructor prohibited */
108 AliHLTTPCSliceTrackerComponent(const AliHLTTPCSliceTrackerComponent&);
109 /** assignment operator prohibited */
110 AliHLTTPCSliceTrackerComponent& operator=(const AliHLTTPCSliceTrackerComponent&);
112 /** instance of the tracker */
113 AliHLTTPCConfMapper* fTracker; //! transient
115 AliHLTTPCVertex* fVertex; //! transient
117 Float_t fEta[2]; // see above
118 /** switch for subsequent non-vertex tracking */
119 Bool_t fDoNonVertex; // see above
121 Bool_t fDoPP; // see above
122 /** multiplicity estimate */
123 Int_t fMultiplicity; // see above
124 /** magnetic field */
125 Double_t fBField; // see above
127 Bool_t fnonvertextracking; // enable NONVERTEX Tracking
128 Bool_t fmainvertextracking; // enable MAINVERTEX Tracking
131 AliHLTTPCInterMerger *fpInterMerger; //! transient
133 ClassDef(AliHLTTPCSliceTrackerComponent, 0);