KFitTrack.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 ///
3 /// \file KFitTrack.h
4 ///
5 /// \brief Basic Kalman filter track class, with fit information.
6 ///
7 /// \author H. Greenlee
8 ///
9 /// This class inherits the following attributes from KETrack.
10 ///
11 /// 1. Surface.
12 /// 2. Track state vector.
13 /// 3. Track direction parameter.
14 /// 4. Track error matrix.
15 ///
16 /// This class adds the following attributes of its own.
17 ///
18 /// 5. Propagation distance.
19 /// 6. Fit chisquare.
20 /// 7. Fit status.
21 ///
22 /// The fit status attribute is specified using enum FitStatus.
23 /// The meanings of the FitStatus enum are given below.
24 /// In general, any track that is intended to be used for physics
25 /// analysis should have status OPTIMAL.
26 ///
27 ////////////////////////////////////////////////////////////////////////
28 
29 #ifndef KFITTRACK_H
30 #define KFITTRACK_H
31 
33 
34 namespace trkf {
35 
36  class KFitTrack : public KETrack
37  {
38  public:
39 
40  /// Fit status enum.
41  enum FitStatus {
42  INVALID, // No valid fit information.
43  UNKNOWN, // Unknown.
44  FORWARD, // Fit based on past measurements, including current surface.
45  FORWARD_PREDICTED, // Fit based on past measurements, not including current surface.
46  BACKWARD, // Fit based on future measurements, including current surface.
47  BACKWARD_PREDICTED, // Fit based on future measurements, not including current surface.
48  OPTIMAL, // Fit based on all measurements, including current surface.
49  OPTIMAL_PREDICTED // Fit based on all measurements, except current surface.
50  };
51 
52  /// Default constructor.
53  KFitTrack();
54 
55  /// Initializing constructor.
56  KFitTrack(const KETrack& tre,
57  double s = 0.,
58  double chisq = 0.,
60 
61  /// Destructor.
62  virtual ~KFitTrack();
63 
64  // Accessors.
65 
66  double getPath() const {return fPath;} ///< Propagation distance.
67  double getChisq() const {return fChisq;} ///< Fit chisquare.
68  FitStatus getStat() const {return fStat;} ///< Fit status.
69 
70  // Modifiers.
71 
72  void setPath(double path) {fPath = path;} ///< Set propagation distance.
73  void setChisq(double chisq) {fChisq = chisq;} ///< Set chisquare.
74  void setStat(FitStatus stat) {fStat = stat;} ///< Set fit status.
75 
76  /// Combine two tracks.
77  bool combineFit(const KFitTrack& trf);
78 
79  /// Printout
80  virtual std::ostream& Print(std::ostream& out, bool doTitle = true) const;
81 
82  private:
83 
84  // Attributes.
85 
86  double fPath; ///< Propagation distance.
87  double fChisq; ///< Fit chisquare.
88  FitStatus fStat; ///< Fit status.
89  };
90 }
91 
92 #endif
FitStatus
Fit status enum.
Definition: KFitTrack.h:41
void setChisq(double chisq)
Set chisquare.
Definition: KFitTrack.h:73
FitStatus fStat
Fit status.
Definition: KFitTrack.h:88
double getPath() const
Propagation distance.
Definition: KFitTrack.h:66
virtual std::ostream & Print(std::ostream &out, bool doTitle=true) const
Printout.
Definition: KFitTrack.cxx:115
void setStat(FitStatus stat)
Set fit status.
Definition: KFitTrack.h:74
double fChisq
Fit chisquare.
Definition: KFitTrack.h:87
KFitTrack()
Default constructor.
Definition: KFitTrack.cxx:17
virtual ~KFitTrack()
Destructor.
Definition: KFitTrack.cxx:33
bool combineFit(const KFitTrack &trf)
Combine two tracks.
Definition: KFitTrack.cxx:66
double fPath
Propagation distance.
Definition: KFitTrack.h:86
void setPath(double path)
Set propagation distance.
Definition: KFitTrack.h:72
Basic Kalman filter track class, with error.
double getChisq() const
Fit chisquare.
Definition: KFitTrack.h:67
static QCString * s
Definition: config.cpp:1042
FitStatus getStat() const
Fit status.
Definition: KFitTrack.h:68