]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliTrackPoints.h
Two new functions provided by the HMPID team (K.Shileev)
[u/mrichter/AliRoot.git] / ANALYSIS / AliTrackPoints.h
1 #ifndef AliTrackPoints_H
2 #define AliTrackPoints_H
3 //_________________________________
4 ////////////////////////////////////////////////////////////
5 //                                                        //
6 // class AliTrackPoints                                //
7 //                                                        //
8 // used by Anti-Merging cut                               //
9 // contains set of poits the lay on track trajectory      //
10 // according to reconstructed track parameters -          //
11 // NOT CLUSTERS POSITIONS!!!                              //
12 // Anti-Merging cut is applied only on tracks coming from //
13 // different events (that are use to fill deniminators)   //
14 //                                                        //
15 ////////////////////////////////////////////////////////////
16 #include <TObject.h>
17
18 class AliTPCtrack;
19 class AliESDtrack;
20
21 class AliTrackPoints: public TObject
22 {
23   public:
24     typedef enum
25       {//defines the type and the track points are calculated
26         kITS = 1,//points calculated in ITS, made out of the vector at vertex
27         kITSInnerFromVertexOuterFromTPC //for ITS, for 3 inner layers calculated out of the vector at vertex
28                                         //         for 3 outer ---------------//------------------ at inner TPC
29       } ETypes;
30
31     AliTrackPoints();
32     AliTrackPoints(AliTrackPoints::ETypes type, AliESDtrack* track, Float_t mf);
33     AliTrackPoints(Int_t n, AliESDtrack* track, Float_t mf, Float_t dr=30,Float_t r0 = 84.1); //min TPC R  = 84.1; max TPC R =  246.6cm, 
34     AliTrackPoints(Int_t n, AliTPCtrack* track, Float_t dr=30, Float_t r0 = 84.1); //min TPC R  = 84.1; max TPC R =  246.6cm, 
35     
36     virtual ~AliTrackPoints();
37     
38     Double_t AvarageDistance(const AliTrackPoints& tr);
39     void PositionAt(Int_t n, Float_t &x, Float_t &y, Float_t &z);
40     void Move(Float_t x, Float_t y, Float_t z);
41     Int_t GetN() const {return fN;}
42
43     Int_t GetDebug() const {return fgDebug;}
44     void  SetDebug(Int_t deblevel){fgDebug = deblevel;} 
45     static void Testtpc(Int_t entr);
46     static void Testesd(Int_t entr,const char* fname = "AliESDs.root");
47     void Print(Option_t* /*option*/ = "") const;
48     
49   protected:
50     void MakePoints( Float_t dr, Float_t r0, Double_t x, Double_t* par, Double_t c, Double_t alpha);
51     void MakeITSPoints(AliESDtrack* track);
52     void MakeITSPointsInnerFromVertexOuterFromTPC(AliESDtrack* track,Float_t mf);
53     
54   private:
55     AliTrackPoints(const AliTrackPoints& in);
56     AliTrackPoints& operator=(const AliTrackPoints& in);
57
58     Int_t    fN;//number of points
59     Float_t* fX;//[fN]positions at x
60     Float_t* fY;//[fN]positions at y
61     Float_t* fZ;//[fN] positions at z
62 //    Float_t* fR;//! [fN] radii
63     static Int_t fgDebug;//! debug level
64     ClassDef(AliTrackPoints,1)
65 };
66 #endif