12 using namespace SurfaceSideDefinition;
25 throw cms::Exception(
"LogicError") <<
"GsfMaterialEffectsUpdator::updateState used with MultiTSOS";
30 std::vector<double> Ws =
weights(TSoS,propDir);
32 std::vector<double> dPs = deltaPs(TSoS,propDir);
33 if ( dPs.size()!=Ws.size() )
35 <<
"GsfMaterialEffectsUpdator: inconsistency in number of components";
36 std::vector<AlgebraicSymMatrix55> deltaErrors;
38 deltaErrors = deltaLocalErrors(TSoS,propDir);
48 for (
unsigned int ic=0; ic<Ws.size(); ic++ ) {
65 eloc += deltaErrors[ic];
const LocalTrajectoryParameters & localParameters() const
void addState(const TrajectoryStateOnSurface)
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
bool updateP(double dP)
Update of momentum by a scalar dP.
const MediumProperties * mediumProperties() const
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
virtual TrajectoryStateOnSurface updateState(const TrajectoryStateOnSurface &TSoS, const PropagationDirection propDir) const
const GlobalTrajectoryParameters & globalParameters() const
const Surface & surface() const
const MagneticField & magneticField() const
std::vector< TrajectoryStateOnSurface > components() const
TrajectoryStateOnSurface combinedState()