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