FairRoot/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 
31 namespace genfit {
32 
36 class KalmanFitStatus : public FitStatus {
37 
38  public:
39 
42  trackLen_(0), fChi2_(-1e99), fNdf_(-1e99), fPval_(-1e99) {;}
43 
44  virtual ~KalmanFitStatus() {};
45 
46  virtual FitStatus* clone() const {return new KalmanFitStatus(*this);}
47 
48  unsigned int getNumIterations() const {return numIterations_;}
49  bool isFittedWithDaf() const {return fittedWithDaf_;}
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;
70 
71  protected:
72 
73  unsigned int numIterations_; // number of iterations that have been performed
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 
86 
87 };
88 
89 } /* End of namespace genfit */
92 #endif // genfit_KalmanFitStatus_h
double getBackwardNdf() const
void setChi2(const double &chi2)
Definition: FitStatus.h:137
double getForwardNdf() const
double getBackwardPVal() const
bool isFittedWithDaf() const
Class where important numbers and properties of a fit can be stored.
Definition: FitStatus.h:80
double getChi2() const
Get chi^2 of the fit.
Definition: FitStatus.h:118
ClassDef(FitStatus, 3)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:26
void setBackwardChi2(double bChi2)
double getNdf() const
Get the degrees of freedom of the fit.
Definition: FitStatus.h:120
void setForwardNdf(double fNdf)
void setIsFittedWithDaf(bool fittedWithDaf=true)
void setTrackLen(double trackLen)
void setIsFittedWithReferenceTrack(bool fittedWithReferenceTrack=true)
double getBackwardChi2() const
FitStatus for use with AbsKalmanFitter implementations.
void setNumIterations(unsigned int numIterations)
void setBackwardNdf(double bNdf)
double getForwardChi2() const
virtual double getPVal() const
Get the p value of the fit.
Definition: FitStatus.h:126
double getForwardPVal() const
virtual void Print(const Option_t *="") const
unsigned int getNumIterations() const
bool isFittedWithReferenceTrack() const
virtual FitStatus * clone() const
void setForwardChi2(double fChi2)
void setNdf(const double &ndf)
Definition: FitStatus.h:138
double getTrackLen() const