]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCLaserTrack.h
Extacting the OCDB in a separate module. The detectors have write permission in the...
[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(const 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], const Float_t rayLength=0);
23   
24   AliTPCLaserTrack& operator = (const  AliTPCLaserTrack &source);
25   
26   static void LoadTracks();
27   static TObjArray* GetTracks() {return fgArrLaserTracks;}
28   
29   static Int_t IdentifyTrack(AliExternalTrackParam *track);
30   
31   Int_t GetId()     const {return fId;     }
32   Int_t GetSide()   const {return fSide;   }
33   Int_t GetRod()    const {return fRod;    }
34   Int_t GetBundle() const {return fBundle; }
35   Int_t GetBeam()   const {return fBeam;   }
36
37   Float_t GetRayLength() const {return fRayLength;}
38   
39   
40   
41   static Int_t GetNLaserTracks() { return fgkNLaserTracks; }
42   static Int_t GetNLaserRodsPerSide() { return fgkNRodsPerSide; }
43   static Int_t GetNMirrorBundlesPerRod() { return fgkNBundlePerRod; }
44   static Int_t GetNLaserRaysPerMirrorBundle() { return fgkNBeamsPerBundle; }
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   void SetRayLength (Float_t len) {fRayLength = len;}
53   
54   
55 private:
56   Int_t fId;              //Laser beam id            (0-335)
57   Int_t fSide;            //TPC side; 0:Shaft Side (A) -- 1:Muon Side (C)
58   Int_t fRod;             //Laser Rod                (0-5)
59   Int_t fBundle;          //Mirror bundle in the Rod (0-3)
60   Int_t fBeam;            //Laser Beam in the bundle (0-6)
61   
62   Float_t fRayLength;     //distance from the last common point of the laser Rays
63                           //(Splitter box on the A-Side at the bottom of the TPC)
64                           //to each mirror (needed for an exact drift velocity estimation)
65   
66   
67   static TObjArray* fgArrLaserTracks; //! Array of all Laser Tracks,
68                                         //  keeps instances of this class;
69   
70   static const Int_t fgkNLaserTracks    = 336; //Number of laser tracks
71   static const Int_t fgkNRodsPerSide    = 6;   //Number of laser rods on each readout side
72   static const Int_t fgkNBundlePerRod   = 4;   //Number of mirror bundles per rod
73   static const Int_t fgkNBeamsPerBundle = 7;   //Number of laser rays per bundle
74   
75 //    static const char* fgkDataFileName = "$ALIC_ROOT/TPC/Calib/LaserTracks.root";  //Path to the Data File
76   
77   ClassDef(AliTPCLaserTrack,2)        // Laser Track positions and track identification
78 };
79
80 #endif
81