a4742cc6b8daa25aabad7dda185f54b82849d9e8
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackReconstructor.h
1 #ifndef ALIMUONTRACKRECONSTRUCTOR_H
2 #define ALIMUONTRACKRECONSTRUCTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 /// \ingroup rec
9 /// \class AliMUONTrackReconstructor
10 /// \brief Standard class for the MUON track reconstruction
11
12 #include <TObject.h>
13 #include "AliMUONVTrackReconstructor.h"
14
15 class AliMUONSegment;
16 class AliMUONTrack;
17 class TVirtualFitter;
18
19 class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor {
20
21  public:
22   AliMUONTrackReconstructor(AliMUONData* data); // default Constructor
23   virtual ~AliMUONTrackReconstructor(); // Destructor
24
25            /// Return track fitter
26   static TVirtualFitter* Fitter(void) {return fgFitter;}
27   
28   virtual void EventDump(void);  // dump reconstructed event
29
30
31  protected:
32
33   // Functions
34   virtual void AddHitsForRecFromRawClusters();
35   virtual void MakeSegments(void);
36   virtual void MakeTracks(void);
37   virtual void MakeTrackCandidates(void);
38   virtual void FollowTracks(void);
39   virtual void RemoveDoubleTracks(void);
40   
41
42  private:
43   
44   // Defaults parameters for reconstruction
45   static const Double_t fgkDefaultMaxChi2; ///< default max. track chi2 for reconstruction
46
47   static TVirtualFitter* fgFitter; //!< Pointer to track fitter
48
49   // Parameters for track reconstruction
50   Double_t fMaxChi2; ///< maximum Chi2 per degree of Freedom
51   
52   // Functions
53   AliMUONTrackReconstructor (const AliMUONTrackReconstructor& rhs); ///< copy constructor
54   AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs); ///< assignment operator
55   
56   Int_t MakeTrackCandidatesWithTwoSegments(AliMUONSegment *BegSegment);
57   Int_t MakeTrackCandidatesWithOneSegmentAndOnePoint(AliMUONSegment *BegSegment);
58   void CalcTrackParamAtVertex(AliMUONTrack *Track) const;
59   void Fit(AliMUONTrack *Track, Int_t FitStart, Int_t FitMCS);
60   void UpdateHitForRecAtHit(void);
61
62
63   ClassDef(AliMUONTrackReconstructor, 0) // MUON track reconstructor in ALICE
64     };
65         
66 #endif