#include <GsfPropagatorAdapter.h>
Propagation of multiple trajectory state by propagation of components, using an specified single-state propagator.
Definition at line 14 of file GsfPropagatorAdapter.h.
GsfPropagatorAdapter::GsfPropagatorAdapter | ( | const Propagator & | Propagator | ) |
Constructor with explicit propagator.
Definition at line 6 of file GsfPropagatorAdapter.cc.
Referenced by clone().
: Propagator(aPropagator.propagationDirection()), thePropagator(aPropagator.clone()) {}
GsfPropagatorAdapter::~GsfPropagatorAdapter | ( | ) | [inline] |
Definition at line 20 of file GsfPropagatorAdapter.h.
{}
virtual GsfPropagatorAdapter* GsfPropagatorAdapter::clone | ( | void | ) | const [inline, virtual] |
Implements Propagator.
Definition at line 125 of file GsfPropagatorAdapter.h.
References GsfPropagatorAdapter(), and thePropagator.
{ return new GsfPropagatorAdapter(*thePropagator); }
virtual const MagneticField* GsfPropagatorAdapter::magneticField | ( | ) | const [inline, virtual] |
Implements Propagator.
Definition at line 130 of file GsfPropagatorAdapter.h.
References thePropagator.
{ return thePropagator->magneticField(); }
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate | ( | const FreeTrajectoryState & | fts, |
const Plane & | plane | ||
) | const [inline, virtual] |
Propagation to plane: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 78 of file GsfPropagatorAdapter.h.
References propagateWithPath().
{ return propagateWithPath(fts,plane).first; }
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate | ( | const TrajectoryStateOnSurface & | tsos, |
const Surface & | surface | ||
) | const [inline, virtual] |
Propagation to generic surface: specialisation done in base class.
Reimplemented from Propagator.
Definition at line 24 of file GsfPropagatorAdapter.h.
Referenced by propagate().
{ return Propagator::propagate(tsos,surface); }
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate | ( | const TrajectoryStateOnSurface & | tsos, |
const Plane & | plane | ||
) | const [inline, virtual] |
Propagation to plane: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general).
Reimplemented from Propagator.
Definition at line 32 of file GsfPropagatorAdapter.h.
References propagateWithPath().
{ return propagateWithPath(tsos,plane).first; }
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate | ( | const FreeTrajectoryState & | fts, |
const Cylinder & | cylinder | ||
) | const [inline, virtual] |
Propagation to cylinder: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). Use from FTS implies single state (better use PropagatorWithMaterial)!
Implements Propagator.
Definition at line 87 of file GsfPropagatorAdapter.h.
References propagateWithPath().
{ return propagateWithPath(fts,cylinder).first; }
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate | ( | const TrajectoryStateOnSurface & | tsos, |
const Cylinder & | cylinder | ||
) | const [inline, virtual] |
Propagation to cylinder: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general).
Reimplemented from Propagator.
Definition at line 40 of file GsfPropagatorAdapter.h.
References propagateWithPath().
{ return propagateWithPath(tsos,cylinder).first; }
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate | ( | const FreeTrajectoryState & | fts, |
const Surface & | surface | ||
) | const [inline, virtual] |
Propagation to generic surface: specialisation done in base class. Use from FTS implies single state (better use PropagatorWithMaterial)!
Reimplemented from Propagator.
Definition at line 69 of file GsfPropagatorAdapter.h.
References propagate().
{ return Propagator::propagate(fts,surface); }
virtual std::pair<TrajectoryStateOnSurface,double> GsfPropagatorAdapter::propagateWithPath | ( | const FreeTrajectoryState & | fts, |
const Surface & | surface | ||
) | const [inline, virtual] |
Propagation to generic surface with path length calculation: specialisation done in base class. Use from FTS implies single state (better use PropagatorWithMaterial)!
Reimplemented from Propagator.
Definition at line 97 of file GsfPropagatorAdapter.h.
References propagateWithPath().
{ return Propagator::propagateWithPath(fts,surface); }
virtual std::pair<TrajectoryStateOnSurface,double> GsfPropagatorAdapter::propagateWithPath | ( | const TrajectoryStateOnSurface & | tsos, |
const Surface & | surface | ||
) | const [inline, virtual] |
Propagation to generic surface with path length calculation: specialisation done in base class.
Reimplemented from Propagator.
Definition at line 50 of file GsfPropagatorAdapter.h.
Referenced by propagate(), and propagateWithPath().
{ return Propagator::propagateWithPath(tsos,surface); }
std::pair< TrajectoryStateOnSurface, double > GsfPropagatorAdapter::propagateWithPath | ( | const TrajectoryStateOnSurface & | tsos, |
const Plane & | plane | ||
) | const [virtual] |
Propagation to plane with path length calculation.
Reimplemented from Propagator.
Definition at line 11 of file GsfPropagatorAdapter.cc.
References MultiStatePropagation< T >::propagateWithPath(), and thePropagator.
{ MultiStatePropagation<Plane> multiPropagator(*thePropagator); return multiPropagator.propagateWithPath(tsos,plane); }
std::pair< TrajectoryStateOnSurface, double > GsfPropagatorAdapter::propagateWithPath | ( | const FreeTrajectoryState & | fts, |
const Cylinder & | cylinder | ||
) | const [virtual] |
Propagation to cylinder with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!
use counter in MessageLogger?
Implements Propagator.
Definition at line 35 of file GsfPropagatorAdapter.cc.
References thePropagator.
{ static int nWarn(0); if ( nWarn++<5 ) edm::LogInfo("GsfPropagatorAdapter") << "GsfPropagator used from FTS = single state mode!"; return thePropagator->propagateWithPath(fts,cylinder); }
std::pair< TrajectoryStateOnSurface, double > GsfPropagatorAdapter::propagateWithPath | ( | const TrajectoryStateOnSurface & | tsos, |
const Cylinder & | cylinder | ||
) | const [virtual] |
Propagation to cylinder with path length calculation.
Reimplemented from Propagator.
Definition at line 18 of file GsfPropagatorAdapter.cc.
References MultiStatePropagation< T >::propagateWithPath(), and thePropagator.
{ MultiStatePropagation<Cylinder> multiPropagator(*thePropagator); return multiPropagator.propagateWithPath(tsos,cylinder); }
std::pair< TrajectoryStateOnSurface, double > GsfPropagatorAdapter::propagateWithPath | ( | const FreeTrajectoryState & | fts, |
const Plane & | plane | ||
) | const [virtual] |
Propagation to plane with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!
use counter in MessageLogger?
Implements Propagator.
Definition at line 25 of file GsfPropagatorAdapter.cc.
References thePropagator.
{ static int nWarn(0); if ( nWarn++<5 ) edm::LogInfo("GsfPropagatorAdapter") << "GsfPropagator used from FTS = single state mode!"; return thePropagator->propagateWithPath(fts,plane); }
const Propagator& GsfPropagatorAdapter::propagator | ( | void | ) | const [inline] |
access to single state propagator
Definition at line 120 of file GsfPropagatorAdapter.h.
References thePropagator.
{ return *thePropagator; }
virtual bool GsfPropagatorAdapter::setMaxDirectionChange | ( | float | phiMax | ) | [inline, virtual] |
Set the maximal change of direction (integrated along the path) for any single propagation. If reaching of the destination surface requires change of direction that exceeds this value the Propagator returns an invalid state. For example, a track may reach a forward plane after many spirals, which may be undesirable for a track reconstructor. Setting this value to pi will force the propagation to fail. The default value is "no limit". The method returnd true if the concrete propagator respects the limit, false otherwise.
Reimplemented from Propagator.
Definition at line 113 of file GsfPropagatorAdapter.h.
References thePropagator.
{ return thePropagator->setMaxDirectionChange(phiMax); }
void GsfPropagatorAdapter::setPropagationDirection | ( | PropagationDirection | dir | ) | const [virtual] |
The propagation direction can now be set for every propagator. There is no more distinction between unidirectional and bidirectional at class level. The value "anyDiriction" for PropagationDirection provides the functionality of the ex-BidirectionalPropagator. The values "alongMomentum" and "oppositeToMomentum" provide the functionality of the ex-UnidirectionalPropagator.
Reimplemented from Propagator.
Definition at line 44 of file GsfPropagatorAdapter.cc.
References thePropagator.
{ thePropagator->setPropagationDirection(dir); Propagator::setPropagationDirection(dir); }
Definition at line 136 of file GsfPropagatorAdapter.h.
Referenced by clone(), magneticField(), propagateWithPath(), propagator(), setMaxDirectionChange(), and setPropagationDirection().