]>
Commit | Line | Data |
---|---|---|
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 | ||
10 | class TObjArray; | |
11 | ||
12 | ||
13 | ||
14 | class AliTPCLaserTrack : public AliExternalTrackParam { | |
15 | public: | |
7804aba0 | 16 | AliTPCLaserTrack(); |
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); | |
23 | ||
24 | AliTPCLaserTrack& operator = (const AliTPCLaserTrack &source); | |
25 | ||
26 | static void LoadTracks(); | |
27 | static TObjArray* GetTracks() {return fgArrLaserTracks;} | |
28 | ||
38b1a1ca | 29 | static Int_t IdentifyTrack(AliExternalTrackParam *track, Int_t side=-1); |
7804aba0 | 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 | 55 | private: |
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) | |
cc65e4f5 | 64 | //to each mirror [cm](needed for an exact drift velocity estimation) |
7804aba0 | 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 |