#include "AliMUONVTrackReconstructor.h"
-class AliMUONHitForRec;
+class AliMUONVCluster;
+class AliMUONVClusterStore;
class AliMUONTrackParam;
class AliMUONTrack;
+class AliMUONGeometryTransformer;
class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor
{
public:
- AliMUONTrackReconstructor(); // default Constructor
+ AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
+ const AliMUONGeometryTransformer* transformer); // default Constructor
virtual ~AliMUONTrackReconstructor(); // Destructor
+ virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
+
protected:
// Functions
- virtual void MakeTrackCandidates();
- virtual void FollowTracks();
- virtual void ComplementTracks();
- virtual void ImproveTracks();
- virtual void Finalize();
+ 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:
/// Not implemented copy assignment operator
AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs);
- Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, Int_t nextStation);
+ Bool_t FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber);
+ Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation);
- Double_t TryTwoHitForRec(const AliMUONTrackParam &trackParamAtHit1, AliMUONHitForRec* hitForRec2, AliMUONTrackParam &trackParamAtHit2);
+ Double_t TryTwoClusters(const AliMUONTrackParam &trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam &trackParamAtCluster2);
- void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit);
- void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtHit1, AliMUONTrackParam &trackParamAtHit2);
+ void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster);
+ void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2);
- Bool_t RecoverTrack(AliMUONTrack &track, Int_t nextStation);
+ Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation);
- void SetVertexForFit(AliMUONTrack &trackCandidate);
+ void SetVertexErrXY2ForFit(AliMUONTrack &trackCandidate);
- void Fit(AliMUONTrack &track, Bool_t includeMCS, Bool_t calcCov);
+ void Fit(AliMUONTrack &track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov);
ClassDef(AliMUONTrackReconstructor, 0) // MUON track reconstructor in ALICE