Adding PiKP-only histograms and eliminating a number of switches where histograms...
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackReconstructorK.h
CommitLineData
8cc77df0 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
8cc77df0 11
8cc77df0 12#include "AliMUONVTrackReconstructor.h"
13
96ebe67e 14class AliMUONVClusterStore;
ea94c18b 15class AliMUONTrack;
16class AliMUONTrackParam;
17
7ec3b9cf 18class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor
19{
8cc77df0 20
21 public:
ea94c18b 22
a0dc65b4 23 AliMUONTrackReconstructorK(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer); // default Constructor
8cc77df0 24 virtual ~AliMUONTrackReconstructorK(); // Destructor
7deb8eb0 25
b1fea02e 26 virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
8cc77df0 27
ea94c18b 28
8cc77df0 29 protected:
ea94c18b 30
31 // Functions
89c8d66d 32 virtual Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore);
33 virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore);
34 virtual Bool_t FollowTracks(AliMUONVClusterStore& clusterStore);
35 virtual Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore);
4ea3f013 36 virtual void ImproveTrack(AliMUONTrack &track);
37 virtual Bool_t FinalizeTrack(AliMUONTrack &track);
8cc77df0 38
39
40 private:
ea94c18b 41
ea94c18b 42 /// Not implemented copy constructor
43 AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs);
44 /// Not implemented copy assignment operator
45 AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs);
46
4ea3f013 47 Bool_t RetraceTrack(AliMUONTrack &trackCandidate, Bool_t resetSeed);
48 Bool_t RetracePartialTrack(AliMUONTrack &trackCandidate, const AliMUONTrackParam* startingTrackParam);
ea94c18b 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 RunKalmanFilter(AliMUONTrackParam &trackParamAtCluster);
ea94c18b 54
96ebe67e 55 void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster, Double_t addChi2);
56 void UpdateTrack(AliMUONTrack &track, AliMUONTrackParam &trackParamAtCluster1, AliMUONTrackParam &trackParamAtCluster2,
57 Double_t addChi2AtCluster1, Double_t addChi2AtCluster2);
ea94c18b 58
1fef78c8 59 Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation);
8cc77df0 60
ea94c18b 61 Bool_t RunSmoother(AliMUONTrack &track);
8cc77df0 62
63
64 ClassDef(AliMUONTrackReconstructorK, 0) // MUON track reconstructor in ALICE
ea94c18b 65};
8cc77df0 66
67#endif