]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackReconstructorK.h
- Reshape the architecture of the Kalman tracking to make it more modular
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackReconstructorK.h
index e3b6a7f3d1655bc87dbc5e6050cc26b9f4bf4344..4f6b3555dc58ff9de9e03e0fce73dc54a640e9d7 100644 (file)
 
 #include "AliMUONVTrackReconstructor.h"
 
+class AliMUONTrack;
+class AliMUONTrackParam;
+
 class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor 
 {
 
  public:
-  AliMUONTrackReconstructorK(const Option_t* TrackMethod); // default Constructor
+  
+  AliMUONTrackReconstructorK(); // default Constructor
   virtual ~AliMUONTrackReconstructorK(); // Destructor
 
-          /// Return track method
-  Int_t GetTrackMethod(void) const {return fTrackMethod;} 
-  virtual void EventDump(void);  // dump reconstructed event
-  
+
  protected:
-  
-  virtual void MakeTracks(void);
-  virtual void MakeTrackCandidates(void);
-  virtual void FollowTracks(void);
-  virtual void RemoveDoubleTracks(void);
-  virtual void FillMUONTrack(void);
+
+  // Functions
+  virtual void MakeTrackCandidates();
+  virtual void FollowTracks();
+  virtual void ImproveTracks();
+  virtual void Finalize();
   
 
  private:
-
-  Int_t fTrackMethod; ///< AZ - tracking method
-
+  
+  // Parameters for track reconstruction
+  static const Bool_t fgkRunSmoother; ///< kTRUE to run the smoother
+  
+  
   // Functions
-  AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs); ///< copy constructor
-  AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs); ///< assignment operator
+  /// Not implemented copy constructor
+  AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs); 
+  /// Not implemented copy assignment operator
+  AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs);
+  
+  void RetraceTrack(AliMUONTrack &trackCandidate, Bool_t resetSeed);
+  void RetracePartialTrack(AliMUONTrack &trackCandidate, const AliMUONTrackParam* startingTrackParam);
+  
+  Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, Int_t nextStation);
+  
+  Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtHit);
+
+  void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit, Double_t addChi2);
+  void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit1, AliMUONTrackParam &trackParamAtHit2,
+                  Double_t addChi2AtHit1, Double_t addChi2AtHit2);
+  
+  Bool_t RecoverTrack(AliMUONTrack &track, Int_t nextStation);
   
-  Bool_t CheckCandidate(Int_t icand, Int_t nSeeds) const;
+  Bool_t RunSmoother(AliMUONTrack &track);
 
 
   ClassDef(AliMUONTrackReconstructorK, 0) // MUON track reconstructor in ALICE
-    };
+};
        
 #endif