Line data Source code
1 : #ifndef ALIMUONTRACKRECONSTRUCTORK_H
2 : #define ALIMUONTRACKRECONSTRUCTORK_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 AliMUONTrackReconstructorK
10 : /// \brief Class for the MUON track reconstruction using kalman filter
11 :
12 : #include "AliMUONVTrackReconstructor.h"
13 :
14 : class AliMUONVClusterStore;
15 : class AliMUONTrack;
16 : class AliMUONTrackParam;
17 : class AliMUONGeometryTransformer;
18 :
19 : class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor
20 : {
21 :
22 : public:
23 :
24 : AliMUONTrackReconstructorK(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
25 : const AliMUONGeometryTransformer* transformer); // default Constructor
26 : virtual ~AliMUONTrackReconstructorK(); // Destructor
27 :
28 : virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
29 :
30 :
31 : protected:
32 :
33 : // Functions
34 : virtual Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore);
35 : virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore);
36 : virtual Bool_t FollowTracks(AliMUONVClusterStore& clusterStore);
37 : virtual Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore);
38 : virtual void ImproveTrack(AliMUONTrack &track);
39 : virtual Bool_t FinalizeTrack(AliMUONTrack &track);
40 :
41 :
42 : private:
43 :
44 : /// Not implemented copy constructor
45 : AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs);
46 : /// Not implemented copy assignment operator
47 : AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs);
48 :
49 : Bool_t RetraceTrack(AliMUONTrack &trackCandidate, Bool_t resetSeed);
50 : Bool_t RetracePartialTrack(AliMUONTrack &trackCandidate, const AliMUONTrackParam* startingTrackParam);
51 :
52 : Bool_t FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber);
53 : Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation);
54 :
55 : Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtCluster);
56 :
57 : void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster, Double_t addChi2);
58 : void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2,
59 : Double_t addChi2AtCluster1, Double_t addChi2AtCluster2);
60 :
61 : Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation);
62 :
63 : Bool_t RunSmoother(AliMUONTrack &track);
64 :
65 :
66 1514 : ClassDef(AliMUONTrackReconstructorK, 0) // MUON track reconstructor in ALICE
67 : };
68 :
69 : #endif
|