X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCLaserTrack.h;h=50e404ba669aa19d4cb03f3032094adff23de18b;hb=253cab770f7d9d83273a87891ebd519029730e0a;hp=1866c5eeab079c0b467fe6aed917f9396646bc24;hpb=23b18f4e7b05e90e11b0306a82e6a5fd35e32f08;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCLaserTrack.h b/TPC/AliTPCLaserTrack.h index 1866c5eeab0..50e404ba669 100644 --- a/TPC/AliTPCLaserTrack.h +++ b/TPC/AliTPCLaserTrack.h @@ -1,11 +1,17 @@ -#ifndef ALITPCLASERTRACK -#define ALITPCLASERTRACK +#ifndef ALITPCLASERTRACK_H +#define ALITPCLASERTRACK_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ +//////////////////////////////////////////////////////////////////////////// +// +// Surveyed Laser Track positions +// +//////////////////////////////////////////////////////////////////////////// #include #include "AliExternalTrackParam.h" +#include "TVectorD.h" class TObjArray; @@ -13,58 +19,87 @@ class TObjArray; class AliTPCLaserTrack : public AliExternalTrackParam { public: - AliTPCLaserTrack(); - AliTPCLaserTrack(AliTPCLaserTrack <r); - AliTPCLaserTrack(const Int_t id, const Int_t side, const Int_t rod, - const Int_t bundle, const Int_t beam, - Double_t x, Double_t alpha, - const Double_t param[5], - const Double_t covar[15]); - - - static void LoadTracks(); - static TObjArray* GetTracks() {return fgArrLaserTracks;} - - static Int_t IdentifyTrack(AliExternalTrackParam *track); - - Int_t GetId() const {return fId; } - Int_t GetSide() const {return fSide; } - Int_t GetRod() const {return fRod; } - Int_t GetBundle() const {return fBundle; } - Int_t GetBeam() const {return fBeam; } - - static Int_t GetNLaserTracks() { return fgkNLaserTracks; } - static Int_t GetNLaserRodsPerSide() { return fgkNRodsPerSide; } - static Int_t GetNMirrorBundlesPerRod() { return fgkNBundlePerRod; } - static Int_t GetNLaserRaysPerMirrorBundle() { return fgkNBeamsPerBundle; } - - - void SetId (Int_t id) {fId = id; } - void SetSide (Int_t side) {fSide = side; } - void SetRod (Int_t rod) {fRod = rod; } - void SetBundle(Int_t bundle){fBundle = bundle;} - void SetBeam (Int_t beam) {fBeam = beam; } - - + AliTPCLaserTrack(); + ~AliTPCLaserTrack(); + AliTPCLaserTrack(const AliTPCLaserTrack <r); + AliTPCLaserTrack(const Int_t id, const Int_t side, const Int_t rod, + const Int_t bundle, const Int_t beam, + Double_t x, Double_t alpha, + const Double_t param[5], + const Double_t covar[15], const Float_t rayLength=0); + + AliTPCLaserTrack& operator = (const AliTPCLaserTrack &source); + void UpdatePoints(); // update track points + static void LoadTracks(); + static TObjArray* GetTracks() {return fgArrLaserTracks;} + + static Int_t IdentifyTrack(AliExternalTrackParam *track, Int_t side=-1); + + Int_t GetId() const {return fId; } + Int_t GetSide() const {return fSide; } + Int_t GetRod() const {return fRod; } + Int_t GetBundle() const {return fBundle; } + Int_t GetBeam() const {return fBeam; } + + Float_t GetRayLength() const {return fRayLength;} + + + + static Int_t GetNLaserTracks() { return fgkNLaserTracks; } + static Int_t GetNLaserRodsPerSide() { return fgkNRodsPerSide; } + static Int_t GetNMirrorBundlesPerRod() { return fgkNBundlePerRod; } + static Int_t GetNLaserRaysPerMirrorBundle() { return fgkNBeamsPerBundle; } + + + void SetId (Int_t id) {fId = id; } + void SetSide (Int_t side) {fSide = side; } + void SetRod (Int_t rod) {fRod = rod; } + void SetBundle(Int_t bundle){fBundle = bundle;} + void SetBeam (Int_t beam) {fBeam = beam; } + void SetRayLength (Float_t len) {fRayLength = len;} + + const TVectorD* GetVecSec() const { return fVecSec; } + const TVectorD* GetVecP2() const { return fVecP2; } + const TVectorD* GetVecPhi() const { return fVecPhi; } + const TVectorD* GetVecGX() const { return fVecGX; } + const TVectorD* GetVecGY() const { return fVecGY; } + const TVectorD* GetVecGZ() const { return fVecGZ; } + const TVectorD* GetVecLX() const { return fVecLX; } + const TVectorD* GetVecLY() const { return fVecLY; } + const TVectorD* GetVecLZ() const { return fVecLZ; } + private: - Int_t fId; //Laser beam id (0-335) - Int_t fSide; //TPC side; 0:Shaft Side (A) -- 1:Muon Side (C) - Int_t fRod; //Laser Rod (0-5) - Int_t fBundle; //Mirror bundle in the Rod (0-3) - Int_t fBeam; //Laser Beam in the bundle (0-6) - - - static TObjArray* fgArrLaserTracks; //! Array of all Laser Tracks, + Int_t fId; //Laser beam id (0-335) + Int_t fSide; //TPC side; 0:Shaft Side (A) -- 1:Muon Side (C) + Int_t fRod; //Laser Rod (0-5) + Int_t fBundle; //Mirror bundle in the Rod (0-3) + Int_t fBeam; //Laser Beam in the bundle (0-6) + + Float_t fRayLength; //distance from the last common point of the laser Rays + //(Splitter box on the A-Side at the bottom of the TPC) + //to each mirror [cm](needed for an exact drift velocity estimation) +public: + TVectorD *fVecSec; // - sector numbers + TVectorD *fVecP2; // - P2 + TVectorD *fVecPhi; // - global phi + TVectorD *fVecGX; // points vectors - globalX + TVectorD *fVecGY; // points vectors - globalY + TVectorD *fVecGZ; // points vectors - globalZ + TVectorD *fVecLX; // points vectors - localX + TVectorD *fVecLY; // points vectors - localY + TVectorD *fVecLZ; // points vectors - localZ +private: + static TObjArray* fgArrLaserTracks; //! Array of all Laser Tracks, // keeps instances of this class; - - static const Int_t fgkNLaserTracks = 336; //Number of laser tracks - static const Int_t fgkNRodsPerSide = 6; //Number of laser rods on each readout side - static const Int_t fgkNBundlePerRod = 4; //Number of mirror bundles per rod - static const Int_t fgkNBeamsPerBundle = 7; //Number of laser rays per bundle - + + static const Int_t fgkNLaserTracks = 336; //Number of laser tracks + static const Int_t fgkNRodsPerSide = 6; //Number of laser rods on each readout side + static const Int_t fgkNBundlePerRod = 4; //Number of mirror bundles per rod + static const Int_t fgkNBeamsPerBundle = 7; //Number of laser rays per bundle + // static const char* fgkDataFileName = "$ALIC_ROOT/TPC/Calib/LaserTracks.root"; //Path to the Data File - - ClassDef(AliTPCLaserTrack,1) // Laser Track positions and track identification + + ClassDef(AliTPCLaserTrack,3) // Laser Track positions and track identification }; #endif