CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
GsfPropagatorAdapter Class Reference

#include <GsfPropagatorAdapter.h>

Inheritance diagram for GsfPropagatorAdapter:
Propagator

Public Member Functions

virtual GsfPropagatorAdapterclone () const
 
 GsfPropagatorAdapter (const Propagator &Propagator)
 Constructor with explicit propagator. More...
 
virtual const MagneticFieldmagneticField () const
 
virtual TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &tsos, const Surface &surface) const
 
virtual TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &tsos, const Plane &plane) const
 
virtual TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
 
virtual TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Surface &surface) const
 
virtual TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Plane &plane) const
 
virtual TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Cylinder &cylinder) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &surface) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &, const Plane &) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &, const Cylinder &) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &fts, const Surface &surface) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &, const Plane &) const
 
virtual std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const
 
const Propagatorpropagator () const
 access to single state propagator More...
 
virtual bool setMaxDirectionChange (float phiMax)
 
virtual void setPropagationDirection (PropagationDirection dir) const
 
 ~GsfPropagatorAdapter ()
 
- Public Member Functions inherited from Propagator
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &, const reco::BeamSpot &) const
 
virtual std::pair
< FreeTrajectoryState, double > 
propagateWithPath (const FreeTrajectoryState &, const GlobalPoint &, const GlobalPoint &) const
 
virtual PropagationDirection propagationDirection () const GCC11_FINAL
 
 Propagator (PropagationDirection dir=alongMomentum)
 
virtual ~Propagator ()
 

Private Attributes

DeepCopyPointerByClone
< Propagator
thePropagator
 

Detailed Description

Propagation of multiple trajectory state by propagation of components, using an specified single-state propagator.

Definition at line 14 of file GsfPropagatorAdapter.h.

Constructor & Destructor Documentation

GsfPropagatorAdapter::GsfPropagatorAdapter ( const Propagator Propagator)

Constructor with explicit propagator.

Definition at line 8 of file GsfPropagatorAdapter.cc.

Referenced by clone().

8  :
9  Propagator(aPropagator.propagationDirection()),
10  thePropagator(aPropagator.clone()) {}
Propagator(PropagationDirection dir=alongMomentum)
Definition: Propagator.h:43
DeepCopyPointerByClone< Propagator > thePropagator
GsfPropagatorAdapter::~GsfPropagatorAdapter ( )
inline

Definition at line 20 of file GsfPropagatorAdapter.h.

20 {}

Member Function Documentation

virtual GsfPropagatorAdapter* GsfPropagatorAdapter::clone ( void  ) const
inlinevirtual

Implements Propagator.

Definition at line 125 of file GsfPropagatorAdapter.h.

References GsfPropagatorAdapter(), and thePropagator.

126  {
127  return new GsfPropagatorAdapter(*thePropagator);
128  }
GsfPropagatorAdapter(const Propagator &Propagator)
Constructor with explicit propagator.
DeepCopyPointerByClone< Propagator > thePropagator
virtual const MagneticField* GsfPropagatorAdapter::magneticField ( ) const
inlinevirtual

Implements Propagator.

Definition at line 130 of file GsfPropagatorAdapter.h.

References Propagator::magneticField(), and thePropagator.

Referenced by GsfPropagatorWithMaterial::magneticField().

130  {
131  return thePropagator->magneticField();
132  }
DeepCopyPointerByClone< Propagator > thePropagator
virtual const MagneticField * magneticField() const =0
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate ( const TrajectoryStateOnSurface tsos,
const Surface surface 
) const
inlinevirtual

Propagation to generic surface: specialisation done in base class.

Reimplemented from Propagator.

Definition at line 24 of file GsfPropagatorAdapter.h.

References Propagator::propagate().

26  {
27  return Propagator::propagate(tsos,surface);
28  }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate ( const TrajectoryStateOnSurface tsos,
const Plane plane 
) const
inlinevirtual

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().

34  {
35  return propagateWithPath(tsos,plane).first;
36  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate ( const TrajectoryStateOnSurface tsos,
const Cylinder cylinder 
) const
inlinevirtual

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().

42  {
43  return propagateWithPath(tsos,cylinder).first;
44  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate ( const FreeTrajectoryState fts,
const Surface surface 
) const
inlinevirtual

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().

71  {
72  return Propagator::propagate(fts,surface);
73  }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate ( const FreeTrajectoryState fts,
const Plane plane 
) const
inlinevirtual

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().

80  {
81  return propagateWithPath(fts,plane).first;
82  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
virtual TrajectoryStateOnSurface GsfPropagatorAdapter::propagate ( const FreeTrajectoryState fts,
const Cylinder cylinder 
) const
inlinevirtual

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().

89  {
90  return propagateWithPath(fts,cylinder).first;
91  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
virtual std::pair<TrajectoryStateOnSurface,double> GsfPropagatorAdapter::propagateWithPath ( const TrajectoryStateOnSurface tsos,
const Surface surface 
) const
inlinevirtual

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(), and GsfPropagatorWithMaterial::propagateWithPath().

52  {
53  return Propagator::propagateWithPath(tsos,surface);
54  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:77
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 13 of file GsfPropagatorAdapter.cc.

References MultiStatePropagation< T >::propagateWithPath(), and thePropagator.

14  {
16  return multiPropagator.propagateWithPath(tsos,plane);
17 }
DeepCopyPointerByClone< Propagator > thePropagator
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 20 of file GsfPropagatorAdapter.cc.

References MultiStatePropagation< T >::propagateWithPath(), and thePropagator.

21  {
23  return multiPropagator.propagateWithPath(tsos,cylinder);
24 }
DeepCopyPointerByClone< Propagator > thePropagator
virtual std::pair<TrajectoryStateOnSurface,double> GsfPropagatorAdapter::propagateWithPath ( const FreeTrajectoryState fts,
const Surface surface 
) const
inlinevirtual

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().

99  {
100  return Propagator::propagateWithPath(fts,surface);
101  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:77
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 27 of file GsfPropagatorAdapter.cc.

References Propagator::propagateWithPath(), and thePropagator.

28  {
30  static std::atomic<int> nWarn{0};
31  if ( nWarn++<5 )
32  edm::LogInfo("GsfPropagatorAdapter") << "GsfPropagator used from FTS = single state mode!";
33  return thePropagator->propagateWithPath(fts,plane);
34 }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:77
DeepCopyPointerByClone< Propagator > thePropagator
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 37 of file GsfPropagatorAdapter.cc.

References Propagator::propagateWithPath(), and thePropagator.

38  {
40  static std::atomic<int> nWarn{0};
41  if ( nWarn++<5 )
42  edm::LogInfo("GsfPropagatorAdapter") << "GsfPropagator used from FTS = single state mode!";
43  return thePropagator->propagateWithPath(fts,cylinder);
44 }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:77
DeepCopyPointerByClone< Propagator > thePropagator
const Propagator& GsfPropagatorAdapter::propagator ( void  ) const
inline

access to single state propagator

Definition at line 120 of file GsfPropagatorAdapter.h.

References thePropagator.

121  {
122  return *thePropagator;
123  }
DeepCopyPointerByClone< Propagator > thePropagator
virtual bool GsfPropagatorAdapter::setMaxDirectionChange ( float  phiMax)
inlinevirtual

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 Propagator::setMaxDirectionChange(), and thePropagator.

Referenced by GsfPropagatorWithMaterial::setMaxDirectionChange().

113  {
115  }
virtual bool setMaxDirectionChange(float phiMax)
Definition: Propagator.h:159
DeepCopyPointerByClone< Propagator > thePropagator
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 46 of file GsfPropagatorAdapter.cc.

References Propagator::setPropagationDirection(), and thePropagator.

Referenced by GsfPropagatorWithMaterial::setPropagationDirection().

46  {
49 }
DeepCopyPointerByClone< Propagator > thePropagator
virtual void setPropagationDirection(PropagationDirection dir) const
Definition: Propagator.h:134
dbl *** dir
Definition: mlp_gen.cc:35

Member Data Documentation

DeepCopyPointerByClone<Propagator> GsfPropagatorAdapter::thePropagator
private