]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCLaserTracks.h
Switch between Geant3 and Fluka introduced.
[u/mrichter/AliRoot.git] / TPC / AliTPCLaserTracks.h
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     AliTPCLaserTracks(const AliTPCLaserTracks &param); // copy constructor
28     AliTPCLaserTracks &operator = (const AliTPCLaserTracks & param);
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