CMS 3D CMS Logo

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

#include <SmartPropagator.h>

Inheritance diagram for SmartPropagator:
Propagator

Public Member Functions

virtual SmartPropagatorclone () const
 Virtual constructor (using copy c'tor) More...
 
PropagatorgetGenPropagator () const
 return the propagator used outside tracker More...
 
PropagatorgetTkPropagator () const
 return the propagator used inside tracker More...
 
bool insideTkVol (const FreeTrajectoryState &fts) const
 true if a fts is inside tracker volume More...
 
bool insideTkVol (const Surface &surface) const
 true if a surface is inside tracker volume More...
 
bool insideTkVol (const BoundCylinder &cylin) const
 true if a cylinder is inside tracker volume More...
 
bool insideTkVol (const Plane &plane) const
 true if a plane is inside tracker volume More...
 
virtual const MagneticFieldmagneticField () const
 return the magneticField More...
 
TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Surface &surface) const
 
TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &tsos, const Surface &surface) const
 
TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Plane &plane) const
 
TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &tsos, const Plane &plane) const
 
TrajectoryStateOnSurface propagate (const FreeTrajectoryState &fts, const Cylinder &cylinder) const
 
TrajectoryStateOnSurface propagate (const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
 
std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &fts, const Surface &surface) const
 
std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &surface) const
 
std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &fts, const Plane &plane) const
 
std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &plane) const
 
std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const FreeTrajectoryState &fts, const Cylinder &cylinder) const
 
std::pair
< TrajectoryStateOnSurface,
double > 
propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
 
void setPropagationDirection (PropagationDirection dir) const
 setting the direction fo both components More...
 
 SmartPropagator (Propagator *aTkProp, Propagator *aGenProp, const MagneticField *field, PropagationDirection dir=alongMomentum, float epsilon=5)
 Defines which propagator is used inside Tk and which outside. More...
 
 SmartPropagator (const Propagator &aTkProp, const Propagator &aGenProp, const MagneticField *field, PropagationDirection dir=alongMomentum, float epsilon=5)
 Defines which propagator is used inside Tk and which outside. More...
 
 SmartPropagator (const SmartPropagator &)
 Copy constructor. More...
 
virtual ~SmartPropagator ()
 
- 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
 
 Propagator (PropagationDirection dir=alongMomentum)
 
virtual bool setMaxDirectionChange (float phiMax)
 
virtual ~Propagator ()
 

Static Private Member Functions

static void initTkVolume (float epsilon)
 build the tracker volume More...
 
static
ReferenceCountingPointer
< BoundCylinder > & 
theTkVolume ()
 

Private Attributes

const MagneticFieldtheField
 
PropagatortheGenProp
 
PropagatortheTkProp
 

Detailed Description

A propagator which use different algorithm to propagate inside or outside tracker

Author
Stefano Lacaprara - INFN Padova author Chang Liu - Purdue University $Date $ $Revision $

Modification: 26-Jun-2002 SL: theTkVolume is now a static ReferenceCountingPointer<BoundCylinder> 28-Aug-2002 SL: added methods to unhide Propagator methods 29-Oct-2002 SL: fixed clone and copy constructor, and BoundCylinder are build with CylinderBuilder to enforce the referencePointer

Definition at line 37 of file SmartPropagator.h.

Constructor & Destructor Documentation

SmartPropagator::SmartPropagator ( Propagator aTkProp,
Propagator aGenProp,
const MagneticField field,
PropagationDirection  dir = alongMomentum,
float  epsilon = 5 
)

Defines which propagator is used inside Tk and which outside.

Definition at line 44 of file SmartPropagator.cc.

References initTkVolume(), and theTkVolume().

Referenced by clone().

45  :
46  Propagator(dir), theTkProp(aTkProp->clone()), theGenProp(aGenProp->clone()), theField(field) {
47 
48  if (theTkVolume()==0) initTkVolume(epsilon);
49 
50 }
Propagator * theGenProp
static void initTkVolume(float epsilon)
build the tracker volume
Propagator(PropagationDirection dir=alongMomentum)
Definition: Propagator.h:41
virtual Propagator * clone() const =0
static ReferenceCountingPointer< BoundCylinder > & theTkVolume()
Propagator * theTkProp
const MagneticField * theField
dbl *** dir
Definition: mlp_gen.cc:35
const double epsilon
SmartPropagator::SmartPropagator ( const Propagator aTkProp,
const Propagator aGenProp,
const MagneticField field,
PropagationDirection  dir = alongMomentum,
float  epsilon = 5 
)

Defines which propagator is used inside Tk and which outside.

Definition at line 53 of file SmartPropagator.cc.

References initTkVolume(), and theTkVolume().

54  :
55  Propagator(dir), theTkProp(aTkProp.clone()), theGenProp(aGenProp.clone()), theField(field) {
56 
57  if (theTkVolume()==0) initTkVolume(epsilon);
58 
59 }
Propagator * theGenProp
static void initTkVolume(float epsilon)
build the tracker volume
Propagator(PropagationDirection dir=alongMomentum)
Definition: Propagator.h:41
virtual Propagator * clone() const =0
static ReferenceCountingPointer< BoundCylinder > & theTkVolume()
Propagator * theTkProp
const MagneticField * theField
dbl *** dir
Definition: mlp_gen.cc:35
const double epsilon
SmartPropagator::SmartPropagator ( const SmartPropagator aProp)

Copy constructor.

Definition at line 62 of file SmartPropagator.cc.

References Propagator::clone(), getGenPropagator(), getTkPropagator(), theGenProp, and theTkProp.

62  :
64  if (aProp.theTkProp)
65  theTkProp=aProp.getTkPropagator()->clone();
66  if (aProp.theGenProp)
67  theTkProp=aProp.getGenPropagator()->clone();
68 
69  //SL since it's a copy constructor, then the TkVolume has been already
70  //initialized
71  //if (theTkVolume==0) initTkVolume(epsilon);
72 
73  }
Propagator * theGenProp
virtual PropagationDirection propagationDirection() const
Definition: Propagator.h:143
Propagator * getTkPropagator() const
return the propagator used inside tracker
Propagator(PropagationDirection dir=alongMomentum)
Definition: Propagator.h:41
virtual Propagator * clone() const =0
Propagator * theTkProp
Propagator * getGenPropagator() const
return the propagator used outside tracker
SmartPropagator::~SmartPropagator ( )
virtual

virtual destructor

Definition at line 76 of file SmartPropagator.cc.

References theGenProp, and theTkProp.

76  {
77 
78  delete theTkProp;
79  delete theGenProp;
80 
81 }
Propagator * theGenProp
Propagator * theTkProp

Member Function Documentation

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

Virtual constructor (using copy c'tor)

Implements Propagator.

Definition at line 57 of file SmartPropagator.h.

References getGenPropagator(), getTkPropagator(), magneticField(), and SmartPropagator().

57  {
59  }
SmartPropagator(Propagator *aTkProp, Propagator *aGenProp, const MagneticField *field, PropagationDirection dir=alongMomentum, float epsilon=5)
Defines which propagator is used inside Tk and which outside.
Propagator * getTkPropagator() const
return the propagator used inside tracker
Propagator * getGenPropagator() const
return the propagator used outside tracker
virtual const MagneticField * magneticField() const
return the magneticField
Propagator * SmartPropagator::getGenPropagator ( ) const

return the propagator used outside tracker

Definition at line 205 of file SmartPropagator.cc.

References theGenProp.

Referenced by clone(), propagate(), propagateWithPath(), setPropagationDirection(), and SmartPropagator().

205  {
206 
207  return theGenProp;
208 
209 }
Propagator * theGenProp
Propagator * SmartPropagator::getTkPropagator ( ) const

return the propagator used inside tracker

Definition at line 198 of file SmartPropagator.cc.

References theTkProp.

Referenced by clone(), propagate(), propagateWithPath(), setPropagationDirection(), and SmartPropagator().

198  {
199 
200  return theTkProp;
201 
202 }
Propagator * theTkProp
void SmartPropagator::initTkVolume ( float  epsilon)
staticprivate

build the tracker volume

Definition at line 85 of file SmartPropagator.cc.

References BoundCylinder::build(), epsilon, TrackerBounds::halfLength(), pos, TrackerBounds::radius(), CosmicsPD_Skims::radius, and theTkVolume().

Referenced by SmartPropagator().

85  {
86 
87  //
88  // fill tracker dimensions
89  //
90  float radius = TrackerBounds::radius();
91  float r_out = radius + epsilon/2;
92  float r_in = r_out - epsilon;
93  float z_max = TrackerBounds::halfLength();
94  float z_min = - z_max;
95 
96  Surface::PositionType pos(0,0,0); // centered at the global origin
97  Surface::RotationType rot; // unit matrix - barrel cylinder orientation
98 
99  theTkVolume() = BoundCylinder::build(pos, rot, radius, SimpleCylinderBounds(r_in, r_out, z_min, z_max));
100 
101 }
static BoundCylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, const Bounds *bounds, MediumProperties *mp=0)
Definition: BoundCylinder.h:29
static float halfLength()
Definition: TrackerBounds.h:36
static ReferenceCountingPointer< BoundCylinder > & theTkVolume()
static float radius()
Definition: TrackerBounds.h:35
const double epsilon
bool SmartPropagator::insideTkVol ( const FreeTrajectoryState fts) const

true if a fts is inside tracker volume

Definition at line 154 of file SmartPropagator.cc.

References TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), FreeTrajectoryState::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by propagate(), and propagateWithPath().

154  {
155 
156  GlobalPoint gp = fts.position();
157 // LocalPoint lp = theTkVolume()->toLocal(gp);
158 // return theTkVolume()->bounds().inside(lp);
159 
160  return ( (gp.perp()<= TrackerBounds::radius()+10.) && (fabs(gp.z())<= TrackerBounds::halfLength()+10.) );
161 }
T perp() const
Definition: PV3DBase.h:66
static float halfLength()
Definition: TrackerBounds.h:36
T z() const
Definition: PV3DBase.h:58
static float radius()
Definition: TrackerBounds.h:35
GlobalPoint position() const
bool SmartPropagator::insideTkVol ( const Surface surface) const

true if a surface is inside tracker volume

Definition at line 164 of file SmartPropagator.cc.

References TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), GloballyPositioned< T >::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().

164  {
165 
166  GlobalPoint gp = surface.position();
167  // LocalPoint lp = theTkVolume()->toLocal(gp);
168 
169  // return theTkVolume()->bounds().inside(lp);
170  return ( (gp.perp()<= TrackerBounds::radius()+10.) && (fabs(gp.z())<= TrackerBounds::halfLength()+10.) );
171 
172 
173 }
T perp() const
Definition: PV3DBase.h:66
static float halfLength()
Definition: TrackerBounds.h:36
T z() const
Definition: PV3DBase.h:58
static float radius()
Definition: TrackerBounds.h:35
const PositionType & position() const
bool SmartPropagator::insideTkVol ( const BoundCylinder cylin) const

true if a cylinder is inside tracker volume

Definition at line 176 of file SmartPropagator.cc.

References BoundSurface::bounds(), TrackerBounds::halfLength(), Bounds::length(), PV3DBase< T, PVType, FrameType >::perp(), TrackerBounds::radius(), Cylinder::radius(), and PV3DBase< T, PVType, FrameType >::z().

176  {
177 
178  GlobalPoint gp(cylin.radius(),0.,(cylin.bounds().length())/2.);
179 // LocalPoint lp = theTkVolume()->toLocal(gp);
180 // return theTkVolume()->bounds().inside(lp);
181  return ( (gp.perp()<= TrackerBounds::radius()+10.) && (fabs(gp.z())<= TrackerBounds::halfLength()+10.) );
182 
183 
184 }
virtual float length() const =0
static float halfLength()
Definition: TrackerBounds.h:36
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:55
static float radius()
Definition: TrackerBounds.h:35
const Bounds & bounds() const
Definition: BoundSurface.h:89
bool SmartPropagator::insideTkVol ( const Plane plane) const

true if a plane is inside tracker volume

Definition at line 187 of file SmartPropagator.cc.

References TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), GloballyPositioned< T >::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().

187  {
188 
189  GlobalPoint gp = plane.position();
190 // LocalPoint lp = theTkVolume()->toLocal(gp);
191 // return theTkVolume()->bounds().inside(lp);
192  return ( (gp.perp()<= TrackerBounds::radius()+10.) && (fabs(gp.z())<= TrackerBounds::halfLength()+10.) );
193 
194 
195 }
T perp() const
Definition: PV3DBase.h:66
static float halfLength()
Definition: TrackerBounds.h:36
T z() const
Definition: PV3DBase.h:58
static float radius()
Definition: TrackerBounds.h:35
const PositionType & position() const
virtual const MagneticField* SmartPropagator::magneticField ( ) const
inlinevirtual

return the magneticField

Implements Propagator.

Definition at line 141 of file SmartPropagator.h.

References theField.

Referenced by clone().

141 {return theField;}
const MagneticField * theField
TrajectoryStateOnSurface SmartPropagator::propagate ( const FreeTrajectoryState state,
const Surface sur 
) const
virtual

Propagate from a free state (e.g. position and momentum in in global cartesian coordinates) to a surface.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.

Reimplemented from Propagator.

Definition at line 104 of file SmartPropagator.cc.

References Propagator::propagate().

105  {
106  return Propagator::propagate( fts, surface);
107 }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
TrajectoryStateOnSurface SmartPropagator::propagate ( const TrajectoryStateOnSurface state,
const Surface sur 
) const
inlinevirtual

The following three methods are equivalent to the corresponding methods above, but if the starting state is a TrajectoryStateOnSurface, it's better to use it as such rather than use just the FreeTrajectoryState part. It may help some concrete propagators.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.

Reimplemented from Propagator.

Definition at line 74 of file SmartPropagator.h.

References Propagator::propagate().

75  {
76  return Propagator::propagate(tsos,surface);
77  }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
TrajectoryStateOnSurface SmartPropagator::propagate ( const FreeTrajectoryState fts,
const Plane plane 
) const
virtual

Implements Propagator.

Definition at line 110 of file SmartPropagator.cc.

References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagate().

111  {
112 
113  if (insideTkVol(fts) && insideTkVol(plane)) {
114  return getTkPropagator()->propagate(fts, plane);
115  } else {
116  return getGenPropagator()->propagate(fts, plane);
117  }
118 
119 }
Propagator * getTkPropagator() const
return the propagator used inside tracker
bool insideTkVol(const FreeTrajectoryState &fts) const
true if a fts is inside tracker volume
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
Propagator * getGenPropagator() const
return the propagator used outside tracker
TrajectoryStateOnSurface SmartPropagator::propagate ( const TrajectoryStateOnSurface tsos,
const Plane plane 
) const
inlinevirtual

Reimplemented from Propagator.

Definition at line 82 of file SmartPropagator.h.

References Propagator::propagate().

83  {
84  return Propagator::propagate(tsos, plane);
85  }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
TrajectoryStateOnSurface SmartPropagator::propagate ( const FreeTrajectoryState fts,
const Cylinder cylinder 
) const
virtual

Implements Propagator.

Definition at line 122 of file SmartPropagator.cc.

References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagate().

123  {
124  if (insideTkVol(fts) && insideTkVol(cylinder)) {
125  return getTkPropagator()->propagate(fts, cylinder);
126  } else {
127  return getGenPropagator()->propagate(fts, cylinder);
128  }
129 
130 }
Propagator * getTkPropagator() const
return the propagator used inside tracker
bool insideTkVol(const FreeTrajectoryState &fts) const
true if a fts is inside tracker volume
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
Propagator * getGenPropagator() const
return the propagator used outside tracker
TrajectoryStateOnSurface SmartPropagator::propagate ( const TrajectoryStateOnSurface tsos,
const Cylinder cylinder 
) const
inlinevirtual

Reimplemented from Propagator.

Definition at line 90 of file SmartPropagator.h.

References Propagator::propagate().

91  {
92  return Propagator::propagate(tsos, cylinder);
93  }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
std::pair<TrajectoryStateOnSurface,double> SmartPropagator::propagateWithPath ( const FreeTrajectoryState state,
const Surface sur 
) const
inlinevirtual

The methods propagateWithPath() are identical to the corresponding methods propagate() in what concerns the resulting TrajectoryStateOnSurface, but they provide in addition the exact path length along the trajectory.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.

Reimplemented from Propagator.

Definition at line 96 of file SmartPropagator.h.

References Propagator::propagateWithPath().

97  {
98  return Propagator::propagateWithPath(fts,surface);
99  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
std::pair<TrajectoryStateOnSurface,double> SmartPropagator::propagateWithPath ( const TrajectoryStateOnSurface state,
const Surface sur 
) const
inlinevirtual

The following three methods are equivalent to the corresponding methods above, but if the starting state is a TrajectoryStateOnSurface, it's better to use it as such rather than use just the FreeTrajectoryState part. It may help some concrete propagators.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.

Reimplemented from Propagator.

Definition at line 102 of file SmartPropagator.h.

References Propagator::propagateWithPath().

103  {
104  return Propagator::propagateWithPath(tsos,surface);
105  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
std::pair< TrajectoryStateOnSurface, double > SmartPropagator::propagateWithPath ( const FreeTrajectoryState fts,
const Plane plane 
) const
virtual

Implements Propagator.

Definition at line 133 of file SmartPropagator.cc.

References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().

135 {
136  if (insideTkVol(fts) && insideTkVol(plane)) {
137  return getTkPropagator()->propagateWithPath(fts, plane);
138  } else {
139  return getGenPropagator()->propagateWithPath(fts, plane);
140  }
141 }
Propagator * getTkPropagator() const
return the propagator used inside tracker
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
bool insideTkVol(const FreeTrajectoryState &fts) const
true if a fts is inside tracker volume
Propagator * getGenPropagator() const
return the propagator used outside tracker
std::pair<TrajectoryStateOnSurface,double> SmartPropagator::propagateWithPath ( const TrajectoryStateOnSurface tsos,
const Plane plane 
) const
inlinevirtual

Reimplemented from Propagator.

Definition at line 112 of file SmartPropagator.h.

References Propagator::propagateWithPath().

113  {
114  return Propagator::propagateWithPath(tsos, plane);
115  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
std::pair< TrajectoryStateOnSurface, double > SmartPropagator::propagateWithPath ( const FreeTrajectoryState fts,
const Cylinder cylinder 
) const
virtual

Implements Propagator.

Definition at line 144 of file SmartPropagator.cc.

References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().

146 {
147  if (insideTkVol(fts) && insideTkVol(cylinder)) {
148  return getTkPropagator()->propagateWithPath(fts, cylinder);
149  } else {
150  return getGenPropagator()->propagateWithPath(fts, cylinder);
151  }
152 }
Propagator * getTkPropagator() const
return the propagator used inside tracker
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
bool insideTkVol(const FreeTrajectoryState &fts) const
true if a fts is inside tracker volume
Propagator * getGenPropagator() const
return the propagator used outside tracker
std::pair<TrajectoryStateOnSurface,double> SmartPropagator::propagateWithPath ( const TrajectoryStateOnSurface tsos,
const Cylinder cylinder 
) const
inlinevirtual

Reimplemented from Propagator.

Definition at line 122 of file SmartPropagator.h.

References Propagator::propagateWithPath().

123  {
124  return Propagator::propagateWithPath(tsos, cylinder);
125  }
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
void SmartPropagator::setPropagationDirection ( PropagationDirection  dir) const
inlinevirtual

setting the direction fo both components

Reimplemented from Propagator.

Definition at line 62 of file SmartPropagator.h.

References getGenPropagator(), getTkPropagator(), and Propagator::setPropagationDirection().

63  {
67  }
Propagator * getTkPropagator() const
return the propagator used inside tracker
Propagator * getGenPropagator() const
return the propagator used outside tracker
virtual void setPropagationDirection(PropagationDirection dir) const
Definition: Propagator.h:132
dbl *** dir
Definition: mlp_gen.cc:35
ReferenceCountingPointer< BoundCylinder > & SmartPropagator::theTkVolume ( )
staticprivate

Definition at line 36 of file SmartPropagator.cc.

Referenced by initTkVolume(), and SmartPropagator().

36  {
38  return local;
39 }

Member Data Documentation

const MagneticField* SmartPropagator::theField
private

Definition at line 149 of file SmartPropagator.h.

Referenced by magneticField().

Propagator* SmartPropagator::theGenProp
mutableprivate

Definition at line 148 of file SmartPropagator.h.

Referenced by getGenPropagator(), SmartPropagator(), and ~SmartPropagator().

Propagator* SmartPropagator::theTkProp
mutableprivate

Definition at line 147 of file SmartPropagator.h.

Referenced by getTkPropagator(), SmartPropagator(), and ~SmartPropagator().