]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCLaserTracks.h
fix from previous commit
[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
17 ////////////////////////////////////////////////////////////////////////
18 //              Class AliTPCLaserTracks
19 ////////////////////////////////////////////////////////////////////////
20 class AliTPCLaserTracks : public TObject {
21
22 public:
23     AliTPCLaserTracks();
24     AliTPCLaserTracks(Int_t npoints);
25     virtual ~AliTPCLaserTracks();
26
27     Int_t GetId()    const {return fId;     }
28     Int_t GetSide()  const {return fSide;   }
29     Int_t GetRod()   const {return fRod;    }
30     Int_t GetBundle() const {return fBundle; }
31     Int_t GetBeam()  const {return fBeam;   }
32
33     Double_t GetX()  const  {return fX;    }
34     Double_t GetY()  const   {return fY;    }
35     Double_t GetZ()  const  {return fZ;    }
36     Double_t GetPhi() const  {return fPhi;  }
37     Double_t GetTheta() const{return fTheta;}
38
39     TPolyLine3D *GetLine();
40     Int_t SetPoint(Int_t point, Double_t x, Double_t y, Double_t z);
41
42
43
44     void SetId    (Int_t id)    {fId     = id;    }
45     void SetSide  (Int_t side)  {fSide   = side;  }
46     void SetRod   (Int_t rod)   {fRod    = rod;   }
47     void SetBundle(Int_t bundle){fBundle = bundle;}
48     void SetBeam  (Int_t beam)  {fBeam   = beam;  }
49
50     void SetX    (Double_t x)    {fX     = x;    }
51     void SetY    (Double_t y)    {fY     = y;    }
52     void SetZ    (Double_t z)    {fZ     = z;    }
53     void SetPhi  (Double_t phi)  {fPhi   = phi;  }
54     void SetTheta(Double_t theta){fTheta = theta;}
55
56 //    void SetLine(TPolyLine3D *l) {fLine  = l;    }
57
58     void WriteTreeDesignData();
59
60     Int_t FindMirror(Char_t *file, Double_t x, Double_t y, Double_t z, Double_t phi);
61
62     TObjArray* GetLines(const Char_t* file, const Char_t *cuts="");
63
64 protected:
65     Int_t fId;              //Laser beam id            (0-335)
66     Int_t fSide;            //TPC side; 0:Shaft Side (A) -- 1:Muon Side (C)
67     Int_t fRod;             //Laser Rod                (0-5)
68     Int_t fBundle;          //Mirror bundle in the Rod (0-3)
69     Int_t fBeam;            //Laser Beam in the bundle (0-6)
70
71     Double_t fX;             //X-position of the mirror in the bundle
72     Double_t fY;             //Y-position of the mirror in the bundle
73     Double_t fZ;             //Z-position of the mirror in the bundle
74     Double_t fTime;          //time-position of the mirror in the bundle
75     Double_t fPhi;           //Phi direction of the laser beam
76     Double_t fTheta;         //Theta direction of the laser beam
77
78 //    TPolyLine3D *fLine;      //Line of the track in the TPC
79     Int_t fMaxSize;          //! Number of points in array
80     Int_t fNpoints;          //Number of points
81
82     Double_t  *fXarr;            //[fNpoints] array of a line (x,y,z)
83     Double_t  *fYarr;            //[fNpoints] array of a line (x,y,z)
84     Double_t  *fZarr;            //[fNpoints] array of a line (x,y,z)
85
86     void InitPoints();
87
88     Double_t FindBeamLength(TVector3 vS, TVector3 vP);
89
90 private:
91     AliTPCLaserTracks(const AliTPCLaserTracks &param); // copy constructor
92     AliTPCLaserTracks &operator = (const AliTPCLaserTracks & param);
93
94     ClassDef(AliTPCLaserTracks,1)
95 };
96
97
98
99 #endif
100