1 #ifndef AliMuonForwardTrack_H
2 #define AliMuonForwardTrack_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //====================================================================================================================================================
9 // Description of an ALICE muon forward track, combining the information of the Muon Spectrometer and the Muon Forward Tracker
11 // Contact author: antonio.uras@cern.ch
13 //====================================================================================================================================================
16 #include "AliMUONTrack.h"
17 #include "AliMFTCluster.h"
18 #include "AliMUONVCluster.h"
19 #include "AliMUONTrackParam.h"
21 #include "TClonesArray.h"
22 #include "TParticle.h"
24 //====================================================================================================================================================
26 class AliMuonForwardTrack : public AliMUONTrack {
30 AliMuonForwardTrack();
31 AliMuonForwardTrack(AliMUONTrack *MUONTrack);
33 AliMuonForwardTrack(const AliMuonForwardTrack&);
34 AliMuonForwardTrack &operator=(const AliMuonForwardTrack&);
36 virtual ~AliMuonForwardTrack() {}
38 void SetMUONTrack(AliMUONTrack *MUONTrack);
39 void SetMCTrackRef(TParticle *MCTrackRef);
40 AliMUONTrack* GetMUONTrack() { return fMUONTrack; }
41 TParticle* GetMCTrackRef() { return fMCTrackRef; }
43 AliMUONVCluster* GetMUONCluster(Int_t iMUONCluster);
44 AliMFTCluster* GetMFTCluster(Int_t iMFTCluster);
46 AliMUONTrackParam* GetTrackParamAtMUONCluster(Int_t iMUONCluster);
47 AliMUONTrackParam* GetTrackParamAtMFTCluster(Int_t iMFTCluster);
49 void SetPlaneExists(Int_t iPlane, Bool_t value=kTRUE) { fPlaneExists[iPlane] = value; }
50 Bool_t PlaneExists(Int_t iPlane) { return fPlaneExists[iPlane]; }
52 Int_t GetNMUONClusters() { return fMUONTrack->GetNClusters(); }
53 Int_t GetNMFTClusters() { return GetNClusters(); }
55 Int_t GetMCLabelMUONTrack() { return fMUONTrack->GetMCLabel(); }
57 void AddTrackParamAtMFTCluster(AliMUONTrackParam &trackParam, AliMFTCluster &mftCluster);
59 Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtCluster);
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);
68 static const Int_t fMaxNPlanesMFT = 20;
70 Bool_t fPlaneExists[fMaxNPlanesMFT];
72 AliMUONTrack *fMUONTrack;
73 TParticle *fMCTrackRef;
75 TClonesArray *fMFTClusters;
77 ClassDef(AliMuonForwardTrack,1)
81 //====================================================================================================================================================