/* $Id$ */
-#include <TObject.h>
+/// \ingroup rec
+/// \class AliMUONTrackReconstructor
+/// \brief Standard class for the MUON track reconstruction
+
+#include "AliMUONVTrackReconstructor.h"
+
+class AliMUONTrack;
+
+class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor {
-class AliMUONTrackReconstructor : public TObject {
public:
- //
- // Track Reconstruction
- AliMUONTrackReconstructor();
- virtual ~AliMUONTrackReconstructor(){;}
- void Init(Double_t &, Double_t &, Double_t &);
- void Reconst(Int_t &,Int_t &,Int_t,Int_t &,Int_t&,Int_t&, Option_t *option,Text_t *filename);
- void Reconst2(Int_t &,Int_t &,Int_t &);
- void FinishEvent();
- void Close();
- void SetCutPxz(Double_t p) {fSPxzCut=p;}
- void SetSigmaCut(Double_t p) {fSSigmaCut=p;}
- void SetXPrec(Double_t p) {fSXPrec=p;}
- void SetYPrec(Double_t p) {fSYPrec=p;}
- Double_t GetCutPxz() {return fSPxzCut;}
- Double_t GetSigmaCut() {return fSSigmaCut;}
- Double_t GetXPrec() {return fSXPrec;}
- Double_t GetYPrec() {return fSYPrec;}
+ AliMUONTrackReconstructor(AliMUONRecData* data); // default Constructor
+ virtual ~AliMUONTrackReconstructor(); // Destructor
+
+ virtual void EventDump(void); // dump reconstructed event
+
+
+ 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);
+
+
private:
-// Parameters for reconstruction program
- Double_t fSPxzCut; // Pxz cut (GeV/c) to begin the track finding
- Double_t fSSigmaCut; // Number of sig. delimiting the searching areas
- Double_t fSXPrec; // Chamber precision in X (cm)
- Double_t fSYPrec; // Chamber precision in Y (cm)
- Text_t *fFileName; // ?????????
- ClassDef(AliMUONTrackReconstructor,1) // Interface to muon tracking code
- };
-
+
+ // Parameters for reconstruction
+ static const Double_t fgkMaxNormChi2; ///< maximum Chi2 per degree of freedom for reconstruction
+ static const Bool_t fgkTrackAllTracks; ///< kTRUE to track all the possible candidates; kFALSE to track only the best ones
+ // Functions
+ /// Not implemented copy constructor
+ AliMUONTrackReconstructor (const AliMUONTrackReconstructor& rhs);
+ /// Not implemented copy assignment operator
+ AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs);
+
+ void RemoveIdenticalTracks(void);
+ void FollowTrackInStation(AliMUONTrack* trackCandidate, Int_t nextStation);
+ void SetVertexForFit(AliMUONTrack* trackCandidate);
+ void Fit(AliMUONTrack *track, Bool_t includeMCS, Bool_t calcCov);
+
+
+ ClassDef(AliMUONTrackReconstructor, 0) // MUON track reconstructor in ALICE
+ };
+
#endif