]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTrackReconstructorK.h
bf1492f3ef8ea6406862860e935ac643731a2e37
[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 ComplementTracks();
32   virtual void ImproveTracks();
33   virtual void Finalize();
34   
35
36  private:
37   
38   /// Not implemented copy constructor
39   AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs); 
40   /// Not implemented copy assignment operator
41   AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs);
42   
43   void RetraceTrack(AliMUONTrack &trackCandidate, Bool_t resetSeed);
44   void RetracePartialTrack(AliMUONTrack &trackCandidate, const AliMUONTrackParam* startingTrackParam);
45   
46   Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, Int_t nextStation);
47   
48   Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtHit);
49
50   void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit, Double_t addChi2);
51   void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit1, AliMUONTrackParam &trackParamAtHit2,
52                    Double_t addChi2AtHit1, Double_t addChi2AtHit2);
53   
54   Bool_t RecoverTrack(AliMUONTrack &track, Int_t nextStation);
55   
56   Bool_t RunSmoother(AliMUONTrack &track);
57
58
59   ClassDef(AliMUONTrackReconstructorK, 0) // MUON track reconstructor in ALICE
60 };
61         
62 #endif