AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliTPCLaserTrack.h
Go to the documentation of this file.
1 #ifndef ALITPCLASERTRACK_H
2 #define ALITPCLASERTRACK_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
7 
8 #include <TString.h>
9 
10 #include "AliExternalTrackParam.h"
11 #include "TVectorD.h"
12 
13 class TObjArray;
14 
15 
16 
17 class AliTPCLaserTrack : public AliExternalTrackParam {
18 public:
22  AliTPCLaserTrack(const Int_t id, const Int_t side, const Int_t rod,
23  const Int_t bundle, const Int_t beam,
24  Double_t x, Double_t alpha,
25  const Double_t param[5],
26  const Double_t covar[15], const Float_t rayLength=0);
27 
29  void UpdatePoints(); // update track points
30  static void LoadTracks();
31  static TObjArray* GetTracks() {return fgArrLaserTracks;}
32 
33  static Int_t IdentifyTrack(AliExternalTrackParam *track, Int_t side=-1);
34 
35  Int_t GetId() const {return fId; }
36  Int_t GetSide() const {return fSide; }
37  Int_t GetRod() const {return fRod; }
38  Int_t GetBundle() const {return fBundle; }
39  Int_t GetBeam() const {return fBeam; }
40 
41  Float_t GetRayLength() const {return fRayLength;}
42 
43 
44 
45  static Int_t GetNLaserTracks() { return fgkNLaserTracks; }
46  static Int_t GetNLaserRodsPerSide() { return fgkNRodsPerSide; }
47  static Int_t GetNMirrorBundlesPerRod() { return fgkNBundlePerRod; }
49 
50 
51  void SetId (Int_t id) {fId = id; }
52  void SetSide (Int_t side) {fSide = side; }
53  void SetRod (Int_t rod) {fRod = rod; }
54  void SetBundle(Int_t bundle){fBundle = bundle;}
55  void SetBeam (Int_t beam) {fBeam = beam; }
56  void SetRayLength (Float_t len) {fRayLength = len;}
57 
58  const TVectorD* GetVecSec() const { return fVecSec; }
59  const TVectorD* GetVecP2() const { return fVecP2; }
60  const TVectorD* GetVecPhi() const { return fVecPhi; }
61  const TVectorD* GetVecGX() const { return fVecGX; }
62  const TVectorD* GetVecGY() const { return fVecGY; }
63  const TVectorD* GetVecGZ() const { return fVecGZ; }
64  const TVectorD* GetVecLX() const { return fVecLX; }
65  const TVectorD* GetVecLY() const { return fVecLY; }
66  const TVectorD* GetVecLZ() const { return fVecLZ; }
67 
68 private:
69  Int_t fId;
70  Int_t fSide;
71  Int_t fRod;
72  Int_t fBundle;
73  Int_t fBeam;
74 
75  Float_t fRayLength;
76  //(Splitter box on the A-Side at the bottom of the TPC)
77  //to each mirror [cm](needed for an exact drift velocity estimation)
78 public:
79  TVectorD *fVecSec;
80  TVectorD *fVecP2;
81  TVectorD *fVecPhi;
82  TVectorD *fVecGX;
83  TVectorD *fVecGY;
84  TVectorD *fVecGZ;
85  TVectorD *fVecLX;
86  TVectorD *fVecLY;
87  TVectorD *fVecLZ;
88 private:
90  // keeps instances of this class;
91 
92  static const Int_t fgkNLaserTracks = 336;
93  static const Int_t fgkNRodsPerSide = 6;
94  static const Int_t fgkNBundlePerRod = 4;
95  static const Int_t fgkNBeamsPerBundle = 7;
96 
97 // static const char* fgkDataFileName = "$ALIC_ROOT/TPC/Calib/LaserTracks.root"; //Path to the Data File
98 
100  ClassDef(AliTPCLaserTrack,3) // Laser Track positions and track identification
102 };
103 
104 #endif
105 
TVectorD * fVecGX
points vectors - globalX
static Int_t GetNLaserRodsPerSide()
Float_t GetRayLength() const
Int_t fBundle
Mirror bundle in the Rod (0-3)
void SetSide(Int_t side)
static Int_t GetNLaserTracks()
#define TObjArray
static void LoadTracks()
void SetRod(Int_t rod)
const TVectorD * GetVecLZ() const
AliTPCLaserTrack & operator=(const AliTPCLaserTrack &source)
Int_t GetBundle() const
const TVectorD * GetVecGX() const
void SetBeam(Int_t beam)
static const Int_t fgkNRodsPerSide
Number of laser rods on each readout side.
const TVectorD * GetVecGY() const
Int_t GetRod() const
TVectorD * fVecLZ
points vectors - localZ
AliTPCfastTrack * track
Int_t fSide
TPC side; 0:Shaft Side (A) – 1:Muon Side (C)
static const Int_t fgkNLaserTracks
Number of laser tracks.
static Int_t GetNLaserRaysPerMirrorBundle()
Int_t GetBeam() const
TVectorD * fVecLY
points vectors - localY
void SetRayLength(Float_t len)
const TVectorD * GetVecLX() const
Int_t fRod
Laser Rod (0-5)
const TVectorD * GetVecLY() const
TVectorD * fVecLX
points vectors - localX
Int_t GetId() const
Surveyed Laser Track positions.
TVectorD * fVecGY
points vectors - globalY
static Int_t GetNMirrorBundlesPerRod()
Int_t fId
Laser beam id (0-335)
static Int_t IdentifyTrack(AliExternalTrackParam *track, Int_t side=-1)
Int_t GetSide() const
const TVectorD * GetVecPhi() const
static TObjArray * GetTracks()
void SetBundle(Int_t bundle)
TVectorD * fVecGZ
points vectors - globalZ
static const Int_t fgkNBundlePerRod
Number of mirror bundles per rod.
Float_t fRayLength
distance from the last common point of the laser Rays
const TVectorD * GetVecGZ() const
static const Int_t fgkNBeamsPerBundle
Number of laser rays per bundle.
const TVectorD * GetVecSec() const
void SetId(Int_t id)
static TObjArray * fgArrLaserTracks
! Array of all Laser Tracks,
const TVectorD * GetVecP2() const
Int_t fBeam
Laser Beam in the bundle (0-6)