Line data Source code
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 "AliMUONVTrackReconstructor.h"
13 :
14 : class AliMUONVCluster;
15 : class AliMUONVClusterStore;
16 : class AliMUONTrackParam;
17 : class AliMUONTrack;
18 : class AliMUONGeometryTransformer;
19 :
20 : class AliMUONTrackReconstructor : public AliMUONVTrackReconstructor
21 : {
22 :
23 : public:
24 :
25 : AliMUONTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
26 : const AliMUONGeometryTransformer* transformer); // default Constructor
27 : virtual ~AliMUONTrackReconstructor(); // Destructor
28 :
29 : virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
30 :
31 :
32 : protected:
33 :
34 : // Functions
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);
39 : virtual void ImproveTrack(AliMUONTrack &track);
40 : virtual Bool_t FinalizeTrack(AliMUONTrack &track);
41 :
42 :
43 : private:
44 :
45 : /// Not implemented copy constructor
46 : AliMUONTrackReconstructor (const AliMUONTrackReconstructor& rhs);
47 : /// Not implemented copy assignment operator
48 : AliMUONTrackReconstructor& operator=(const AliMUONTrackReconstructor& rhs);
49 :
50 : Bool_t FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber);
51 : Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation);
52 :
53 : Double_t TryTwoClusters(const AliMUONTrackParam &trackParamAtCluster, AliMUONVCluster* cluster2, AliMUONTrackParam &trackParamAtCluster2);
54 :
55 : void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster);
56 : void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2);
57 :
58 : Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation);
59 :
60 : void SetVertexErrXY2ForFit(AliMUONTrack &trackCandidate);
61 :
62 : void Fit(AliMUONTrack &track, Bool_t includeMCS, Bool_t fitWithVertex, Bool_t calcCov);
63 :
64 :
65 18 : ClassDef(AliMUONTrackReconstructor, 0) // MUON track reconstructor in ALICE
66 : };
67 :
68 : #endif
|