]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MFT/AliMuonForwardTrack.h
Reverting commit 54341, it contains too many errors
[u/mrichter/AliRoot.git] / MFT / AliMuonForwardTrack.h
1 #ifndef AliMuonForwardTrack_H
2 #define AliMuonForwardTrack_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //====================================================================================================================================================
8 //
9 //      Description of an ALICE muon forward track, combining the information of the Muon Spectrometer and the Muon Forward Tracker
10 //
11 //      Contact author: antonio.uras@cern.ch
12 //
13 //====================================================================================================================================================
14
15 #include "AliLog.h"
16 #include "AliMUONTrack.h"
17 #include "AliMFTCluster.h"
18 #include "AliMUONVCluster.h"
19 #include "AliMUONTrackParam.h"
20 #include "TMatrixD.h"
21 #include "TClonesArray.h"
22 #include "TParticle.h"
23
24 //====================================================================================================================================================
25
26 class AliMuonForwardTrack : public AliMUONTrack {
27
28 public:
29
30   AliMuonForwardTrack();
31   AliMuonForwardTrack(AliMUONTrack *MUONTrack);
32
33   AliMuonForwardTrack(const AliMuonForwardTrack&);
34   AliMuonForwardTrack &operator=(const AliMuonForwardTrack&);
35   
36   virtual ~AliMuonForwardTrack() {}
37
38   void SetMUONTrack(AliMUONTrack *MUONTrack);
39   void SetMCTrackRef(TParticle *MCTrackRef);
40   AliMUONTrack* GetMUONTrack() { return fMUONTrack; }
41   TParticle* GetMCTrackRef() { return fMCTrackRef; }
42
43   AliMUONVCluster* GetMUONCluster(Int_t iMUONCluster);
44   AliMFTCluster*   GetMFTCluster(Int_t iMFTCluster);
45   
46   AliMUONTrackParam* GetTrackParamAtMUONCluster(Int_t iMUONCluster);
47   AliMUONTrackParam* GetTrackParamAtMFTCluster(Int_t iMFTCluster);
48
49   void SetPlaneExists(Int_t iPlane, Bool_t value=kTRUE) { fPlaneExists[iPlane] = value; }
50   Bool_t PlaneExists(Int_t iPlane) { return fPlaneExists[iPlane]; }
51
52   Int_t GetNMUONClusters() { return fMUONTrack->GetNClusters(); }
53   Int_t GetNMFTClusters()  { return GetNClusters(); }
54
55   Int_t GetMCLabelMUONTrack() { return fMUONTrack->GetMCLabel(); }
56
57   void AddTrackParamAtMFTCluster(AliMUONTrackParam &trackParam, AliMFTCluster &mftCluster);
58   
59   Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtCluster);
60
61   Double_t GetWeightedOffset(Double_t x, Double_t y, Double_t z);
62   Double_t GetOffset(Double_t x, Double_t y, Double_t z);
63   Double_t GetOffsetX(Double_t x, Double_t z);
64   Double_t GetOffsetY(Double_t y, Double_t z);
65
66 protected:
67
68   static const Int_t fMaxNPlanesMFT = 20;
69
70   Bool_t fPlaneExists[fMaxNPlanesMFT];
71
72   AliMUONTrack *fMUONTrack;
73   TParticle *fMCTrackRef;
74
75   TClonesArray *fMFTClusters;
76
77   ClassDef(AliMuonForwardTrack,1)
78     
79 };
80
81 //====================================================================================================================================================
82
83 #endif
84
85
86