#ifndef ALIMUONTRACKRECONSTRUCTOR_H
#define ALIMUONTRACKRECONSTRUCTOR_H
#include "AliMUONVTrackReconstructor.h"
class AliMUONVCluster;
class AliMUONVClusterStore;
class AliMUONTrackParam;
class AliMUONTrack;
class AliMUONGeometryTransformer;
class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor
{
public:
AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
const AliMUONGeometryTransformer* transformer);
virtual ~AliMUONTrackReconstructor();
virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
protected:
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:
AliMUONTrackReconstructor (const AliMUONTrackReconstructor& rhs);
AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs);
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)
};
#endif
AliMUONTrackReconstructor.h:1 AliMUONTrackReconstructor.h:2 AliMUONTrackReconstructor.h:3 AliMUONTrackReconstructor.h:4 AliMUONTrackReconstructor.h:5 AliMUONTrackReconstructor.h:6 AliMUONTrackReconstructor.h:7 AliMUONTrackReconstructor.h:8 AliMUONTrackReconstructor.h:9 AliMUONTrackReconstructor.h:10 AliMUONTrackReconstructor.h:11 AliMUONTrackReconstructor.h:12 AliMUONTrackReconstructor.h:13 AliMUONTrackReconstructor.h:14 AliMUONTrackReconstructor.h:15 AliMUONTrackReconstructor.h:16 AliMUONTrackReconstructor.h:17 AliMUONTrackReconstructor.h:18 AliMUONTrackReconstructor.h:19 AliMUONTrackReconstructor.h:20 AliMUONTrackReconstructor.h:21 AliMUONTrackReconstructor.h:22 AliMUONTrackReconstructor.h:23 AliMUONTrackReconstructor.h:24 AliMUONTrackReconstructor.h:25 AliMUONTrackReconstructor.h:26 AliMUONTrackReconstructor.h:27 AliMUONTrackReconstructor.h:28 AliMUONTrackReconstructor.h:29 AliMUONTrackReconstructor.h:30 AliMUONTrackReconstructor.h:31 AliMUONTrackReconstructor.h:32 AliMUONTrackReconstructor.h:33 AliMUONTrackReconstructor.h:34 AliMUONTrackReconstructor.h:35 AliMUONTrackReconstructor.h:36 AliMUONTrackReconstructor.h:37 AliMUONTrackReconstructor.h:38 AliMUONTrackReconstructor.h:39 AliMUONTrackReconstructor.h:40 AliMUONTrackReconstructor.h:41 AliMUONTrackReconstructor.h:42 AliMUONTrackReconstructor.h:43 AliMUONTrackReconstructor.h:44 AliMUONTrackReconstructor.h:45 AliMUONTrackReconstructor.h:46 AliMUONTrackReconstructor.h:47 AliMUONTrackReconstructor.h:48 AliMUONTrackReconstructor.h:49 AliMUONTrackReconstructor.h:50 AliMUONTrackReconstructor.h:51 AliMUONTrackReconstructor.h:52 AliMUONTrackReconstructor.h:53 AliMUONTrackReconstructor.h:54 AliMUONTrackReconstructor.h:55 AliMUONTrackReconstructor.h:56 AliMUONTrackReconstructor.h:57 AliMUONTrackReconstructor.h:58 AliMUONTrackReconstructor.h:59 AliMUONTrackReconstructor.h:60 AliMUONTrackReconstructor.h:61 AliMUONTrackReconstructor.h:62 AliMUONTrackReconstructor.h:63 AliMUONTrackReconstructor.h:64 AliMUONTrackReconstructor.h:65 AliMUONTrackReconstructor.h:66 AliMUONTrackReconstructor.h:67 AliMUONTrackReconstructor.h:68