13 return multiState(extra->outerStateLocalParameters(),
14 extra->outerStateCovariances(),
15 extra->outerStateWeights());
22 return multiState(extra->innerStateLocalParameters(),
23 extra->innerStateCovariances(),
24 extra->innerStateWeights());
32 throw cms::Exception(
"LogicError") <<
"MultiGaussianStateTransform: index out of range";
36 extra->outerStateCovariances(),
37 extra->outerStateWeights(),
46 throw cms::Exception(
"LogicError") <<
"MultiGaussianStateTransform: index out of range";
50 extra->innerStateCovariances(),
51 extra->innerStateWeights(),
58 const std::vector<double>&
weights)
62 components.reserve(nc);
63 for (
unsigned int i=0;
i<nc; ++
i ) {
66 components.push_back(sgs);
78 components.reserve(nc);
79 for (
unsigned int i=0;
i<nc; ++
i ) {
81 covariances[
i](index,index),
91 auto const & tsosComponents = comps();
93 components.reserve(tsosComponents.size());
94 for (
auto i=tsosComponents.begin();
95 i!=tsosComponents.end(); ++
i ) {
98 i->localError().matrix(),
100 components.push_back(sgs);
110 throw cms::Exception(
"LogicError") <<
"MultiGaussianStateTransform: index out of range";
112 auto const & tsosComponents = comps();
114 components.reserve(tsosComponents.size());
115 for (
auto i=tsosComponents.begin();
116 i!=tsosComponents.end(); ++
i ) {
129 double pzSign = refPars.
pzSign();
130 bool charged = refPars.charge()!=0;
const LocalTrajectoryParameters & localParameters() const
const Vector & mean() const
parameter vector
std::vector< SingleGaussianState1D > SingleState1dContainer
const MagneticField * magneticField() const
Mixture of multi-variate gaussian states.
std::vector< SingleStatePtr > SingleStateContainer
const Matrix & covariance() const
covariance matrix
const SurfaceType & surface() const
std::shared_ptr< SingleState > SingleStatePtr
const GsfTrackExtraRef & gsfExtra() const
reference to "extra" object
SingleGaussianState< N >::Vector Vector
SingleGaussianState< N >::Matrix Matrix
float pzSign() const
Sign of the z-component of the momentum in the local frame.