PandaRoot
ReferenceStateOnPlane.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 */
19 
24 #ifndef genfit_ReferenceStateOnPlane_h
25 #define genfit_ReferenceStateOnPlane_h
26 
27 #include "StateOnPlane.h"
28 
29 namespace genfit {
30 
43 
44  public:
46  ReferenceStateOnPlane(const TVectorD &state, const SharedPlanePtr &plane, const AbsTrackRep *rep);
47  ReferenceStateOnPlane(const TVectorD &state, const SharedPlanePtr &plane, const AbsTrackRep *rep, const TVectorD &auxInfo);
48  ReferenceStateOnPlane(const StateOnPlane &state);
49 
51  void swap(ReferenceStateOnPlane &other); // nothrow
52 
54 
55  void setForwardSegmentLength(double len) { forwardSegmentLength_ = len; }
58  {
59  forwardTransportMatrix_.ResizeTo(mat);
61  }
63  {
64  backwardTransportMatrix_.ResizeTo(mat);
66  }
67  void setTransportMatrix(const TMatrixD &mat, int direction)
68  {
69  if (direction >= 0)
71  else
73  }
74  void setForwardNoiseMatrix(const TMatrixDSym &mat)
75  {
76  forwardNoiseMatrix_.ResizeTo(mat);
77  forwardNoiseMatrix_ = mat;
78  }
79  void setBackwardNoiseMatrix(const TMatrixDSym &mat)
80  {
81  backwardNoiseMatrix_.ResizeTo(mat);
83  }
84  void setNoiseMatrix(const TMatrixDSym &mat, int direction)
85  {
86  if (direction >= 0)
88  else
90  }
91  void setForwardDeltaState(const TVectorD &mat)
92  {
93  forwardDeltaState_.ResizeTo(mat);
94  forwardDeltaState_ = mat;
95  }
96  void setBackwardDeltaState(const TVectorD &mat)
97  {
98  backwardDeltaState_.ResizeTo(mat);
99  backwardDeltaState_ = mat;
100  }
101  void setDeltaState(const TVectorD &mat, int direction)
102  {
103  if (direction >= 0)
105  else
107  }
108 
113  const TMatrixD &getTransportMatrix(int direction) const
114  {
115  if (direction >= 0)
118  }
119  const TMatrixDSym &getForwardNoiseMatrix() const { return forwardNoiseMatrix_; }
120  const TMatrixDSym &getBackwardNoiseMatrix() const { return backwardNoiseMatrix_; }
121  const TMatrixDSym &getNoiseMatrix(int direction) const
122  {
123  if (direction >= 0)
124  return forwardNoiseMatrix_;
125  return backwardNoiseMatrix_;
126  }
127  const TVectorD &getForwardDeltaState() const { return forwardDeltaState_; }
128  const TVectorD &getBackwardDeltaState() const { return backwardDeltaState_; }
129  const TVectorD &getDeltaState(int direction) const
130  {
131  if (direction >= 0)
132  return forwardDeltaState_;
133  return backwardDeltaState_;
134  }
135 
136  void resetForward();
137  void resetBackward();
138 
139  virtual void Print(Option_t *option = "") const;
140 
141  protected:
146  TMatrixDSym forwardNoiseMatrix_;
147  TMatrixDSym backwardNoiseMatrix_;
151  public:
152  ClassDef(ReferenceStateOnPlane, 1)
153 };
154 
155 } /* End of namespace genfit */
158 #endif // genfit_ReferenceStateOnPlane_h
void setBackwardTransportMatrix(const TMatrixD &mat)
const TMatrixDSym & getBackwardNoiseMatrix() const
virtual void Print(Option_t *option="") const
void setBackwardDeltaState(const TVectorD &mat)
const TMatrixD & getTransportMatrix(int direction) const
Abstract base class for a track representation.
Definition: AbsTrackRep.h:62
void setForwardNoiseMatrix(const TMatrixDSym &mat)
void setTransportMatrix(const TMatrixD &mat, int direction)
A state with arbitrary dimension defined in a DetPlane.
Definition: StateOnPlane.h:44
StateOnPlane & operator=(ReferenceStateOnPlane other)
const TMatrixDSym & getForwardNoiseMatrix() const
void setNoiseMatrix(const TMatrixDSym &mat, int direction)
void setForwardTransportMatrix(const TMatrixD &mat)
const TMatrixD & getBackwardTransportMatrix() const
StateOnPlane with linearized transport to that ReferenceStateOnPlane from previous and next Reference...
void setBackwardNoiseMatrix(const TMatrixDSym &mat)
const TVectorD & getDeltaState(int direction) const
void swap(ReferenceStateOnPlane &other)
void setForwardDeltaState(const TVectorD &mat)
const TMatrixD & getForwardTransportMatrix() const
const TVectorD & getBackwardDeltaState() const
boost::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.
void setDeltaState(const TVectorD &mat, int direction)
const TMatrixDSym & getNoiseMatrix(int direction) const
const TVectorD & getForwardDeltaState() const
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:52
Matrix inversion tools.
Definition: AbsBField.h:28