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