]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSTrackerV1.h
Updated version of tracking V1. Tracking time reduced by a factor of 5
[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 class TStopwatch;
34
35 class AliITSTrackerV1 : public TObject {
36
37   public:
38     
39          AliITSTrackerV1(AliITS* IITTSS, Bool_t flag);
40          
41          AliITSTrackerV1(const AliITSTrackerV1 &cobj);
42          
43          ~AliITSTrackerV1();
44            
45     AliITSTrackerV1 &operator=(AliITSTrackerV1 obj);
46          
47          void DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile *file);
48          
49          void RecursiveTracking(TList *trackITSlist);
50  
51     Int_t Intersection(AliITSTrackV1 &track, Int_t layer, Int_t &ladder, Int_t &detector); 
52     void KalmanFilter(AliITSTrackV1 *newtrack, TVector &cluster, Double_t sigma[2]);
53     
54    // void KalmanFilterVert(AliITSTrackV1 *newtrack, TVector &cluster, Double_t sigma[2]);
55         void KalmanFilterVert(AliITSTrackV1 *newtrack, TVector &cluster, Double_t sigma[2], Double_t chi2pred);
56          
57   private:
58
59     AliITS* fITS;              // pointer to AliITS
60          AliITSTrackV1 *fresult;    // result is a pointer to the final best track
61          Double_t fPtref;           // transvers momentum obtained from TPC tracking
62          Double_t fChi2max;          //  cluster with chi2>chi2max are cut. It is pt dependend.  aggiunto il 31-7-2001
63          Double_t fepsphi;           //eps for definition window in phi    //aggiunto il 1-8-2001
64          Double_t fepsz;             //eps for definition window in z      //aggiunto il 1-8-2001
65          TObjArray  *frecPoints;    // pointer to RecPoints
66          Int_t **fvettid;           // flag vector of used clusters
67          Bool_t fflagvert;          // a flag to impose or not the vertex constraint
68          AliITSRad *frl;            // pointer to get the radiation lenght matrix 
69          
70          Int_t fNlad[6];            // Number of ladders for a given layer
71          Int_t fNdet[6];            // Number of detector for a given layer
72          Double_t fAvrad[6];        // Average radius for a given layer
73          Double_t fDetx[6];         // Semidimension of detectors along x axis for a given layer
74          Double_t fDetz[6];         // Semidimension of detectors along z axis for a given layer
75          
76          Double_t **fzmin;          // Matrix of zmin for a given layer and a given detector
77          Double_t **fzmax;          // Matrix of zmax for a given layer and a given detector
78          
79          Double_t **fphimin;        // Matrix of phimin for a given layer and a given ladder
80          Double_t **fphimax;        // Matrix of phimax for a given layer and a given ladder
81          
82          Double_t **fphidet;        // azimuthal angle for a given layer and a given ladder
83          
84          Double_t fFieldFactor;     // Magnetic filed factor
85          
86          //TStopwatch *fTimerKalman;         // timer for kalman filter
87          //TStopwatch *fTimerIntersection;   // timer for Intersection
88          
89     ClassDef(AliITSTrackerV1,1)
90 };
91
92 #endif