Adding code to patch St1 HV mapping
[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;
852fefb4 18class AliMUONGeometryTransformer;
a9e2aefa 19
7ec3b9cf 20class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor
21{
ea94c18b 22
a9e2aefa 23 public:
ea94c18b 24
852fefb4 25 AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
26 const AliMUONGeometryTransformer* transformer); // default Constructor
cc9e7528 27 virtual ~AliMUONTrackReconstructor(); // Destructor
a9e2aefa 28
b1fea02e 29 virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
7deb8eb0 30
8429a5e4 31
2457f726 32 protected:
7fc86979 33
ea94c18b 34 // Functions
89c8d66d 35 virtual Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore);
36 virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore);
37 virtual Bool_t FollowTracks(AliMUONVClusterStore& clusterStore);
38 virtual Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore);
4ea3f013 39 virtual void ImproveTrack(AliMUONTrack &track);
40 virtual Bool_t FinalizeTrack(AliMUONTrack &track);
2457f726 41
5e671e06 42
a9e2aefa 43 private:
2457f726 44
71a2d3aa 45 /// Not implemented copy constructor
46 AliMUONTrackReconstructor (const AliMUONTrackReconstructor& rhs);
47 /// Not implemented copy assignment operator
48 AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs);
2457f726 49
9bf6860b 50 Bool_t FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber);
1fef78c8 51 Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation);
ea94c18b 52
96ebe67e 53 Double_t TryTwoClusters(const AliMUONTrackParam &trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam &trackParamAtCluster2);
ea94c18b 54
96ebe67e 55 void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster);
56 void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2);
ea94c18b 57
1fef78c8 58 Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation);
ea94c18b 59
96ebe67e 60 void SetVertexErrXY2ForFit(AliMUONTrack &trackCandidate);
ea94c18b 61
96ebe67e 62 void Fit(AliMUONTrack &track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov);
83dbc640 63
29fc2c86 64
29f1b13a 65 ClassDef(AliMUONTrackReconstructor, 0) // MUON track reconstructor in ALICE
7ec3b9cf 66};
a9e2aefa 67
68#endif