#include "AliMUONVTrackReconstructor.h"
+class AliMUONHitForRec;
+class AliMUONTrackParam;
class AliMUONTrack;
-class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor {
-
+class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor
+{
+
public:
- AliMUONTrackReconstructor(AliMUONData* data); // default Constructor
+
+ AliMUONTrackReconstructor(); // 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);
+ virtual void MakeTrackCandidates();
+ virtual void FollowTracks();
+ virtual void ImproveTracks();
+ virtual void Finalize();
private:
- // 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
-
+ // Parameters for track reconstruction
+ static const Double_t fgkBendingVertexDispersion; ///< Vertex dispersion (cm) in bending plane for reconstruction
+ static const Double_t fgkNonBendingVertexDispersion; ///< Vertex dispersion (cm) in non bending plane for reconstruction
+
+
// 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);
+ Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, Int_t nextStation);
+
+ Double_t TryTwoHitForRec(const AliMUONTrackParam &trackParamAtHit1, AliMUONHitForRec* hitForRec2, AliMUONTrackParam &trackParamAtHit2);
+
+ void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit);
+ void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit1, AliMUONTrackParam &trackParamAtHit2);
+
+ Bool_t RecoverTrack(AliMUONTrack &track, 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