]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCLaserTrack.h
Added AddTrackParams() method for convenience + some comments
[u/mrichter/AliRoot.git] / TPC / AliTPCLaserTrack.h
CommitLineData
23b18f4e 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
10class TObjArray;
11
12
13
14class AliTPCLaserTrack : public AliExternalTrackParam {
15public:
7804aba0 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
23b18f4e 55private:
7804aba0 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,
23b18f4e 68 // keeps instances of this class;
7804aba0 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
23b18f4e 75// static const char* fgkDataFileName = "$ALIC_ROOT/TPC/Calib/LaserTracks.root"; //Path to the Data File
7804aba0 76
77 ClassDef(AliTPCLaserTrack,2) // Laser Track positions and track identification
23b18f4e 78};
79
80#endif
81