PandaRoot
KalmanFitStatus.h
Go to the documentation of this file.
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 namespace genfit {
31 
35 class KalmanFitStatus : public FitStatus {
36 
37  public:
38  KalmanFitStatus() : FitStatus(), numIterations_(0), fittedWithDaf_(false), fittedWithReferenceTrack_(false), trackLen_(0), fChi2_(-1e99), fNdf_(-1e99), fPval_(-1e99) { ; }
39 
40  virtual ~KalmanFitStatus(){};
41 
42  virtual FitStatus *clone() const { return new KalmanFitStatus(*this); }
43 
44  unsigned int getNumIterations() const { return numIterations_; }
45  bool isFittedWithDaf() const { return fittedWithDaf_; }
47  double getTrackLen() const { return trackLen_; }
48  double getForwardChi2() const { return fChi2_; }
49  double getBackwardChi2() const { return FitStatus::getChi2(); }
50  double getForwardNdf() const { return fNdf_; }
51  double getBackwardNdf() const { return FitStatus::getNdf(); }
52  // virtual double getPVal() : not overridden, as it does the right thing.
53  double getForwardPVal() const { return std::max(0., ROOT::Math::chisquared_cdf_c(fChi2_, fNdf_)); }
54  double getBackwardPVal() const { return FitStatus::getPVal(); }
55 
56  void setNumIterations(unsigned int numIterations) { numIterations_ = numIterations; }
57  void setIsFittedWithDaf(bool fittedWithDaf = true) { fittedWithDaf_ = fittedWithDaf; }
58  void setIsFittedWithReferenceTrack(bool fittedWithReferenceTrack = true) { fittedWithReferenceTrack_ = fittedWithReferenceTrack; }
59  void setTrackLen(double trackLen) { trackLen_ = trackLen; }
60  void setForwardChi2(double fChi2) { fChi2_ = fChi2; }
61  void setBackwardChi2(double bChi2) { FitStatus::setChi2(bChi2); }
62  void setForwardNdf(double fNdf) { fNdf_ = fNdf; }
63  void setBackwardNdf(double bNdf) { FitStatus::setNdf(bNdf); }
64 
65  virtual void Print(const Option_t * = "") const;
66 
67  protected:
68  unsigned int numIterations_; // number of iterations that have been performed
71 
72  double trackLen_;
73 
74  double fChi2_; // chi^2 of the forward fit
75  double fNdf_; // degrees of freedom of the forward fit
76  double fPval_; // p-value of the forward fit, set whenever either of chi2 or ndf changes
77 
78  public:
80 };
81 
82 } /* End of namespace genfit */
85 #endif // genfit_KalmanFitStatus_h
bool isFittedWithReferenceTrack() const
void setChi2(const double &chi2)
Definition: FitStatus.h:131
virtual FitStatus * clone() const
double getForwardNdf() const
Class where important numbers and properties of a fit can be stored.
Definition: FitStatus.h:70
double getForwardPVal() const
ClassDef(FitStatus, 3)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:25
void setBackwardChi2(double bChi2)
void setForwardNdf(double fNdf)
void setIsFittedWithDaf(bool fittedWithDaf=true)
void setTrackLen(double trackLen)
double getTrackLen() const
void setIsFittedWithReferenceTrack(bool fittedWithReferenceTrack=true)
FitStatus for use with AbsKalmanFitter implementations.
void setNumIterations(unsigned int numIterations)
void setBackwardNdf(double bNdf)
double getBackwardNdf() const
virtual void Print(const Option_t *="") const
double getBackwardPVal() const
unsigned int getNumIterations() const
double getForwardChi2() const
virtual double getPVal() const
Get the p value of the fit.
Definition: FitStatus.h:120
double getNdf() const
Get the degrees of freedom of the fit.
Definition: FitStatus.h:114
bool isFittedWithDaf() const
void setForwardChi2(double fChi2)
double getBackwardChi2() const
void setNdf(const double &ndf)
Definition: FitStatus.h:132
double getChi2() const
Get chi^2 of the fit.
Definition: FitStatus.h:112
Matrix inversion tools.
Definition: AbsBField.h:28