Automatic treatment of the magnetic field value
[u/mrichter/AliRoot.git] / ITS / AliITSTrackerV1.h
1 //Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 //See cxx source for full Copyright notice                               */
3 //
4 //The purpose of this class is to permorm the ITS tracking.
5 //
6 //The constructor has the task to inizialize some private members.
7 //The method DoTracking is written to be called by a macro. It gets the event number, the minimum and maximum
8 //order number of TPC tracks that are to be tracked trough the ITS, and the file where the recpoints are
9 //registered.
10 //
11 //The method AliiTStracking is a recursive function that performs the tracking trough the ITS
12 //
13 //The method Intersection found the layer, ladder and detector whre the intersection take place and caluclate
14 //the cohordinates of this intersection.  It returns an integer that is 0 if the intersection has been found
15 //successfully.
16 //
17 //The two mwthods Kalmanfilter and kalmanfiltervert operate the kalmanfilter without and with the vertex
18 //imposition respectively.
19
20 #ifndef ALIITSTRACKERV1_H
21 #define ALIITSTRACKERV1_H
22
23 #include <TObject.h>
24
25 class AliITS;
26 class TObjArray;
27 class TVector;
28 class TMatrix;
29 class AliITSTrackV1;
30 class AliITS;
31 class AliITSRad;
32 class AliITSgeoinfo;
33
34 class AliITSTrackerV1 : public TObject {
35
36   public:
37     
38          AliITSTrackerV1(AliITS* IITTSS, Bool_t flag);
39          
40          AliITSTrackerV1(const AliITSTrackerV1 &cobj);
41            
42     AliITSTrackerV1 &operator=(AliITSTrackerV1 obj);
43          
44          void DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile *file);
45          
46          void RecursiveTracking(TList *trackITSlist);
47
48     Int_t Intersection(AliITSTrackV1 &track, Double_t rk,Int_t layer, Int_t &ladder, Int_t &detector); 
49
50     void KalmanFilter(AliITSTrackV1 *newtrack, TVector &cluster, Double_t sigma[2]);
51     
52     void KalmanFilterVert(AliITSTrackV1 *newtrack, TVector &cluster, Double_t sigma[2]);
53          
54   private:
55
56     AliITS* fITS;              // pointer to AliITS
57          AliITSTrackV1 *fresult;    // result is a pointer to the final best track
58          Double_t fPtref;           // transvers momentum obtained from TPC tracking
59          TObjArray  *frecPoints;    // pointer to RecPoints
60          Int_t **fvettid;           // flag vector of used clusters
61          Bool_t fflagvert;          // a flag to impose or not the vertex constraint
62          AliITSRad *frl;            // pointer to get the radiation lenght matrix 
63          
64          Int_t fNlad[6];            // Number of ladders for a given layer
65          Int_t fNdet[6];            // Number of detector for a given layer
66          Float_t fAvrad[6];         // Average radius for a given layer
67          Float_t fDetx[6];          // Semidimension of detectors along x axis for a given layer
68          Float_t fDetz[6];          // Semidimension of detectors along z axis for a given layer
69          
70          Double_t fFieldFactor;      // Magnetic filed factor
71          
72
73     ClassDef(AliITSTrackerV1,1)
74 };
75
76 #endif