]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSTrackerV1.h
Record charged and neutral energy component separately.
[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
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.
10 //
11 // The method AliiTStracking is a recursive function that performs the
12 // tracking trough the ITS
13 //
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.
18 //
19 // The two mwthods Kalmanfilter and kalmanfiltervert operate the
20 // kalmanfilter without and with the verteximposition respectively.
21
22 #ifndef ALIITSTRACKERV1_H
23 #define ALIITSTRACKERV1_H
24
25 #include <TObject.h>
26
27 class AliITS;
28 class TObjArray;
29 class TVector;
30 class TMatrix;
31 class AliITSTrackV1;
32 class AliITS;
33 class AliITSRad;
34 class AliITSgeoinfo;
35 class TStopwatch;
36
37 class AliITSTrackerV1 : public TObject {
38  public:
39     AliITSTrackerV1();
40         AliITSTrackerV1(AliITS* IITTSS, Int_t evnumber, Bool_t flag);
41     AliITSTrackerV1(const AliITSTrackerV1 &cobj);
42     ~AliITSTrackerV1();
43     AliITSTrackerV1 &operator=(AliITSTrackerV1 obj);
44          void DelMatrix(Int_t NumOfModules);
45     void DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile *file, Bool_t realmass=0);
46     void RecursiveTracking(TList *trackITSlist);
47     Int_t Intersection(AliITSTrackV1 &track, Int_t layer,Int_t &ladder,
48                        Int_t &detector); 
49     void KalmanFilter(AliITSTrackV1 *newtrack, TVector &cluster,
50                       Double_t sigma[2]);
51     void KalmanFilterVert(AliITSTrackV1 *newtrack, TVector &cluster,
52                           Double_t sigma[2]);
53     //void KalmanFilterVert(AliITSTrackV1 *newtrack, TVector &cluster,
54     //                      Double_t sigma[2], Double_t chi2pred);
55  private:
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
78          /*
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   
82          */
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 
88  
89     ClassDef(AliITSTrackerV1,1)  
90 };
91
92 #endif