]>
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(); | |
e046d791 | 27 | AliTPCLaserTracks(const AliTPCLaserTracks ¶m); // 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 | ||
67 | protected: | |
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 |