EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ReferenceStateOnPlane.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file ReferenceStateOnPlane.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 */
19 
24 #ifndef genfit_ReferenceStateOnPlane_h
25 #define genfit_ReferenceStateOnPlane_h
26 
27 #include "StateOnPlane.h"
28 
29 
30 namespace genfit {
31 
44 
45  public:
46 
48  ReferenceStateOnPlane(const TVectorD& state,
49  const SharedPlanePtr& plane,
50  const AbsTrackRep* rep);
51  ReferenceStateOnPlane(const TVectorD& state,
52  const SharedPlanePtr& plane,
53  const AbsTrackRep* rep,
54  const TVectorD& auxInfo);
55  ReferenceStateOnPlane(const StateOnPlane& state);
56 
58  void swap(ReferenceStateOnPlane& other); // nothrow
59 
61 
64  void setForwardTransportMatrix(const TMatrixD& mat) {forwardTransportMatrix_.ResizeTo(mat); forwardTransportMatrix_=mat;}
65  void setBackwardTransportMatrix(const TMatrixD& mat) {backwardTransportMatrix_.ResizeTo(mat); backwardTransportMatrix_=mat;}
66  void setTransportMatrix(const TMatrixD& mat, int direction) {if (direction >= 0) setForwardTransportMatrix(mat); else setBackwardTransportMatrix(mat);}
67  void setForwardNoiseMatrix(const TMatrixDSym& mat) {forwardNoiseMatrix_.ResizeTo(mat); forwardNoiseMatrix_=mat;}
68  void setBackwardNoiseMatrix(const TMatrixDSym& mat) {backwardNoiseMatrix_.ResizeTo(mat); backwardNoiseMatrix_=mat;}
69  void setNoiseMatrix(const TMatrixDSym& mat, int direction) {if (direction >= 0) setForwardNoiseMatrix(mat); else setBackwardNoiseMatrix(mat);}
70  void setForwardDeltaState(const TVectorD& mat) {forwardDeltaState_.ResizeTo(mat); forwardDeltaState_=mat;}
71  void setBackwardDeltaState(const TVectorD& mat) {backwardDeltaState_.ResizeTo(mat); backwardDeltaState_=mat;}
72  void setDeltaState(const TVectorD& mat, int direction) {if (direction >= 0) setForwardDeltaState(mat); else setBackwardDeltaState(mat);}
73 
74 
77  const TMatrixD& getForwardTransportMatrix() const {return forwardTransportMatrix_;}
78  const TMatrixD& getBackwardTransportMatrix() const {return backwardTransportMatrix_;}
79  const TMatrixD& getTransportMatrix(int direction) const {if (direction >= 0) return forwardTransportMatrix_; return backwardTransportMatrix_;}
80  const TMatrixDSym& getForwardNoiseMatrix() const {return forwardNoiseMatrix_;}
81  const TMatrixDSym& getBackwardNoiseMatrix() const {return backwardNoiseMatrix_;}
82  const TMatrixDSym& getNoiseMatrix(int direction) const {if (direction >= 0) return forwardNoiseMatrix_; return backwardNoiseMatrix_;}
83  const TVectorD& getForwardDeltaState() const {return forwardDeltaState_;}
84  const TVectorD& getBackwardDeltaState() const {return backwardDeltaState_;}
85  const TVectorD& getDeltaState(int direction) const {if (direction >= 0) return forwardDeltaState_; return backwardDeltaState_;}
86 
87  void resetForward();
88  void resetBackward();
89 
90  virtual void Print(Option_t* option = "") const override;
91 
92  protected:
93 
98  TMatrixDSym forwardNoiseMatrix_;
99  TMatrixDSym backwardNoiseMatrix_;
104  public:
105 
106  ClassDefOverride(ReferenceStateOnPlane,1)
107 
108 };
109 
110 } /* End of namespace genfit */
113 #endif // genfit_ReferenceStateOnPlane_h