PandaRoot
KalmanFittedStateOnPlane.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 /* Copyright 2008-2010, Technische Universitaet Muenchen,
14  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
15 
16  This file is part of GENFIT.
17 
18  GENFIT is free software: you can redistribute it and/or modify
19  it under the terms of the GNU Lesser General Public License as published
20  by the Free Software Foundation, either version 3 of the License, or
21  (at your option) any later version.
22 
23  GENFIT is distributed in the hope that it will be useful,
24  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  GNU Lesser General Public License for more details.
27 
28  You should have received a copy of the GNU Lesser General Public License
29  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
30 */
35 #ifndef genfit_KalmanFittedStateOnPlane_h
36 #define genfit_KalmanFittedStateOnPlane_h
37 
38 #include "MeasuredStateOnPlane.h"
39 
40 namespace genfit {
41 
46 
47  public:
49  KalmanFittedStateOnPlane(const TVectorD &state, const TMatrixDSym &cov, const SharedPlanePtr &plane, const AbsTrackRep *rep, double chiSquareIncrement, double ndf);
50  KalmanFittedStateOnPlane(const TVectorD &state, const TMatrixDSym &cov, const SharedPlanePtr &plane, const AbsTrackRep *rep, const TVectorD &auxInfo, double chiSquareIncrement,
51  double ndf);
52  KalmanFittedStateOnPlane(const MeasuredStateOnPlane &state, double chiSquareIncrement, double ndf);
53 
55  void swap(KalmanFittedStateOnPlane &other); // nothrow
56 
58 
59  double getChiSquareIncrement() const { return chiSquareIncrement_; }
60  double getNdf() const { return ndf_; }
61 
62  void setChiSquareIncrement(double chiSquareIncrement) { chiSquareIncrement_ = chiSquareIncrement; }
63  void setNdf(double ndf) { ndf_ = ndf; }
64 
65  protected:
67 
69  double ndf_;
70 
71  public:
72  ClassDef(KalmanFittedStateOnPlane, 1)
73 };
74 
76 {
77  ;
78 }
79 
80 inline KalmanFittedStateOnPlane::KalmanFittedStateOnPlane(const TVectorD &state, const TMatrixDSym &cov, const SharedPlanePtr &plane, const AbsTrackRep *rep,
81  double chiSquareIncrement, double ndf)
82  : MeasuredStateOnPlane(state, cov, plane, rep), chiSquareIncrement_(chiSquareIncrement), ndf_(ndf)
83 {
84  ;
85 }
86 
87 inline KalmanFittedStateOnPlane::KalmanFittedStateOnPlane(const TVectorD &state, const TMatrixDSym &cov, const SharedPlanePtr &plane, const AbsTrackRep *rep,
88  const TVectorD &auxInfo, double chiSquareIncrement, double ndf)
89  : MeasuredStateOnPlane(state, cov, plane, rep, auxInfo), chiSquareIncrement_(chiSquareIncrement), ndf_(ndf)
90 {
91  ;
92 }
93 
94 inline KalmanFittedStateOnPlane::KalmanFittedStateOnPlane(const MeasuredStateOnPlane &state, double chiSquareIncrement, double ndf)
95  : MeasuredStateOnPlane(state), chiSquareIncrement_(chiSquareIncrement), ndf_(ndf)
96 {
97  ;
98 }
99 
101 {
102  swap(other);
103  return *this;
104 }
105 
107 {
109  std::swap(this->chiSquareIncrement_, other.chiSquareIncrement_);
110  std::swap(this->ndf_, other.ndf_);
111 }
112 
113 } /* End of namespace genfit */
116 #endif // genfit_KalmanFittedStateOnPlane_h
void swap(MeasuredStateOnPlane &other)
Abstract base class for a track representation.
Definition: AbsTrackRep.h:74
StateOnPlane with additional covariance matrix.
void setChiSquareIncrement(double chiSquareIncrement)
KalmanFittedStateOnPlane & operator=(KalmanFittedStateOnPlane other)
double ndf_
Degrees of freedom. Needs to be a double because of DAF.
boost::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.
void swap(KalmanFittedStateOnPlane &other)
MeasuredStateOnPlane with additional info produced by a Kalman filter or DAF.
Matrix inversion tools.
Definition: AbsBField.h:40