]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCLaserTracks.h
Class with TPC laser track description (M.Ivanov +Jens Wiechula)
[u/mrichter/AliRoot.git] / TPC / AliTPCLaserTracks.h
1 #ifndef ALITPCLASERTRACKS_H
2 #define ALITPCLASERTRACKS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ////////////////////////////////////////////////////////////////////////////
7 //              Container class for laser track positions                 //
8 ////////////////////////////////////////////////////////////////////////////
9
10 class TString;
11 //class TPolyLine3D;
12 class TObjArray;
13 class TGraph;
14 class TVector3;
15
16 #include <TPolyLine3D.h>
17
18 ////////////////////////////////////////////////////////////////////////
19 //              Class AliTPCLaserTracks
20 ////////////////////////////////////////////////////////////////////////
21 class AliTPCLaserTracks : public TObject {
22
23 public:
24     AliTPCLaserTracks();
25     AliTPCLaserTracks(Int_t npoints);
26     virtual ~AliTPCLaserTracks();
27
28     Int_t GetId()    {return fId;     }
29     Int_t GetSide()  {return fSide;   }
30     Int_t GetRod()   {return fRod;    }
31     Int_t GetBundle(){return fBundle; }
32     Int_t GetBeam()  {return fBeam;   }
33
34     Double_t GetX()    {return fX;    }
35     Double_t GetY()    {return fY;    }
36     Double_t GetZ()    {return fZ;    }
37     Double_t GetPhi()  {return fPhi;  }
38     Double_t GetTheta(){return fTheta;}
39
40     TPolyLine3D *GetLine();
41     Int_t SetPoint(Int_t point, Double_t x, Double_t y, Double_t z);
42
43
44
45     void SetId    (Int_t id)    {fId     = id;    }
46     void SetSide  (Int_t side)  {fSide   = side;  }
47     void SetRod   (Int_t rod)   {fRod    = rod;   }
48     void SetBundle(Int_t bundle){fBundle = bundle;}
49     void SetBeam  (Int_t beam)  {fBeam   = beam;  }
50
51     void SetX    (Double_t x)    {fX     = x;    }
52     void SetY    (Double_t y)    {fY     = y;    }
53     void SetZ    (Double_t z)    {fZ     = z;    }
54     void SetPhi  (Double_t phi)  {fPhi   = phi;  }
55     void SetTheta(Double_t theta){fTheta = theta;}
56
57 //    void SetLine(TPolyLine3D *l) {fLine  = l;    }
58
59     void WriteTreeDesignData();
60
61     Int_t FindMirror(Char_t *file, Double_t x, Double_t y, Double_t z, Double_t phi);
62
63     TObjArray* GetLines(Char_t* file, Char_t *cuts="");
64
65 protected:
66     Int_t fId;              //Laser beam id            (0-335)
67     Int_t fSide;            //TPC side; 0:Shaft Side (A) -- 1:Muon Side (C)
68     Int_t fRod;             //Laser Rod                (0-5)
69     Int_t fBundle;          //Mirror bundle in the Rod (0-3)
70     Int_t fBeam;            //Laser Beam in the bundle (0-6)
71
72     Double_t fX;             //X-position of the mirror in the bundle
73     Double_t fY;             //Y-position of the mirror in the bundle
74     Double_t fZ;             //Z-position of the mirror in the bundle
75     Double_t fTime;          //time-position of the mirror in the bundle
76     Double_t fPhi;           //Phi direction of the laser beam
77     Double_t fTheta;         //Theta direction of the laser beam
78
79 //    TPolyLine3D *fLine;      //Line of the track in the TPC
80     Int_t fMaxSize;          //! Number of points in array
81     Int_t fNpoints;          //Number of points
82
83     Double_t  *fXarr;            //[fNpoints] array of a line (x,y,z)
84     Double_t  *fYarr;            //[fNpoints] array of a line (x,y,z)
85     Double_t  *fZarr;            //[fNpoints] array of a line (x,y,z)
86
87     void InitPoints();
88
89     Double_t FindBeamLength(TVector3 vS, TVector3 vP);
90
91     ClassDef(AliTPCLaserTracks,1)
92 };
93
94
95
96 #endif
97