X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrackReconstructorK.h;h=3891cb98536b37695ed202deadea43d7b8526687;hb=7abb3f1a460e3c58ad42cec0564bedc24b27d829;hp=c904e79a87754769b0a3abdd3a65075f57573d5d;hpb=8cc77df01c0cbc5cb8fa44e78ef61be682d5ed29;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrackReconstructorK.h b/MUON/AliMUONTrackReconstructorK.h index c904e79a877..3891cb98536 100644 --- a/MUON/AliMUONTrackReconstructorK.h +++ b/MUON/AliMUONTrackReconstructorK.h @@ -8,53 +8,60 @@ /// \ingroup rec /// \class AliMUONTrackReconstructorK /// \brief Class for the MUON track reconstruction using kalman filter -/// -//////////////////////////////////////////////// -/// MUON track reconstructor using kalman filter -//////////////////////////////////////////////// -#include #include "AliMUONVTrackReconstructor.h" -class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor { +class AliMUONVClusterStore; +class AliMUONTrack; +class AliMUONTrackParam; + +class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor +{ public: - AliMUONTrackReconstructorK(AliMUONData* data, const Option_t* TrackMethod); // default Constructor + + AliMUONTrackReconstructorK(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer); // default Constructor virtual ~AliMUONTrackReconstructorK(); // Destructor - - /// Return track method - Int_t GetTrackMethod(void) const {return fTrackMethod;} - virtual void EventDump(void); // dump reconstructed event + virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE); protected: - + // Functions - virtual void AddHitsForRecFromRawClusters(); - virtual void MakeSegments(void); - virtual void MakeTracks(void); - virtual void MakeTrackCandidates(void); - virtual void FollowTracks(void); - virtual void RemoveDoubleTracks(void); + virtual void MakeTrackCandidates(AliMUONVClusterStore& clusterStore); + virtual void MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore); + virtual void FollowTracks(AliMUONVClusterStore& clusterStore); + virtual void ComplementTracks(const AliMUONVClusterStore& clusterStore); + virtual void ImproveTrack(AliMUONTrack &track); + virtual void FinalizeTrack(AliMUONTrack &track); private: + + /// 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 FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber); + Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation); + + Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtCluster); - Int_t fTrackMethod; ///< AZ - tracking method - - Int_t fMuons; ///< AZ - number of muons within acceptance - just for tests - - // Functions - AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs); ///< copy constructor - AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs); ///< assignment operator + void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster, Double_t addChi2); + void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2, + Double_t addChi2AtCluster1, Double_t addChi2AtCluster2); + + Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation); - Bool_t CheckCandidate(Int_t icand, Int_t nSeeds) const; - void GoToVertex(void); - void FillMUONTrack(void); // set track parameters at hits for Kalman track + Bool_t RunSmoother(AliMUONTrack &track); ClassDef(AliMUONTrackReconstructorK, 0) // MUON track reconstructor in ALICE - }; +}; #endif