]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTrackReconstructorK.h
bdd023286f46f09e2c0e199727ffb78cfebc09e7
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackReconstructorK.h
1 #ifndef ALIMUONTRACKRECONSTRUCTORK_H
2 #define ALIMUONTRACKRECONSTRUCTORK_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 /// \ingroup rec
9 /// \class AliMUONTrackReconstructorK
10 /// \brief Class for the MUON track reconstruction using kalman filter
11
12 #include "AliMUONVTrackReconstructor.h"
13
14 class AliMUONTrack;
15 class AliMUONTrackParam;
16
17 class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor 
18 {
19
20  public:
21   
22   AliMUONTrackReconstructorK(); // default Constructor
23   virtual ~AliMUONTrackReconstructorK(); // Destructor
24
25
26  protected:
27
28   // Functions
29   virtual void MakeTrackCandidates();
30   virtual void FollowTracks();
31   virtual void ImproveTracks();
32   virtual void Finalize();
33   
34
35  private:
36   
37   // Parameters for track reconstruction
38   static const Bool_t fgkRunSmoother; ///< kTRUE to run the smoother
39   
40   
41   // Functions
42   /// Not implemented copy constructor
43   AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs); 
44   /// Not implemented copy assignment operator
45   AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs);
46   
47   void RetraceTrack(AliMUONTrack &trackCandidate, Bool_t resetSeed);
48   void RetracePartialTrack(AliMUONTrack &trackCandidate, const AliMUONTrackParam* startingTrackParam);
49   
50   Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, Int_t nextStation);
51   
52   Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtHit);
53
54   void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit, Double_t addChi2);
55   void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit1, AliMUONTrackParam &trackParamAtHit2,
56                    Double_t addChi2AtHit1, Double_t addChi2AtHit2);
57   
58   Bool_t RecoverTrack(AliMUONTrack &track, Int_t nextStation);
59   
60   Bool_t RunSmoother(AliMUONTrack &track);
61
62
63   ClassDef(AliMUONTrackReconstructorK, 0) // MUON track reconstructor in ALICE
64 };
65         
66 #endif