#include <TrackingTools/GsfTools/interface/GsfPropagatorAdapter.h>
Public Member Functions | |
virtual GsfPropagatorAdapter * | clone () const |
GsfPropagatorAdapter (const Propagator &Propagator) | |
Constructor with explicit propagator. | |
virtual const MagneticField * | magneticField () const |
virtual TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &fts, const Cylinder &cylinder) const |
Propagation to cylinder: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). | |
virtual TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &fts, const Plane &plane) const |
Propagation to plane: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). | |
virtual TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &fts, const Surface &surface) const |
Propagation to generic surface: specialisation done in base class. | |
virtual TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const |
Propagation to cylinder: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). | |
virtual TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &tsos, const Plane &plane) const |
Propagation to plane: use propagationWithPath (adequate for use with AnalyticalPropagator, should be implemented to be more general). | |
virtual TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &tsos, const Surface &surface) const |
Propagation to generic surface: specialisation done in base class. | |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const |
Propagation to cylinder with path length calculation. | |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const |
Propagation to plane with path length calculation. | |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Surface &surface) const |
Propagation to generic surface with path length calculation: specialisation done in base class. | |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Cylinder &) const |
Propagation to cylinder with path length calculation. | |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &, const Plane &) const |
Propagation to plane with path length calculation. | |
virtual std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &surface) const |
Propagation to generic surface with path length calculation: specialisation done in base class. | |
const Propagator & | propagator () const |
access to single state propagator | |
virtual bool | setMaxDirectionChange (float phiMax) |
Set the maximal change of direction (integrated along the path) for any single propagation. | |
virtual void | setPropagationDirection (PropagationDirection dir) |
The propagation direction can now be set for every propagator. | |
~GsfPropagatorAdapter () | |
Private Attributes | |
DeepCopyPointerByClone < Propagator > | thePropagator |
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().
00006 : 00007 Propagator(aPropagator.propagationDirection()), 00008 thePropagator(aPropagator.clone()) {}
GsfPropagatorAdapter::~GsfPropagatorAdapter | ( | ) | [inline] |
virtual GsfPropagatorAdapter* GsfPropagatorAdapter::clone | ( | void | ) | const [inline, virtual] |
Implements Propagator.
Definition at line 124 of file GsfPropagatorAdapter.h.
References GsfPropagatorAdapter(), and thePropagator.
00125 { 00126 return new GsfPropagatorAdapter(*thePropagator); 00127 }
virtual const MagneticField* GsfPropagatorAdapter::magneticField | ( | ) | const [inline, virtual] |
Implements Propagator.
Definition at line 129 of file GsfPropagatorAdapter.h.
References thePropagator.
00129 { 00130 return thePropagator->magneticField(); 00131 }
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().
00089 { 00090 return propagateWithPath(fts,cylinder).first; 00091 }
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().
00080 { 00081 return propagateWithPath(fts,plane).first; 00082 }
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 Propagator::propagate().
00071 { 00072 return Propagator::propagate(fts,surface); 00073 }
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().
00042 { 00043 return propagateWithPath(tsos,cylinder).first; 00044 }
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().
00034 { 00035 return propagateWithPath(tsos,plane).first; 00036 }
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.
References Propagator::propagate().
00026 { 00027 return Propagator::propagate(tsos,surface); 00028 }
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.
00036 { 00038 static int nWarn(0); 00039 if ( nWarn++<5 ) 00040 edm::LogInfo("GsfPropagatorAdapter") << "GsfPropagator used from FTS = single state mode!"; 00041 return thePropagator->propagateWithPath(fts,cylinder); 00042 }
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.
00026 { 00028 static int nWarn(0); 00029 if ( nWarn++<5 ) 00030 edm::LogInfo("GsfPropagatorAdapter") << "GsfPropagator used from FTS = single state mode!"; 00031 return thePropagator->propagateWithPath(fts,plane); 00032 }
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 Propagator::propagateWithPath().
00099 { 00100 return Propagator::propagateWithPath(fts,surface); 00101 }
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.
00019 { 00020 MultiStatePropagation<Cylinder> multiPropagator(*thePropagator); 00021 return multiPropagator.propagateWithPath(tsos,cylinder); 00022 }
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.
00012 { 00013 MultiStatePropagation<Plane> multiPropagator(*thePropagator); 00014 return multiPropagator.propagateWithPath(tsos,plane); 00015 }
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.
References Propagator::propagateWithPath().
Referenced by propagate().
00052 { 00053 return Propagator::propagateWithPath(tsos,surface); 00054 }
const Propagator& GsfPropagatorAdapter::propagator | ( | void | ) | const [inline] |
access to single state propagator
Definition at line 119 of file GsfPropagatorAdapter.h.
References thePropagator.
00120 { 00121 return *thePropagator; 00122 }
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.
00113 { 00114 return thePropagator->setMaxDirectionChange(phiMax); 00115 }
void GsfPropagatorAdapter::setPropagationDirection | ( | PropagationDirection | dir | ) | [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 Propagator::setPropagationDirection(), and thePropagator.
00044 { 00045 thePropagator->setPropagationDirection(dir); 00046 Propagator::setPropagationDirection(dir); 00047 }
Definition at line 135 of file GsfPropagatorAdapter.h.
Referenced by clone(), magneticField(), propagateWithPath(), propagator(), setMaxDirectionChange(), and setPropagationDirection().