Belle II Software  release-05-01-25
KalmanFittedStateOnPlane.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_KalmanFittedStateOnPlane_h
24 #define genfit_KalmanFittedStateOnPlane_h
25 
26 #include "MeasuredStateOnPlane.h"
27 
28 
29 namespace genfit {
30 
31 
36 
37  public:
38 
40  KalmanFittedStateOnPlane(const TVectorD& state, const TMatrixDSym& cov, const SharedPlanePtr& plane, const AbsTrackRep* rep, double chiSquareIncrement, double ndf);
41  KalmanFittedStateOnPlane(const TVectorD& state, const TMatrixDSym& cov, const SharedPlanePtr& plane, const AbsTrackRep* rep, const TVectorD& auxInfo, double chiSquareIncrement, double ndf);
42  KalmanFittedStateOnPlane(const MeasuredStateOnPlane& state, double chiSquareIncrement, double ndf);
43 
45  void swap(KalmanFittedStateOnPlane& other); // nothrow
46 
47  virtual ~KalmanFittedStateOnPlane() {}
48 
49  double getChiSquareIncrement() const {return chiSquareIncrement_;}
50  double getNdf() const {return ndf_;}
51 
52  void setChiSquareIncrement(double chiSquareIncrement) {chiSquareIncrement_ = chiSquareIncrement;}
53  void setNdf(double ndf) {ndf_ = ndf;}
54 
55 
56  protected:
57 
58  double chiSquareIncrement_;
59 
61  double ndf_;
62 
63 
64  public:
65 
66  ClassDef(KalmanFittedStateOnPlane,1)
67 
68 };
69 
70 
71 inline KalmanFittedStateOnPlane::KalmanFittedStateOnPlane() :
72  MeasuredStateOnPlane(), chiSquareIncrement_(0), ndf_(0)
73 {
74  ;
75 }
76 
77 inline KalmanFittedStateOnPlane::KalmanFittedStateOnPlane(const TVectorD& state, const TMatrixDSym& cov, const SharedPlanePtr& plane, const AbsTrackRep* rep, double chiSquareIncrement, double ndf) :
78  MeasuredStateOnPlane(state, cov, plane, rep), chiSquareIncrement_(chiSquareIncrement), ndf_(ndf)
79 {
80  ;
81 }
82 
83 inline KalmanFittedStateOnPlane::KalmanFittedStateOnPlane(const TVectorD& state, const TMatrixDSym& cov, const SharedPlanePtr& plane, const AbsTrackRep* rep, const TVectorD& auxInfo, double chiSquareIncrement, double ndf) :
84  MeasuredStateOnPlane(state, cov, plane, rep, auxInfo), chiSquareIncrement_(chiSquareIncrement), ndf_(ndf)
85 {
86  ;
87 }
88 
89 inline KalmanFittedStateOnPlane::KalmanFittedStateOnPlane(const MeasuredStateOnPlane& state, double chiSquareIncrement, double ndf) :
90  MeasuredStateOnPlane(state), chiSquareIncrement_(chiSquareIncrement), ndf_(ndf)
91 {
92  ;
93 }
94 
95 inline KalmanFittedStateOnPlane& KalmanFittedStateOnPlane::operator=(KalmanFittedStateOnPlane other) {
96  swap(other);
97  return *this;
98 }
99 
100 inline void KalmanFittedStateOnPlane::swap(KalmanFittedStateOnPlane& other) {
101  MeasuredStateOnPlane::swap(other);
102  std::swap(this->chiSquareIncrement_, other.chiSquareIncrement_);
103  std::swap(this->ndf_, other.ndf_);
104 }
105 
106 } /* End of namespace genfit */
109 #endif // genfit_KalmanFittedStateOnPlane_h
genfit::SharedPlanePtr
std::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.
Definition: SharedPlanePtr.h:40
genfit::MeasuredStateOnPlane
#StateOnPlane with additional covariance matrix.
Definition: MeasuredStateOnPlane.h:39
genfit
Defines for I/O streams used for error and debug printing.
Definition: AlignablePXDRecoHit.h:19
genfit::AbsTrackRep
Abstract base class for a track representation.
Definition: AbsTrackRep.h:66
genfit::KalmanFittedStateOnPlane
#MeasuredStateOnPlane with additional info produced by a Kalman filter or DAF.
Definition: KalmanFittedStateOnPlane.h:35
genfit::KalmanFittedStateOnPlane::ndf_
double ndf_
Degrees of freedom. Needs to be a double because of DAF.
Definition: KalmanFittedStateOnPlane.h:61