5 #include "boost/shared_ptr.hpp"
7 using namespace SurfaceSideDefinition;
9 namespace GaussianStateConversions {
15 typedef boost::shared_ptr< SingleGaussianState<5> > SingleStatePtr;
18 singleStates.reserve(components.size());
19 for ( std::vector<TrajectoryStateOnSurface>::const_iterator ic=components.begin();
20 ic!=components.end(); ic ++ ) {
21 if ( ic->isValid() ) {
23 ic->localError().matrix(),
25 singleStates.push_back(sgs);
40 bool charged = refTsos1.
charge()!=0;
44 std::vector<TrajectoryStateOnSurface>
components;
45 components.reserve(singleStates.size());
47 ic!=singleStates.end(); ic++ ) {
51 surface,field,side,(**ic).weight()));
double pzSign() const
Sign of the z-component of the momentum in the local frame.
TrackCharge charge() const
const LocalTrajectoryParameters & localParameters() const
const SingleStateContainer & components() const
access to components (single Gaussian states)
const MagneticField * magneticField() const
Mixture of multi-variate gaussian states.
MultiGaussianState< 5 > multiGaussianStateFromTSOS(const TrajectoryStateOnSurface tsos)
std::vector< SingleStatePtr > SingleStateContainer
const SurfaceType & surface() const
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
std::vector< TrajectoryStateOnSurface > components() const
TrajectoryStateOnSurface tsosFromMultiGaussianState(const MultiGaussianState< 5 > &multiState, const TrajectoryStateOnSurface refTsos)