]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCLaserTrack.h
Adding the class for Cosmic events
[u/mrichter/AliRoot.git] / TPC / AliTPCLaserTrack.h
1 #ifndef ALITPCLASERTRACK
2 #define ALITPCLASERTRACK
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #include <TString.h>
7
8 #include "AliExternalTrackParam.h"
9
10 class TObjArray;
11
12
13
14 class AliTPCLaserTrack : public AliExternalTrackParam {
15 public:
16     AliTPCLaserTrack();
17     AliTPCLaserTrack(AliTPCLaserTrack &ltr);
18     AliTPCLaserTrack(const Int_t id, const Int_t side, const Int_t rod,
19                      const Int_t bundle, const Int_t beam,
20                      Double_t x, Double_t alpha,
21                      const Double_t param[5],
22                      const Double_t covar[15]);
23
24
25     static void LoadTracks();
26     static TObjArray* GetTracks() {return fgArrLaserTracks;}
27
28     static Int_t IdentifyTrack(AliExternalTrackParam *track);
29
30     Int_t GetId()     const {return fId;     }
31     Int_t GetSide()   const {return fSide;   }
32     Int_t GetRod()    const {return fRod;    }
33     Int_t GetBundle() const {return fBundle; }
34     Int_t GetBeam()   const {return fBeam;   }
35
36     
37
38     static Int_t GetNLaserTracks() { return fgkNLaserTracks; }
39     static Int_t GetNLaserRodsPerSide() { return fgkNRodsPerSide; }
40     static Int_t GetNMirrorBundlesPerRod() { return fgkNBundlePerRod; }
41     static Int_t GetNLaserRaysPerMirrorBundle() { return fgkNBeamsPerBundle; }
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
51 private:
52     Int_t fId;              //Laser beam id            (0-335)
53     Int_t fSide;            //TPC side; 0:Shaft Side (A) -- 1:Muon Side (C)
54     Int_t fRod;             //Laser Rod                (0-5)
55     Int_t fBundle;          //Mirror bundle in the Rod (0-3)
56     Int_t fBeam;            //Laser Beam in the bundle (0-6)
57
58
59     static TObjArray* fgArrLaserTracks; //! Array of all Laser Tracks,
60                                         //  keeps instances of this class;
61
62     static const Int_t fgkNLaserTracks    = 336; //Number of laser tracks
63     static const Int_t fgkNRodsPerSide    = 6;   //Number of laser rods on each readout side
64     static const Int_t fgkNBundlePerRod   = 4;   //Number of mirror bundles per rod
65     static const Int_t fgkNBeamsPerBundle = 7;   //Number of laser rays per bundle
66
67 //    static const char* fgkDataFileName = "$ALIC_ROOT/TPC/Calib/LaserTracks.root";  //Path to the Data File
68
69     ClassDef(AliTPCLaserTrack,1)        // Laser Track positions and track identification
70 };
71
72 #endif
73