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