]>
Commit | Line | Data |
---|---|---|
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 | ||
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 |