Update from Alberica. Addition of VZERO equalized signals and ZNC.
[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;
852fefb4 17class AliMUONGeometryTransformer;
ea94c18b 18
7ec3b9cf 19class AliMUONTrackReconstructorK : public AliMUONVTrackReconstructor
20{
8cc77df0 21
22 public:
ea94c18b 23
852fefb4 24 AliMUONTrackReconstructorK(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
25 const AliMUONGeometryTransformer* transformer); // default Constructor
8cc77df0 26 virtual ~AliMUONTrackReconstructorK(); // Destructor
7deb8eb0 27
b1fea02e 28 virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE);
8cc77df0 29
ea94c18b 30
8cc77df0 31 protected:
ea94c18b 32
33 // Functions
89c8d66d 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);
4ea3f013 38 virtual void ImproveTrack(AliMUONTrack &track);
39 virtual Bool_t FinalizeTrack(AliMUONTrack &track);
8cc77df0 40
41
42 private:
ea94c18b 43
ea94c18b 44 /// Not implemented copy constructor
45 AliMUONTrackReconstructorK (const AliMUONTrackReconstructorK& rhs);
46 /// Not implemented copy assignment operator
47 AliMUONTrackReconstructorK& operator=(const AliMUONTrackReconstructorK& rhs);
48
4ea3f013 49 Bool_t RetraceTrack(AliMUONTrack &trackCandidate, Bool_t resetSeed);
50 Bool_t RetracePartialTrack(AliMUONTrack &trackCandidate, const AliMUONTrackParam* startingTrackParam);
ea94c18b 51
9bf6860b 52 Bool_t FollowTrackInChamber(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextChamber);
1fef78c8 53 Bool_t FollowTrackInStation(AliMUONTrack &trackCandidate, AliMUONVClusterStore& clusterStore, Int_t nextStation);
ea94c18b 54
96ebe67e 55 Double_t RunKalmanFilter(AliMUONTrackParam &trackParamAtCluster);
ea94c18b 56
96ebe67e 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);
ea94c18b 60
1fef78c8 61 Bool_t RecoverTrack(AliMUONTrack &track, AliMUONVClusterStore& clusterStore, Int_t nextStation);
8cc77df0 62
ea94c18b 63 Bool_t RunSmoother(AliMUONTrack &track);
8cc77df0 64
65
66 ClassDef(AliMUONTrackReconstructorK, 0) // MUON track reconstructor in ALICE
ea94c18b 67};
8cc77df0 68
69#endif