CMS 3D CMS Logo

List of all members | Public Member Functions
GsfMultiStateUpdator Class Reference

#include <GsfMultiStateUpdator.h>

Inheritance diagram for GsfMultiStateUpdator:
TrajectoryStateUpdator

Public Member Functions

GsfMultiStateUpdatorclone () const override
 
 GsfMultiStateUpdator ()
 
TrajectoryStateOnSurface update (const TrajectoryStateOnSurface &, const TrackingRecHit &) const override
 
- Public Member Functions inherited from TrajectoryStateUpdator
 TrajectoryStateUpdator ()
 
virtual ~TrajectoryStateUpdator ()
 

Detailed Description

Class which updates a Gaussian mixture trajectory state with the information from a reconstructed hit according to the Gaussian-sum filter (GSF) strategy. The relevant formulas can be derived from those described in R. Fruhwirth, Computer Physics Communications 100 (1997), 1.

Definition at line 16 of file GsfMultiStateUpdator.h.

Constructor & Destructor Documentation

◆ GsfMultiStateUpdator()

GsfMultiStateUpdator::GsfMultiStateUpdator ( )
inline

Definition at line 18 of file GsfMultiStateUpdator.h.

18 {}

Referenced by clone().

Member Function Documentation

◆ clone()

GsfMultiStateUpdator* GsfMultiStateUpdator::clone ( void  ) const
inlineoverridevirtual

Implements TrajectoryStateUpdator.

Definition at line 22 of file GsfMultiStateUpdator.h.

22 { return new GsfMultiStateUpdator(*this); }

References GsfMultiStateUpdator().

◆ update()

TrajectoryStateOnSurface GsfMultiStateUpdator::update ( const TrajectoryStateOnSurface tsos,
const TrackingRecHit aRecHit 
) const
overridevirtual

Implements TrajectoryStateUpdator.

Definition at line 13 of file GsfMultiStateUpdator.cc.

14  {
15  GetComponents comps(tsos);
16  auto const& predictedComponents = comps();
17  if (predictedComponents.empty()) {
18  edm::LogError("GsfMultiStateUpdator") << "Trying to update trajectory state with zero components! ";
19  return TrajectoryStateOnSurface();
20  }
21 
22  auto&& weights = PosteriorWeightsCalculator(predictedComponents).weights(aRecHit);
23  if (weights.empty()) {
24  edm::LogError("GsfMultiStateUpdator") << " no weights could be retreived. invalid updated state !.";
25  return TrajectoryStateOnSurface();
26  }
27 
29 
30  int i = 0;
31  for (auto const& tsosI : predictedComponents) {
32  TrajectoryStateOnSurface updatedTSOS = KFUpdator().update(tsosI, aRecHit);
33  if (updatedTSOS.isValid()) {
35  updatedTSOS.localParameters(),
36  updatedTSOS.localError(),
37  updatedTSOS.surface(),
38  &(tsos.globalParameters().magneticField()),
39  tsosI.surfaceSide()));
40  } else {
41  edm::LogError("GsfMultiStateUpdator") << "KF updated state " << i << " is invalid. skipping.";
42  }
43  ++i;
44  }
45 
46  return result.combinedState();
47 }

References TrajectoryStateOnSurface::globalParameters(), mps_fire::i, TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), GlobalTrajectoryParameters::magneticField(), mps_fire::result, TrajectoryStateOnSurface::surface(), KFUpdator::update(), PosteriorWeightsCalculator::weights(), and HLT_2018_cff::weights.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), GsfConstraintAtVertex::constrainAtPoint(), progressbar.ProgressBar::finish(), and MatrixUtil.Steps::overwrite().

KFUpdator::update
TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const override
Definition: KFUpdator.cc:177
HLT_2018_cff.weights
weights
Definition: HLT_2018_cff.py:87167
mps_fire.i
i
Definition: mps_fire.py:355
MultiTrajectoryStateAssembler
Definition: MultiTrajectoryStateAssembler.h:13
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
GetComponents
Definition: GetComponents.h:4
PosteriorWeightsCalculator
Definition: PosteriorWeightsCalculator.h:13
GsfMultiStateUpdator::GsfMultiStateUpdator
GsfMultiStateUpdator()
Definition: GsfMultiStateUpdator.h:18
PosteriorWeightsCalculator::weights
std::vector< double > weights(const TrackingRecHit &tsos) const
Create random state.
Definition: PosteriorWeightsCalculator.cc:11
TrajectoryStateOnSurface::localParameters
const LocalTrajectoryParameters & localParameters() const
Definition: TrajectoryStateOnSurface.h:73
edm::LogError
Definition: MessageLogger.h:183
GlobalTrajectoryParameters::magneticField
const MagneticField & magneticField() const
Definition: GlobalTrajectoryParameters.h:106
TrajectoryStateOnSurface::surface
const SurfaceType & surface() const
Definition: TrajectoryStateOnSurface.h:78
mps_fire.result
result
Definition: mps_fire.py:303
TrajectoryStateOnSurface::globalParameters
const GlobalTrajectoryParameters & globalParameters() const
Definition: TrajectoryStateOnSurface.h:64
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
KFUpdator
Definition: KFUpdator.h:32
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54