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 */
8 #include "AliExternalTrackParam.h"
14 class AliTPCLaserTrack : public AliExternalTrackParam {
17 AliTPCLaserTrack(const AliTPCLaserTrack <r);
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);
24 AliTPCLaserTrack& operator = (const AliTPCLaserTrack &source);
26 static void LoadTracks();
27 static TObjArray* GetTracks() {return fgArrLaserTracks;}
29 static Int_t IdentifyTrack(AliExternalTrackParam *track);
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; }
37 Float_t GetRayLength() const {return fRayLength;}
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; }
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;}
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)
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)
67 static TObjArray* fgArrLaserTracks; //! Array of all Laser Tracks,
68 // keeps instances of this class;
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
75 // static const char* fgkDataFileName = "$ALIC_ROOT/TPC/Calib/LaserTracks.root"; //Path to the Data File
77 ClassDef(AliTPCLaserTrack,2) // Laser Track positions and track identification