X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrackReconstructor.h;h=05b5f9a9c39eb1c71bc223cffe3d9e97b856ea3e;hb=42339ccf5f0d83fe1d4e836afb7c5a455044d92c;hp=1f5f381a3455fc698d9f00233b82585e746a0944;hpb=71a2d3aa63e94daa0244d8d6d1c7c162ae29a374;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrackReconstructor.h b/MUON/AliMUONTrackReconstructor.h index 1f5f381a345..05b5f9a9c39 100644 --- a/MUON/AliMUONTrackReconstructor.h +++ b/MUON/AliMUONTrackReconstructor.h @@ -11,47 +11,56 @@ #include "AliMUONVTrackReconstructor.h" +class AliMUONVCluster; +class AliMUONVClusterStore; +class AliMUONTrackParam; class AliMUONTrack; -class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor { - +class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor +{ + public: - AliMUONTrackReconstructor(AliMUONData* data); // default Constructor + + AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer); // default Constructor virtual ~AliMUONTrackReconstructor(); // Destructor - virtual void EventDump(void); // dump reconstructed event + virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE); 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 Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore); + virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore); + virtual Bool_t FollowTracks(AliMUONVClusterStore& clusterStore); + virtual Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore); + virtual void ImproveTrack(AliMUONTrack &track); + virtual Bool_t FinalizeTrack(AliMUONTrack &track); 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 - - // 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 FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber); + Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation); + + Double_t TryTwoClusters(const AliMUONTrackParam &trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam &trackParamAtCluster2); + + void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster); + void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2); + + Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation); + + void SetVertexErrXY2ForFit(AliMUONTrack &trackCandidate); + + void Fit(AliMUONTrack &track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov); ClassDef(AliMUONTrackReconstructor, 0) // MUON track reconstructor in ALICE - }; +}; #endif