1 //Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
2 //See cxx source for full Copyright notice
4 //The purpose of this class is to permorm the ITS tracking.
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
8 // number, the minimum and maximum order number of TPC tracks that are to be
9 // tracked trough the ITS, and the file where the recpoints are registered.
11 // The method AliiTStracking is a recursive function that performs the
12 // tracking trough the ITS
14 // The method Intersection found the layer, ladder and detector where the
15 // intersection take place and caluclate the cohordinates of this
16 // intersection. It returns an integer that is 0 if the intersection has
17 // been found successfully.
19 // The two mwthods Kalmanfilter and kalmanfiltervert operate the
20 // kalmanfilter without and with the verteximposition respectively.
22 #ifndef ALIITSTRACKERV1_H
23 #define ALIITSTRACKERV1_H
36 class AliITSTrackerV1 : public TObject {
39 AliITSTrackerV1(AliITS* IITTSS, Int_t evnumber, Bool_t flag);
40 AliITSTrackerV1(const AliITSTrackerV1 &cobj);
42 AliITSTrackerV1 &operator=(const AliITSTrackerV1 &obj);
43 // void DelMatrix(Int_t NumOfModules);
44 void DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile *file, Bool_t realmass=0);
45 void RecursiveTracking(TList *trackITSlist);
46 Int_t Intersection(AliITSTrackV1 &track, Int_t layer,Int_t &ladder,
48 void KalmanFilter(AliITSTrackV1 *newtrack, TVector &cluster,
50 void KalmanFilterVert(AliITSTrackV1 *newtrack, TVector &cluster,
52 //void KalmanFilterVert(AliITSTrackV1 *newtrack, TVector &cluster,
53 // Double_t sigma[2], Double_t chi2pred);
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 Double_t fChi2max; // chi2 cut
60 //Double_t fepsphi; //eps for definition window in phi
61 // Double_t fepsz; //eps for definition window in z
62 TClonesArray *frecPoints; // pointer to RecPoints
63 Int_t **fvettid; // flag vector of used clusters
64 Bool_t fflagvert; // a flag to impose or not the vertex constraint
65 AliITSRad *frl; // pointer to get the radiation lenght matrix
66 /// To be put in a specific geometric class
67 Int_t fNlad[6]; // Number of ladders for a given layer
68 Int_t fNdet[6]; // Number of detector for a given layer
69 Double_t fAvrad[6]; // Average radius for a given layer
70 Double_t fDetx[6];// Semidimension of detectors along x axis for a given layer
71 Double_t fDetz[6];// Semidimension of detectors along z axis for a given layer
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 Double_t **fphimin;// Matrix of phimin for a given layer and a given ladder
75 Double_t **fphimax;// Matrix of phimax for a given layer and a given ladder
76 Double_t **fphidet; // azimuthal angle for a given layer and a given ladder
77 Int_t *fNRecPoints; // pointer to the vector giving the number of recpoints for a given module
79 Float_t **fRecCylR; // pointer to the matrix giving the R cylindric cohordinate of a recpoint
80 Float_t **fRecCylPhi; // pointer to the matrix giving the Phi cylindric cohordinate of a recpoint
81 Float_t **fRecCylZ; // pointer to the matrix giving the Z cylindric cohordinate of a recpoint
83 Double_t **fRecCylR; // pointer to the matrix giving the R cylindric cohordinate of a recpoint
84 Double_t **fRecCylPhi; // pointer to the matrix giving the Phi cylindric cohordinate of a recpoint
85 Double_t **fRecCylZ; // pointer to the matrix giving the Z cylindric cohordinate of a recpoint
86 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
87 Double_t fFieldFactor; // Magnetic field factor
89 ClassDef(AliITSTrackerV1,1)