]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSTrackerV1.h
Updated version of tracking V1 from Angela e Giuseppe
[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          
56   private:
57
58     AliITS* fITS;              // pointer to AliITS
59          AliITSTrackV1 *fresult;    // result is a pointer to the final best track
60          Double_t fPtref;           // transvers momentum obtained from TPC tracking
61          TObjArray  *frecPoints;    // pointer to RecPoints
62          Int_t **fvettid;           // flag vector of used clusters
63          Bool_t fflagvert;          // a flag to impose or not the vertex constraint
64          AliITSRad *frl;            // pointer to get the radiation lenght matrix 
65          
66          Int_t fNlad[6];            // Number of ladders for a given layer
67          Int_t fNdet[6];            // Number of detector for a given layer
68          Double_t fAvrad[6];        // Average radius for a given layer
69          Double_t fDetx[6];         // Semidimension of detectors along x axis for a given layer
70          Double_t fDetz[6];         // Semidimension of detectors along z axis for a given layer
71          
72          Double_t **fzmin;          // Matrix of zmin for a given layer and a given detector
73          Double_t **fzmax;          // Matrix of zmax for a given layer and a given detector
74          
75          Double_t **fphimin;        // Matrix of phimin for a given layer and a given ladder
76          Double_t **fphimax;        // Matrix of phimax for a given layer and a given ladder
77          
78          Double_t **fphidet;        // azimuthal angle for a given layer and a given ladder
79          
80          Double_t fFieldFactor;     // Magnetic filed factor
81          
82          //TStopwatch *fTimerKalman;         // timer for kalman filter
83          //TStopwatch *fTimerIntersection;   // timer for Intersection
84          
85     ClassDef(AliITSTrackerV1,1)
86 };
87
88 #endif