]>
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(); | |
26 | ||
e19f5a2d | 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;} | |
1e9e3c7c | 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 | ||
f78da5ae | 62 | TObjArray* GetLines(const Char_t* file, const Char_t *cuts=""); |
1e9e3c7c | 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 | ||
af6a0f3f | 90 | private: |
91 | AliTPCLaserTracks(const AliTPCLaserTracks ¶m); // copy constructor | |
92 | AliTPCLaserTracks &operator = (const AliTPCLaserTracks & param); | |
93 | ||
1e9e3c7c | 94 | ClassDef(AliTPCLaserTracks,1) |
95 | }; | |
96 | ||
97 | ||
98 | ||
99 | #endif | |
100 |