Belle II Software  release-08-01-10
KalmanFitStatus.h
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
23 #ifndef genfit_KalmanFitStatus_h
24 #define genfit_KalmanFitStatus_h
25 
26 #include "FitStatus.h"
27 
28 #include <Math/ProbFunc.h>
29 
30 
31 namespace genfit {
32 
36 class KalmanFitStatus : public FitStatus {
37 
38  public:
39 
40  KalmanFitStatus() :
41  FitStatus(), numIterations_(0), fittedWithDaf_(false), fittedWithReferenceTrack_(false),
42  trackLen_(0), fChi2_(-1e99), fNdf_(-1e99), fPval_(-1e99) {;}
43 
44  virtual ~KalmanFitStatus() {};
45 
46  virtual FitStatus* clone() const override {return new KalmanFitStatus(*this);}
47 
48  unsigned int getNumIterations() const {return numIterations_;}
49  bool isFittedWithDaf() const {return fittedWithDaf_;}
50  bool isFittedWithReferenceTrack() const {return fittedWithReferenceTrack_;}
51  double getTrackLen() const {return trackLen_;}
52  double getForwardChi2() const {return fChi2_;}
53  double getBackwardChi2() const {return FitStatus::getChi2();}
54  double getForwardNdf() const {return fNdf_;}
55  double getBackwardNdf() const {return FitStatus::getNdf();}
56  // virtual double getPVal() : not overridden, as it does the right thing.
57  double getForwardPVal() const {return std::max(0.,ROOT::Math::chisquared_cdf_c(fChi2_, fNdf_));}
58  double getBackwardPVal() const {return FitStatus::getPVal(); }
59 
60  void setNumIterations(unsigned int numIterations) {numIterations_ = numIterations;}
61  void setIsFittedWithDaf(bool fittedWithDaf = true) {fittedWithDaf_ = fittedWithDaf;}
62  void setIsFittedWithReferenceTrack(bool fittedWithReferenceTrack = true) {fittedWithReferenceTrack_ = fittedWithReferenceTrack;}
63  void setTrackLen(double trackLen) {trackLen_ = trackLen;}
64  void setForwardChi2(double fChi2) {fChi2_ = fChi2;}
65  void setBackwardChi2(double bChi2) {FitStatus::setChi2(bChi2);}
66  void setForwardNdf(double fNdf) {fNdf_ = fNdf;}
67  void setBackwardNdf(double bNdf) {FitStatus::setNdf(bNdf);}
68 
69  virtual void Print(const Option_t* = "") const override;
70 
71  protected:
72 
73  unsigned int numIterations_; // number of iterations that have been performed
74  bool fittedWithDaf_;
75  bool fittedWithReferenceTrack_;
76 
77  double trackLen_;
78 
79  double fChi2_; // chi^2 of the forward fit
80  double fNdf_; // degrees of freedom of the forward fit
81  double fPval_; // p-value of the forward fit, set whenever either of chi2 or ndf changes
82 
83  public:
84 
85  ClassDefOverride(KalmanFitStatus, 1)
86 
87 };
88 
89 } /* End of namespace genfit */
92 #endif // genfit_KalmanFitStatus_h
Class where important numbers and properties of a fit can be stored.
Definition: FitStatus.h:80
virtual double getPVal() const
Get the p value of the fit.
Definition: FitStatus.h:128
double getChi2() const
Get chi^2 of the fit.
Definition: FitStatus.h:120
double getNdf() const
Get the degrees of freedom of the fit.
Definition: FitStatus.h:122
FitStatus for use with AbsKalmanFitter implementations.
Defines for I/O streams used for error and debug printing.