CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
BasicTrajectoryState Class Referenceabstract

#include <BasicTrajectoryState.h>

Inheritance diagram for BasicTrajectoryState:
BasicMultiTrajectoryState BasicSingleTrajectoryState

Public Types

typedef BasicTrajectoryState BTSOS
 
using Components = std::vector< TrajectoryStateOnSurface >
 
typedef Proxy::pointer pointer
 
typedef ProxyBase11< BTSOSProxy
 
typedef SurfaceSideDefinition::SurfaceSide SurfaceSide
 
typedef Surface SurfaceType
 

Public Member Functions

 BasicTrajectoryState ()
 
 BasicTrajectoryState (const SurfaceType &aSurface)
 construct invalid trajectory state (without parameters) More...
 
 BasicTrajectoryState (const FreeTrajectoryState &fts, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
 
 BasicTrajectoryState (const FreeTrajectoryState &fts)
 
 BasicTrajectoryState (const LocalTrajectoryParameters &par, const LocalTrajectoryError &err, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
 
 BasicTrajectoryState (const LocalTrajectoryParameters &par, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
 
 BasicTrajectoryState (const GlobalTrajectoryParameters &par, const CartesianTrajectoryError &err, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
 
 BasicTrajectoryState (const GlobalTrajectoryParameters &par, const CurvilinearTrajectoryError &err, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
 
 BasicTrajectoryState (const GlobalTrajectoryParameters &par, const SurfaceType &aSurface, const SurfaceSide side=SurfaceSideDefinition::atCenterOfSurface)
 
template<typename... Args>
 BasicTrajectoryState (double iweight, Args &&...args)
 
virtual bool canUpdateLocalParameters () const
 
const CartesianTrajectoryError cartesianError () const
 
TrackCharge charge () const
 
virtual pointer clone () const =0
 
virtual Components const & components () const =0
 
const CurvilinearTrajectoryErrorcurvilinearError () const
 
FreeTrajectoryState const * freeTrajectoryState (bool withErrors=true) const
 
GlobalVector globalDirection () const
 
GlobalVector globalMomentum () const
 
const GlobalTrajectoryParametersglobalParameters () const
 
GlobalPoint globalPosition () const
 
bool hasError () const
 
bool isValid () const
 
LocalVector localDirection () const
 
const LocalTrajectoryErrorlocalError () const
 
LocalVector localMomentum () const
 
const LocalTrajectoryParameterslocalParameters () const
 
LocalPoint localPosition () const
 
const MagneticFieldmagneticField () const
 
void rescaleError (double factor)
 
CurvilinearTrajectoryErrorsetCurvilinearError ()
 
double signedInverseMomentum () const
 
virtual bool singleState () const =0
 
const SurfaceTypesurface () const
 
SurfaceSide surfaceSide () const
 Position relative to material, defined relative to momentum vector. More...
 
double transverseCurvature () const
 
virtual void update (const LocalTrajectoryParameters &p, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side)
 
virtual void update (const LocalTrajectoryParameters &p, const SurfaceSide side) final
 
virtual void update (double weight, const LocalTrajectoryParameters &p, const LocalTrajectoryError &err, const SurfaceType &aSurface, const MagneticField *field, const SurfaceSide side)
 
virtual void update (const LocalTrajectoryParameters &p, const LocalTrajectoryError &err, const SurfaceSide side) final
 
double weight () const
 
virtual ~BasicTrajectoryState ()
 

Static Public Member Functions

template<typename T , typename... Args>
static std::shared_ptr< BTSOSbuild (Args &&...args)
 
template<typename T , typename... Args>
static std::shared_ptr< BTSOSchurn (Args &&...args)
 

Private Member Functions

void checkCurvilinError () const
 
void createLocalError () const
 
void createLocalErrorFromCurvilinearError () const
 
void createLocalParameters () const
 
void missingError (char const *where) const
 

Static Private Member Functions

static void notValid ()
 

Private Attributes

FreeTrajectoryState theFreeState
 
LocalTrajectoryError theLocalError
 
LocalTrajectoryParameters theLocalParameters
 
bool theLocalParametersValid
 
ConstReferenceCountingPointer< SurfaceTypetheSurfaceP
 
SurfaceSide theSurfaceSide
 
bool theValid
 
double theWeight =0.
 

Detailed Description

No so Abstract (anyore) base class for TrajectoryState. It is ReferenceCounted.

VI 8/12/2011 content of BasicSingleTrajectoryState moved here.... fully devirtualized

Definition at line 64 of file BasicTrajectoryState.h.

Member Typedef Documentation

Definition at line 67 of file BasicTrajectoryState.h.

Definition at line 332 of file BasicTrajectoryState.h.

Definition at line 69 of file BasicTrajectoryState.h.

Definition at line 68 of file BasicTrajectoryState.h.

Definition at line 70 of file BasicTrajectoryState.h.

Definition at line 71 of file BasicTrajectoryState.h.

Constructor & Destructor Documentation

BasicTrajectoryState::BasicTrajectoryState ( )
inline

Definition at line 76 of file BasicTrajectoryState.h.

References clone().

Referenced by BasicTrajectoryState(), and ~BasicTrajectoryState().

BasicTrajectoryState::BasicTrajectoryState ( const SurfaceType aSurface)
explicit
BasicTrajectoryState::~BasicTrajectoryState ( )
virtual

Definition at line 40 of file BasicTrajectoryState.cc.

References BasicTrajectoryState().

40 {}
BasicTrajectoryState::BasicTrajectoryState ( const FreeTrajectoryState fts,
const SurfaceType aSurface,
const SurfaceSide  side = SurfaceSideDefinition::atCenterOfSurface 
)
inline

Constructor from FTS and surface. For surfaces with material the side of the surface should be specified explicitely.

Definition at line 96 of file BasicTrajectoryState.h.

98  :
99  theFreeState(fts),
103  theValid(true),
104  theSurfaceSide(side),
105  theSurfaceP( &aSurface),
106  theWeight(1.)
107  {}
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
BasicTrajectoryState::BasicTrajectoryState ( const FreeTrajectoryState fts)
inlineexplicit

Constructor from FTS: just a wrapper

Definition at line 113 of file BasicTrajectoryState.h.

References SurfaceSideDefinition::atCenterOfSurface.

113  :
114  theFreeState(fts),
118  theValid(true),
119  theWeight(1.)
120  {}
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
BasicTrajectoryState::BasicTrajectoryState ( const LocalTrajectoryParameters par,
const LocalTrajectoryError err,
const SurfaceType aSurface,
const MagneticField field,
const SurfaceSide  side = SurfaceSideDefinition::atCenterOfSurface 
)

Constructor from local parameters, errors and surface. For surfaces with material the side of the surface should be specified explicitely. For multi-states the weight should be specified explicitely.

Definition at line 78 of file BasicTrajectoryState.cc.

82  :
83  theFreeState(makeFTS(par,aSurface,field)),
84  theLocalError(err),
85  theLocalParameters(par),
87  theValid(true),
88  theSurfaceSide(side),
89  theSurfaceP( &aSurface),
90  theWeight(1.)
91 {}
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
BasicTrajectoryState::BasicTrajectoryState ( const LocalTrajectoryParameters par,
const SurfaceType aSurface,
const MagneticField field,
const SurfaceSide  side = SurfaceSideDefinition::atCenterOfSurface 
)
inline

Constructor from local parameters, errors and surface. For surfaces with material the side of the surface should be specified explicitely.

Definition at line 139 of file BasicTrajectoryState.h.

142  :
143  BasicTrajectoryState(par, InvalidError(), aSurface, field, side){}
BasicTrajectoryState::BasicTrajectoryState ( const GlobalTrajectoryParameters par,
const CartesianTrajectoryError err,
const SurfaceType aSurface,
const SurfaceSide  side = SurfaceSideDefinition::atCenterOfSurface 
)
inline

Constructor from global parameters, errors and surface. For surfaces with material the side of the surface should be specified explicitely.

Definition at line 151 of file BasicTrajectoryState.h.

154  :
155  theFreeState(par, err),
159  theValid(true),
160  theSurfaceSide(side),
161  theSurfaceP( &aSurface),
162  theWeight(1.)
163  {}
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
BasicTrajectoryState::BasicTrajectoryState ( const GlobalTrajectoryParameters par,
const CurvilinearTrajectoryError err,
const SurfaceType aSurface,
const SurfaceSide  side = SurfaceSideDefinition::atCenterOfSurface 
)
inline

Constructor from global parameters, errors and surface. For surfaces with material the side of the surface should be specified explicitely. For multi-states the weight should be specified explicitely.

Definition at line 170 of file BasicTrajectoryState.h.

173  :
174  theFreeState(par, err),
178  theValid(true),
179  theSurfaceSide(side),
180  theSurfaceP( &aSurface),
181  theWeight(1.)
182  {}
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
BasicTrajectoryState::BasicTrajectoryState ( const GlobalTrajectoryParameters par,
const SurfaceType aSurface,
const SurfaceSide  side = SurfaceSideDefinition::atCenterOfSurface 
)
inline

Constructor from global parameters and surface. For surfaces with material the side of the surface should be specified explicitely.

Definition at line 188 of file BasicTrajectoryState.h.

190  :
191  BasicTrajectoryState(par, InvalidError(), aSurface, side){}
template<typename... Args>
BasicTrajectoryState::BasicTrajectoryState ( double  iweight,
Args &&...  args 
)
inline

Definition at line 196 of file BasicTrajectoryState.h.

196  : BasicTrajectoryState(std::forward<Args>(args)...) {
197  theWeight = iweight;
198  }

Member Function Documentation

template<typename T , typename... Args>
static std::shared_ptr<BTSOS> BasicTrajectoryState::build ( Args &&...  args)
inlinestatic

Definition at line 86 of file BasicTrajectoryState.h.

References writedatasetfile::args.

86 { return std::make_shared<T>(std::forward<Args>(args)...);}
virtual bool BasicTrajectoryState::canUpdateLocalParameters ( ) const
inlinevirtual

Reimplemented in BasicMultiTrajectoryState.

Definition at line 303 of file BasicTrajectoryState.h.

References AlCaHLTBitMon_ParallelJobs::p, and update.

303 { return true; }
const CartesianTrajectoryError BasicTrajectoryState::cartesianError ( ) const
inline

Definition at line 228 of file BasicTrajectoryState.h.

References UNLIKELY.

228  {
229  if UNLIKELY(!hasError()) {
230  missingError(" accesing cartesian error.");
231  return CartesianTrajectoryError();
232  }
233  return freeTrajectoryState(true)->cartesianError();
234  }
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
CartesianTrajectoryError cartesianError() const
void missingError(char const *where) const
#define UNLIKELY(x)
Definition: Likely.h:21
TrackCharge BasicTrajectoryState::charge ( void  ) const
inline

Definition at line 218 of file BasicTrajectoryState.h.

Referenced by PixelTrackBuilder::build(), and sqr().

218  {
219  return theFreeState.charge();
220  }
TrackCharge charge() const
FreeTrajectoryState theFreeState
void BasicTrajectoryState::checkCurvilinError ( ) const
private

Definition at line 133 of file BasicTrajectoryState.cc.

References createLocalParameters(), globalParameters(), FreeTrajectoryState::hasCurvilinearError(), JacobianLocalToCurvilinear::jacobian(), LIKELY, localParameters(), magneticField(), LocalTrajectoryError::matrix(), FreeTrajectoryState::setCurvilinearError(), surface(), theFreeState, theLocalError, theLocalParametersValid, and UNLIKELY.

133  {
135 
137 
139  const AlgebraicMatrix55& jac = loc2Curv.jacobian();
140  const AlgebraicSymMatrix55 &cov = ROOT::Math::Similarity(jac, theLocalError.matrix());
141 
143 
144  verifyLocalErr(theLocalError,theFreeState);
145  verifyCurvErr(cov,theFreeState);
146 }
CurvilinearTrajectoryError & setCurvilinearError()
const MagneticField * magneticField() const
bool hasCurvilinearError() const
#define LIKELY(x)
Definition: Likely.h:20
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
void createLocalParameters() const
const SurfaceType & surface() const
const GlobalTrajectoryParameters & globalParameters() const
FreeTrajectoryState theFreeState
const LocalTrajectoryParameters & localParameters() const
#define UNLIKELY(x)
Definition: Likely.h:21
LocalTrajectoryError theLocalError
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
template<typename T , typename... Args>
static std::shared_ptr<BTSOS> BasicTrajectoryState::churn ( Args &&...  args)
inlinestatic

Definition at line 89 of file BasicTrajectoryState.h.

References writedatasetfile::args.

89 { return std::allocate_shared<T>(churn_allocator<T>(),std::forward<Args>(args)...);}
virtual pointer BasicTrajectoryState::clone ( ) const
pure virtual
virtual Components const& BasicTrajectoryState::components ( ) const
pure virtual
void BasicTrajectoryState::createLocalError ( ) const
private
void BasicTrajectoryState::createLocalErrorFromCurvilinearError ( ) const
private

Definition at line 169 of file BasicTrajectoryState.cc.

References FreeTrajectoryState::curvilinearError(), globalParameters(), JacobianCurvilinearToLocal::jacobian(), localParameters(), magneticField(), CurvilinearTrajectoryError::matrix(), surface(), theFreeState, and theLocalError.

Referenced by createLocalError().

169  {
170 
172  const AlgebraicMatrix55 & jac = curv2Loc.jacobian();
173 
174  theLocalError = ROOT::Math::Similarity(jac, theFreeState.curvilinearError().matrix());
175 
176  verifyCurvErr(theFreeState.curvilinearError(),theFreeState);
177  verifyLocalErr(theLocalError,theFreeState);
178 
179 }
const MagneticField * magneticField() const
const CurvilinearTrajectoryError & curvilinearError() const
const SurfaceType & surface() const
const GlobalTrajectoryParameters & globalParameters() const
FreeTrajectoryState theFreeState
const LocalTrajectoryParameters & localParameters() const
const AlgebraicSymMatrix55 & matrix() const
LocalTrajectoryError theLocalError
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
void BasicTrajectoryState::createLocalParameters ( ) const
private

Definition at line 151 of file BasicTrajectoryState.cc.

References FreeTrajectoryState::charge(), PV3DBase< T, PVType, FrameType >::mag(), FreeTrajectoryState::momentum(), AlCaHLTBitMon_ParallelJobs::p, FreeTrajectoryState::position(), FreeTrajectoryState::signedInverseMomentum(), surface(), theFreeState, theLocalParameters, theLocalParametersValid, GloballyPositioned< T >::toLocal(), x, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by checkCurvilinError().

151  {
154 // believe p.z() never exactly equals 0.
155  bool isCharged = theFreeState.charge()!=0;
158  p.x()/p.z(), p.y()/p.z(), x.x(), x.y(), p.z()>0. ? 1.:-1., isCharged);
160 }
T y() const
Definition: PV3DBase.h:63
TrackCharge charge() const
T mag() const
Definition: PV3DBase.h:67
LocalPoint toLocal(const GlobalPoint &gp) const
T z() const
Definition: PV3DBase.h:64
GlobalVector momentum() const
GlobalPoint position() const
const SurfaceType & surface() const
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
T x() const
Definition: PV3DBase.h:62
double signedInverseMomentum() const
const CurvilinearTrajectoryError& BasicTrajectoryState::curvilinearError ( ) const
inline

Definition at line 235 of file BasicTrajectoryState.h.

References RefreshWebPage::crap, and UNLIKELY.

Referenced by PixelTrackBuilder::build(), and sqr().

235  {
236  if UNLIKELY(!hasError()) {
237  missingError(" accesing curvilinearerror.");
238  static const CurvilinearTrajectoryError crap;
239  return crap;
240  }
241  return freeTrajectoryState(true)->curvilinearError();
242  }
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
const CurvilinearTrajectoryError & curvilinearError() const
void missingError(char const *where) const
#define UNLIKELY(x)
Definition: Likely.h:21
FreeTrajectoryState const* BasicTrajectoryState::freeTrajectoryState ( bool  withErrors = true) const
inline

Definition at line 246 of file BasicTrajectoryState.h.

References UNLIKELY.

246  {
247  if UNLIKELY(!isValid()) notValid();
248  if(withErrors && hasError()) { // this is the right thing
250  }
251  return &theFreeState;
252  }
FreeTrajectoryState theFreeState
#define UNLIKELY(x)
Definition: Likely.h:21
GlobalVector BasicTrajectoryState::globalDirection ( ) const
inline

Definition at line 215 of file BasicTrajectoryState.h.

References Vector3DBase< T, FrameTag >::unit().

215  {
216  return theFreeState.momentum().unit();
217  }
GlobalVector momentum() const
Vector3DBase unit() const
Definition: Vector3DBase.h:57
FreeTrajectoryState theFreeState
GlobalVector BasicTrajectoryState::globalMomentum ( ) const
inline

Definition at line 212 of file BasicTrajectoryState.h.

Referenced by PixelTrackBuilder::build(), and sqr().

212  {
213  return theFreeState.momentum();
214  }
GlobalVector momentum() const
FreeTrajectoryState theFreeState
const GlobalTrajectoryParameters& BasicTrajectoryState::globalParameters ( void  ) const
inline

Definition at line 206 of file BasicTrajectoryState.h.

Referenced by checkCurvilinError(), and createLocalErrorFromCurvilinearError().

206  {
207  return theFreeState.parameters();
208  }
const GlobalTrajectoryParameters & parameters() const
FreeTrajectoryState theFreeState
GlobalPoint BasicTrajectoryState::globalPosition ( ) const
inline

Definition at line 209 of file BasicTrajectoryState.h.

Referenced by PixelTrackBuilder::build(), and sqr().

209  {
210  return theFreeState.position();
211  }
GlobalPoint position() const
FreeTrajectoryState theFreeState
bool BasicTrajectoryState::hasError ( void  ) const
inline

Definition at line 298 of file BasicTrajectoryState.h.

Referenced by rescaleError().

298  {
300  }
FreeTrajectoryState theFreeState
LocalTrajectoryError theLocalError
bool BasicTrajectoryState::isValid ( void  ) const
inline
LocalVector BasicTrajectoryState::localDirection ( ) const
inline

Definition at line 270 of file BasicTrajectoryState.h.

References Vector3DBase< T, FrameTag >::unit().

270  {
271  return localMomentum().unit();
272  }
Vector3DBase unit() const
Definition: Vector3DBase.h:57
LocalVector localMomentum() const
const LocalTrajectoryError& BasicTrajectoryState::localError ( ) const
inline

Definition at line 274 of file BasicTrajectoryState.h.

References UNLIKELY.

Referenced by sqr().

274  {
275  if UNLIKELY(!hasError()) {
276  missingError(" accessing local error.");
277  return theLocalError;
278  }
280  return theLocalError;
281  }
void missingError(char const *where) const
#define UNLIKELY(x)
Definition: Likely.h:21
LocalTrajectoryError theLocalError
LocalVector BasicTrajectoryState::localMomentum ( ) const
inline

Definition at line 267 of file BasicTrajectoryState.h.

Referenced by sqr().

267  {
268  return localParameters().momentum();
269  }
LocalVector momentum() const
Momentum vector in the local frame.
const LocalTrajectoryParameters & localParameters() const
const LocalTrajectoryParameters& BasicTrajectoryState::localParameters ( ) const
inline

Definition at line 258 of file BasicTrajectoryState.h.

References UNLIKELY.

Referenced by checkCurvilinError(), and createLocalErrorFromCurvilinearError().

258  {
259  if UNLIKELY(!isValid()) notValid();
263  }
return((rh^lh)&mask)
void createLocalParameters() const
LocalTrajectoryParameters theLocalParameters
#define UNLIKELY(x)
Definition: Likely.h:21
LocalPoint BasicTrajectoryState::localPosition ( ) const
inline

Definition at line 264 of file BasicTrajectoryState.h.

Referenced by sqr().

264  {
265  return localParameters().position();
266  }
LocalPoint position() const
Local x and y position coordinates.
const LocalTrajectoryParameters & localParameters() const
const MagneticField* BasicTrajectoryState::magneticField ( ) const
inline

Definition at line 255 of file BasicTrajectoryState.h.

Referenced by checkCurvilinError(), createLocalErrorFromCurvilinearError(), rescaleError(), and update().

255 { return &theFreeState.parameters().magneticField(); }
const GlobalTrajectoryParameters & parameters() const
FreeTrajectoryState theFreeState
const MagneticField & magneticField() const
void BasicTrajectoryState::missingError ( char const *  where) const
private

Definition at line 119 of file BasicTrajectoryState.cc.

References LocalTrajectoryError::matrix(), theFreeState, theLocalError, and LocalTrajectoryError::valid().

Referenced by rescaleError().

119  {
120  std::stringstream form;
121  form<<"BasicTrajectoryState: attempt to access errors when none available "
122  <<where<<".\nfreestate pointer: " <<theFreeState
123  <<"\nlocal error valid/values :"<< theLocalError.valid() << "\n"
124  << theLocalError.matrix();
125 
126  edm::LogWarning("BasicTrajectoryState") << form.str();
127 
128  // throw TrajectoryStateException(form.str());
129 }
const AlgebraicSymMatrix55 & matrix() const
FreeTrajectoryState theFreeState
LocalTrajectoryError theLocalError
void BasicTrajectoryState::notValid ( )
staticprivate
void BasicTrajectoryState::rescaleError ( double  factor)

Definition at line 250 of file BasicTrajectoryState.cc.

References benchmark_cfg::errors, hasError(), mps_fire::i, magneticField(), LocalTrajectoryError::matrix(), missingError(), MagneticField::nominalValue(), FreeTrajectoryState::rescaleError(), theFreeState, theLocalError, UNLIKELY, and LocalTrajectoryError::valid().

250  {
251  if UNLIKELY(!hasError()) missingError(" trying to rescale");
252  theFreeState.rescaleError(factor);
253 
254  if (theLocalError.valid()){
255  //do it by hand if the free state is not around.
256  bool zeroField = (magneticField()->nominalValue()==0);
257  if UNLIKELY(zeroField){
259  //scale the 0 indexed covariance by the square root of the factor
260  for (unsigned int i=1;i!=5;++i) errors(i,0)*=factor;
261  double factor_squared=factor*factor;
262  //scale all others by the scaled factor
263  for (unsigned int i=1;i!=5;++i) for (unsigned int j=i;j!=5;++j) errors(i,j)*=factor_squared;
264  //term 0,0 is not scaled at all
266  }
267  else theLocalError *= (factor*factor);
268  }
269 }
const MagneticField * magneticField() const
int nominalValue() const
The nominal field value for this map in kGauss.
Definition: MagneticField.h:58
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
void rescaleError(double factor)
const AlgebraicSymMatrix55 & matrix() const
FreeTrajectoryState theFreeState
void missingError(char const *where) const
Definition: errors.py:1
#define UNLIKELY(x)
Definition: Likely.h:21
LocalTrajectoryError theLocalError
CurvilinearTrajectoryError& BasicTrajectoryState::setCurvilinearError ( )
inline

Definition at line 327 of file BasicTrajectoryState.h.

327  {
329  }
FreeTrajectoryState theFreeState
CurvilinearTrajectoryError & setCurvilinearError()
double BasicTrajectoryState::signedInverseMomentum ( ) const
inline

Definition at line 221 of file BasicTrajectoryState.h.

221  {
223  }
FreeTrajectoryState theFreeState
double signedInverseMomentum() const
virtual bool BasicTrajectoryState::singleState ( ) const
pure virtual
const SurfaceType& BasicTrajectoryState::surface ( ) const
inline

Definition at line 283 of file BasicTrajectoryState.h.

Referenced by BasicTrajectoryState(), checkCurvilinError(), createLocalErrorFromCurvilinearError(), createLocalParameters(), sqr(), and update().

283  {
284  return *theSurfaceP;
285  }
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
SurfaceSide BasicTrajectoryState::surfaceSide ( ) const
inline

Position relative to material, defined relative to momentum vector.

Definition at line 294 of file BasicTrajectoryState.h.

294  {
295  return theSurfaceSide;
296  }
double BasicTrajectoryState::transverseCurvature ( ) const
inline

Definition at line 224 of file BasicTrajectoryState.h.

224  {
226  }
FreeTrajectoryState theFreeState
double transverseCurvature() const
void BasicTrajectoryState::update ( const LocalTrajectoryParameters p,
const SurfaceType aSurface,
const MagneticField field,
const SurfaceSide  side 
)
virtual

Reimplemented in BasicMultiTrajectoryState.

Definition at line 198 of file BasicTrajectoryState.cc.

References AlCaHLTBitMon_ParallelJobs::p, theFreeState, theLocalError, theLocalParameters, theLocalParametersValid, theSurfaceP, theSurfaceSide, theValid, and theWeight.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), BasicMultiTrajectoryState::combine(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

202 {
204  if (&aSurface != &*theSurfaceP) theSurfaceP.reset(&aSurface);
205  theSurfaceSide = side;
206  theWeight = 1.0;
208  theFreeState=makeFTS(p,aSurface,field);
209 
210  theValid = true;
212 }
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
void BasicTrajectoryState::update ( const LocalTrajectoryParameters p,
const SurfaceSide  side 
)
finalvirtual

Definition at line 185 of file BasicTrajectoryState.cc.

References magneticField(), GlobalTrajectoryParameters::magneticFieldInTesla(), AlCaHLTBitMon_ParallelJobs::p, FreeTrajectoryState::parameters(), surface(), theFreeState, theLocalError, theLocalParameters, theLocalParametersValid, theSurfaceSide, and theValid.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

185  {
187  theSurfaceSide = side;
190 
191  theValid = true;
193 
194 }
const MagneticField * magneticField() const
const GlobalTrajectoryParameters & parameters() const
GlobalVector magneticFieldInTesla() const
const SurfaceType & surface() const
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
void BasicTrajectoryState::update ( double  weight,
const LocalTrajectoryParameters p,
const LocalTrajectoryError err,
const SurfaceType aSurface,
const MagneticField field,
const SurfaceSide  side 
)
virtual

Reimplemented in BasicMultiTrajectoryState.

Definition at line 215 of file BasicTrajectoryState.cc.

References AlCaHLTBitMon_ParallelJobs::p, theFreeState, theLocalError, theLocalParameters, theLocalParametersValid, theSurfaceP, theSurfaceSide, theValid, theWeight, and weight().

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

221 {
223  theLocalError = err;
224  if (&aSurface != &*theSurfaceP) theSurfaceP.reset(&aSurface);
225  theSurfaceSide = side;
226  theWeight = weight;
227  theFreeState=makeFTS(p,aSurface,field);
228 
229  theValid = true;
231 }
ConstReferenceCountingPointer< SurfaceType > theSurfaceP
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
void BasicTrajectoryState::update ( const LocalTrajectoryParameters p,
const LocalTrajectoryError err,
const SurfaceSide  side 
)
finalvirtual

Definition at line 235 of file BasicTrajectoryState.cc.

References magneticField(), GlobalTrajectoryParameters::magneticFieldInTesla(), AlCaHLTBitMon_ParallelJobs::p, FreeTrajectoryState::parameters(), surface(), theFreeState, theLocalError, theLocalParameters, theLocalParametersValid, theSurfaceSide, and theValid.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

238 {
240  theLocalError = err;
241  theSurfaceSide = side;
243 
244  theValid = true;
246 }
const MagneticField * magneticField() const
const GlobalTrajectoryParameters & parameters() const
GlobalVector magneticFieldInTesla() const
const SurfaceType & surface() const
FreeTrajectoryState theFreeState
LocalTrajectoryParameters theLocalParameters
LocalTrajectoryError theLocalError
double BasicTrajectoryState::weight ( ) const
inline

Member Data Documentation

FreeTrajectoryState BasicTrajectoryState::theFreeState
mutableprivate
LocalTrajectoryError BasicTrajectoryState::theLocalError
mutableprivate
LocalTrajectoryParameters BasicTrajectoryState::theLocalParameters
mutableprivate

Definition at line 357 of file BasicTrajectoryState.h.

Referenced by createLocalParameters(), and update().

bool BasicTrajectoryState::theLocalParametersValid
mutableprivate

Definition at line 359 of file BasicTrajectoryState.h.

Referenced by checkCurvilinError(), createLocalParameters(), and update().

ConstReferenceCountingPointer<SurfaceType> BasicTrajectoryState::theSurfaceP
private

Definition at line 364 of file BasicTrajectoryState.h.

Referenced by update().

SurfaceSide BasicTrajectoryState::theSurfaceSide
private

Definition at line 363 of file BasicTrajectoryState.h.

Referenced by update().

bool BasicTrajectoryState::theValid
mutableprivate

Definition at line 360 of file BasicTrajectoryState.h.

Referenced by update().

double BasicTrajectoryState::theWeight =0.
private

Definition at line 366 of file BasicTrajectoryState.h.

Referenced by update().