/// \ingroup rec
/// \class AliMUONTrackReconstructorK
/// \brief Class for the MUON track reconstruction using kalman filter
-///
-////////////////////////////////////////////////
-/// MUON track reconstructor using kalman filter
-////////////////////////////////////////////////
#include "AliMUONVTrackReconstructor.h"
-class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor {
+class AliMUONTrack;
+class AliMUONTrackParam;
- public:
- AliMUONTrackReconstructorK(AliMUONData* data, const Option_t* TrackMethod); // default Constructor
- virtual ~AliMUONTrackReconstructorK(); // Destructor
+class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor
+{
- /// Return track method
- Int_t GetTrackMethod(void) const {return fTrackMethod;}
+ public:
- virtual void EventDump(void); // dump reconstructed event
+ AliMUONTrackReconstructorK(); // default Constructor
+ virtual ~AliMUONTrackReconstructorK(); // Destructor
protected:
-
+
// Functions
- virtual void AddHitsForRecFromRawClusters();
- virtual void MakeTracks(void);
- virtual void MakeTrackCandidates(void);
- virtual void FollowTracks(void);
- virtual void RemoveDoubleTracks(void);
- virtual void FillMUONTrack(void);
+ virtual void MakeTrackCandidates();
+ virtual void FollowTracks();
+ virtual void ComplementTracks();
+ virtual void ImproveTracks();
+ virtual void Finalize();
private:
-
- Int_t fTrackMethod; ///< AZ - tracking method
-
- Int_t fMuons; ///< AZ - number of muons within acceptance - just for tests
-
+
+ // 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