PandaRoot
ReferenceStateOnPlane.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 */
31 
36 #ifndef genfit_ReferenceStateOnPlane_h
37 #define genfit_ReferenceStateOnPlane_h
38 
39 #include "StateOnPlane.h"
40 
41 namespace genfit {
42 
55 
56  public:
58  ReferenceStateOnPlane(const TVectorD &state, const SharedPlanePtr &plane, const AbsTrackRep *rep);
59  ReferenceStateOnPlane(const TVectorD &state, const SharedPlanePtr &plane, const AbsTrackRep *rep, const TVectorD &auxInfo);
60  ReferenceStateOnPlane(const StateOnPlane &state);
61 
63  void swap(ReferenceStateOnPlane &other); // nothrow
64 
66 
67  void setForwardSegmentLength(double len) { forwardSegmentLength_ = len; }
70  {
71  forwardTransportMatrix_.ResizeTo(mat);
73  }
75  {
76  backwardTransportMatrix_.ResizeTo(mat);
78  }
79  void setTransportMatrix(const TMatrixD &mat, int direction)
80  {
81  if (direction >= 0)
83  else
85  }
86  void setForwardNoiseMatrix(const TMatrixDSym &mat)
87  {
88  forwardNoiseMatrix_.ResizeTo(mat);
89  forwardNoiseMatrix_ = mat;
90  }
91  void setBackwardNoiseMatrix(const TMatrixDSym &mat)
92  {
93  backwardNoiseMatrix_.ResizeTo(mat);
95  }
96  void setNoiseMatrix(const TMatrixDSym &mat, int direction)
97  {
98  if (direction >= 0)
100  else
102  }
103  void setForwardDeltaState(const TVectorD &mat)
104  {
105  forwardDeltaState_.ResizeTo(mat);
106  forwardDeltaState_ = mat;
107  }
108  void setBackwardDeltaState(const TVectorD &mat)
109  {
110  backwardDeltaState_.ResizeTo(mat);
111  backwardDeltaState_ = mat;
112  }
113  void setDeltaState(const TVectorD &mat, int direction)
114  {
115  if (direction >= 0)
117  else
119  }
120 
125  const TMatrixD &getTransportMatrix(int direction) const
126  {
127  if (direction >= 0)
130  }
131  const TMatrixDSym &getForwardNoiseMatrix() const { return forwardNoiseMatrix_; }
132  const TMatrixDSym &getBackwardNoiseMatrix() const { return backwardNoiseMatrix_; }
133  const TMatrixDSym &getNoiseMatrix(int direction) const
134  {
135  if (direction >= 0)
136  return forwardNoiseMatrix_;
137  return backwardNoiseMatrix_;
138  }
139  const TVectorD &getForwardDeltaState() const { return forwardDeltaState_; }
140  const TVectorD &getBackwardDeltaState() const { return backwardDeltaState_; }
141  const TVectorD &getDeltaState(int direction) const
142  {
143  if (direction >= 0)
144  return forwardDeltaState_;
145  return backwardDeltaState_;
146  }
147 
148  void resetForward();
149  void resetBackward();
150 
151  virtual void Print(Option_t *option = "") const;
152 
153  protected:
158  TMatrixDSym forwardNoiseMatrix_;
159  TMatrixDSym backwardNoiseMatrix_;
163  public:
164  ClassDef(ReferenceStateOnPlane, 1)
165 };
166 
167 } /* End of namespace genfit */
170 #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:74
void setForwardNoiseMatrix(const TMatrixDSym &mat)
void setTransportMatrix(const TMatrixD &mat, int direction)
A state with arbitrary dimension defined in a DetPlane.
Definition: StateOnPlane.h:56
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:64
Matrix inversion tools.
Definition: AbsBField.h:40