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 */
6 ////////////////////////////////////////////////////////////////////////////
7 // Container class for laser track positions //
8 ////////////////////////////////////////////////////////////////////////////
17 ////////////////////////////////////////////////////////////////////////
18 // Class AliTPCLaserTracks
19 ////////////////////////////////////////////////////////////////////////
20 class AliTPCLaserTracks : public TObject {
24 AliTPCLaserTracks(Int_t npoints);
25 virtual ~AliTPCLaserTracks();
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; }
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;}
39 TPolyLine3D *GetLine();
40 Int_t SetPoint(Int_t point, Double_t x, Double_t y, Double_t z);
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; }
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;}
56 // void SetLine(TPolyLine3D *l) {fLine = l; }
58 void WriteTreeDesignData();
60 Int_t FindMirror(Char_t *file, Double_t x, Double_t y, Double_t z, Double_t phi);
62 TObjArray* GetLines(const Char_t* file, const Char_t *cuts="");
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)
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
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
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)
88 Double_t FindBeamLength(TVector3 vS, TVector3 vP);
91 AliTPCLaserTracks(const AliTPCLaserTracks ¶m); // copy constructor
92 AliTPCLaserTracks &operator = (const AliTPCLaserTracks & param);
94 ClassDef(AliTPCLaserTracks,1)