Separating run-dependent mapping data from data, which are not
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackReconstructor.h
CommitLineData
f29ba3e1 1#ifndef ALIMUONTRACKRECONSTRUCTOR_H
29f1b13a 2#define ALIMUONTRACKRECONSTRUCTOR_H
692de412 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
a9e2aefa 5
692de412 6/* $Id$ */
7
8/// \ingroup rec
9/// \class AliMUONTrackReconstructor
2457f726 10/// \brief Standard class for the MUON track reconstruction
3831f268 11
2457f726 12#include "AliMUONVTrackReconstructor.h"
a9e2aefa 13
96ebe67e 14class AliMUONVCluster;
15class AliMUONVClusterStore;
ea94c18b 16class AliMUONTrackParam;
de2cd600 17class AliMUONTrack;
a9e2aefa 18
7ec3b9cf 19class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor
20{
ea94c18b 21
a9e2aefa 22 public:
ea94c18b 23
b1fea02e 24 AliMUONTrackReconstructor(AliMUONVClusterServer* clusterServer); // default Constructor
cc9e7528 25 virtual ~AliMUONTrackReconstructor(); // Destructor
a9e2aefa 26
b1fea02e 27 virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
7deb8eb0 28
8429a5e4 29
2457f726 30 protected:
7fc86979 31
ea94c18b 32 // Functions
1fef78c8 33 virtual void MakeTrackCandidates(AliMUONVClusterStore& clusterStore);
9bf6860b 34 virtual void MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore);
1fef78c8 35 virtual void FollowTracks(AliMUONVClusterStore& clusterStore);
96ebe67e 36 virtual void ComplementTracks(const AliMUONVClusterStore& clusterStore);
7332f213 37 virtual void ImproveTrack(AliMUONTrack &track);
38 virtual void FinalizeTrack(AliMUONTrack &track);
2457f726 39
5e671e06 40
a9e2aefa 41 private:
2457f726 42
71a2d3aa 43 /// Not implemented copy constructor
44 AliMUONTrackReconstructor (const AliMUONTrackReconstructor& rhs);
45 /// Not implemented copy assignment operator
46 AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs);
2457f726 47
9bf6860b 48 Bool_t FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber);
1fef78c8 49 Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation);
ea94c18b 50
96ebe67e 51 Double_t TryTwoClusters(const AliMUONTrackParam &trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam &trackParamAtCluster2);
ea94c18b 52
96ebe67e 53 void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster);
54 void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2);
ea94c18b 55
1fef78c8 56 Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation);
ea94c18b 57
96ebe67e 58 void SetVertexErrXY2ForFit(AliMUONTrack &trackCandidate);
ea94c18b 59
96ebe67e 60 void Fit(AliMUONTrack &track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov);
83dbc640 61
29fc2c86 62
29f1b13a 63 ClassDef(AliMUONTrackReconstructor, 0) // MUON track reconstructor in ALICE
7ec3b9cf 64};
a9e2aefa 65
66#endif