CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
GsfPropagatorWithMaterial Class Reference

#include <GsfPropagatorWithMaterial.h>

Inheritance diagram for GsfPropagatorWithMaterial:
Propagator

Public Types

enum  MaterialLocation { atSource, atDestination, fromDirection }
 

Public Member Functions

GsfPropagatorWithMaterialclone () const override
 
const FullConvolutionWithMaterialconvolutionWithMaterial () const
 Access to the convolutor and thus to the material effects. More...
 
const PropagatorgeometricalPropagator () const
 Access to the geometrical propagator. More...
 
 GsfPropagatorWithMaterial (const GsfPropagatorAdapter &Propagator, const FullConvolutionWithMaterial &Convolutor)
 
 GsfPropagatorWithMaterial (const Propagator &Propagator, const GsfMaterialEffectsUpdator &MEUpdator)
 
const MagneticFieldmagneticField () const override
 
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final
 
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const final
 
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const final
 
template<typename STA , typename SUR >
TrajectoryStateOnSurface propagate (STA const &state, SUR const &surface) const
 
std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const override
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const=0
 
std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const FreeTrajectoryState &, const Plane &) const override
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const FreeTrajectoryState &, const Plane &) const=0
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const FreeTrajectoryState &, const Surface &) const final
 
virtual std::pair< FreeTrajectoryState, double > propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const
 
virtual std::pair< FreeTrajectoryState, double > propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const
 Propagate to PCA to a line (given by 2 points) given a starting point. More...
 
virtual std::pair< FreeTrajectoryState, double > propagateWithPath (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const
 Propagate to PCA to a line (given by beamSpot position and slope) given a starting point. More...
 
std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const TrajectoryStateOnSurface &, const Cylinder &) const override
 
std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const TrajectoryStateOnSurface &, const Plane &) const override
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final
 
void setMaterialLocation (const MaterialLocation location)
 
bool setMaxDirectionChange (float phiMax) override
 
void setPropagationDirection (PropagationDirection dir) override
 
 ~GsfPropagatorWithMaterial () override
 
- Public Member Functions inherited from Propagator
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final
 
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const final
 
virtual FreeTrajectoryState propagate (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const final
 
template<typename STA , typename SUR >
TrajectoryStateOnSurface propagate (STA const &state, SUR const &surface) const
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const FreeTrajectoryState &, const Surface &) const final
 
virtual std::pair< FreeTrajectoryState, double > propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const
 
virtual std::pair< FreeTrajectoryState, double > propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const
 Propagate to PCA to a line (given by 2 points) given a starting point. More...
 
virtual std::pair< FreeTrajectoryState, double > propagateWithPath (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const
 Propagate to PCA to a line (given by beamSpot position and slope) given a starting point. More...
 
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final
 
virtual PropagationDirection propagationDirection () const final
 
 Propagator (PropagationDirection dir=alongMomentum)
 
virtual ~Propagator ()
 

Private Types

typedef std::vector< TrajectoryStateOnSurfaceMultiTSOS
 
typedef std::pair< TrajectoryStateOnSurface, double > TsosWP
 

Private Member Functions

TrajectoryStateOnSurface convoluteStateWithMaterial (const TrajectoryStateOnSurface, const PropagationDirection) const
 Convolution of state with material effects. More...
 
std::pair< TrajectoryStateOnSurface, double > convoluteWithMaterial (const std::pair< TrajectoryStateOnSurface, double > &) const
 Convolution of state+path with material effects. More...
 
bool materialAtSource () const
 Inclusion of material at the source? More...
 

Private Attributes

DeepCopyPointerByClone< FullConvolutionWithMaterialtheConvolutor
 
DeepCopyPointerByClone< GsfPropagatorAdaptertheGeometricalPropagator
 
MaterialLocation theMaterialLocation
 

Detailed Description

Propagation including material effects on destination surface for multiple trajectory states. Propagates components independently using a specific propagator for the geometrical part and a GsfMaterialEffectsUpdator to include multiple scattering and energy loss at the destination. The number of components will increase according to the result of the GsfMaterialEffectsUpdator.

Definition at line 23 of file GsfPropagatorWithMaterial.h.

Member Typedef Documentation

◆ MultiTSOS

Definition at line 105 of file GsfPropagatorWithMaterial.h.

◆ TsosWP

typedef std::pair<TrajectoryStateOnSurface, double> GsfPropagatorWithMaterial::TsosWP
private

Definition at line 104 of file GsfPropagatorWithMaterial.h.

Member Enumeration Documentation

◆ MaterialLocation

Enumerator
atSource 
atDestination 
fromDirection 

Definition at line 64 of file GsfPropagatorWithMaterial.h.

Constructor & Destructor Documentation

◆ GsfPropagatorWithMaterial() [1/2]

GsfPropagatorWithMaterial::GsfPropagatorWithMaterial ( const Propagator Propagator,
const GsfMaterialEffectsUpdator MEUpdator 
)

Constructor with explicit single state propagator and material effects objects.

Definition at line 11 of file GsfPropagatorWithMaterial.cc.

13  : Propagator(aPropagator.propagationDirection()),

Referenced by clone().

◆ GsfPropagatorWithMaterial() [2/2]

GsfPropagatorWithMaterial::GsfPropagatorWithMaterial ( const GsfPropagatorAdapter Propagator,
const FullConvolutionWithMaterial Convolutor 
)

Constructor with explicit multi state propagator and convolutor.

Definition at line 18 of file GsfPropagatorWithMaterial.cc.

20  : Propagator(aGsfPropagator.propagationDirection()),
21  theGeometricalPropagator(aGsfPropagator.clone()),
22  theConvolutor(aConvolutor.clone()),

◆ ~GsfPropagatorWithMaterial()

GsfPropagatorWithMaterial::~GsfPropagatorWithMaterial ( )
inlineoverride

Definition at line 34 of file GsfPropagatorWithMaterial.h.

34 {}

Member Function Documentation

◆ clone()

GsfPropagatorWithMaterial* GsfPropagatorWithMaterial::clone ( void  ) const
inlineoverridevirtual

◆ convoluteStateWithMaterial()

TrajectoryStateOnSurface GsfPropagatorWithMaterial::convoluteStateWithMaterial ( const TrajectoryStateOnSurface  tsos,
const PropagationDirection  propDir 
) const
private

Convolution of state with material effects.

Definition at line 115 of file GsfPropagatorWithMaterial.cc.

116  {
117  //
118  // convolute with material
119  //
120  return (*theConvolutor)(tsos, propDir);
121 }

References theConvolutor.

Referenced by propagateWithPath().

◆ convoluteWithMaterial()

std::pair< TrajectoryStateOnSurface, double > GsfPropagatorWithMaterial::convoluteWithMaterial ( const std::pair< TrajectoryStateOnSurface, double > &  ) const
private

Convolution of state+path with material effects.

Definition at line 106 of file GsfPropagatorWithMaterial.cc.

107  {
108  //
109  // convolute with material
110  //
111  PropagationDirection propDir = PropagationDirectionFromPath()(aStateWithPath.second, propagationDirection());
112  return TsosWP((*theConvolutor)(aStateWithPath.first, propDir), aStateWithPath.second);
113 }

References Propagator::propagationDirection(), and theConvolutor.

Referenced by propagateWithPath().

◆ convolutionWithMaterial()

const FullConvolutionWithMaterial& GsfPropagatorWithMaterial::convolutionWithMaterial ( ) const
inline

Access to the convolutor and thus to the material effects.

Definition at line 77 of file GsfPropagatorWithMaterial.h.

77 { return *theConvolutor; }

References theConvolutor.

Referenced by GsfTrajectorySmoother::GsfTrajectorySmoother().

◆ geometricalPropagator()

const Propagator& GsfPropagatorWithMaterial::geometricalPropagator ( ) const
inline

Access to the geometrical propagator.

Definition at line 75 of file GsfPropagatorWithMaterial.h.

75 { return *theGeometricalPropagator; }

References theGeometricalPropagator.

Referenced by GsfTrajectorySmoother::GsfTrajectorySmoother().

◆ magneticField()

const MagneticField* GsfPropagatorWithMaterial::magneticField ( ) const
inlineoverridevirtual

◆ materialAtSource()

bool GsfPropagatorWithMaterial::materialAtSource ( ) const
private

Inclusion of material at the source?

Definition at line 123 of file GsfPropagatorWithMaterial.cc.

123  {
126  throw cms::Exception("LogicError") << "PropagatorWithMaterial: propagation direction = anyDirection is "
127  << "incompatible with adding of material at source";
128  }
129  }
130  return theMaterialLocation == atSource ||
132 }

References alongMomentum, anyDirection, atDestination, atSource, Exception, fromDirection, Propagator::propagationDirection(), and theMaterialLocation.

Referenced by propagateWithPath().

◆ propagate() [1/4]

virtual FreeTrajectoryState Propagator::propagate
inlinefinal

Definition at line 109 of file Propagator.h.

109  {
110  return propagateWithPath(ftsStart, pDest).first;
111  }

◆ propagate() [2/4]

virtual FreeTrajectoryState Propagator::propagate
inlinefinal

Definition at line 112 of file Propagator.h.

114  {
115  return propagateWithPath(ftsStart, pDest1, pDest2).first;
116  }

◆ propagate() [3/4]

virtual FreeTrajectoryState Propagator::propagate
inlinefinal

Definition at line 117 of file Propagator.h.

118  {
119  return propagateWithPath(ftsStart, beamSpot).first;
120  }

◆ propagate() [4/4]

template<typename STA , typename SUR >
TrajectoryStateOnSurface Propagator::propagate ( typename STA  ,
typename SUR   
)
inline

Definition at line 50 of file Propagator.h.

50  {
51  return propagateWithPath(state, surface).first;
52  }

◆ propagateWithPath() [1/13]

std::pair< TrajectoryStateOnSurface, double > GsfPropagatorWithMaterial::propagateWithPath ( const FreeTrajectoryState fts,
const Cylinder cylinder 
) const
overridevirtual

Propagation to cylinder with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!

Implements Propagator.

Definition at line 86 of file GsfPropagatorWithMaterial.cc.

87  {
88  static std::atomic<int> nWarn(0);
89  if (nWarn++ < 5)
90  edm::LogInfo("GsfPropagatorWithMaterial")
91  << "GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
92  TsosWP propStateWP = theGeometricalPropagator->propagateWithPath(fts, cylinder);
93  if (!(propStateWP.first).isValid() || materialAtSource())
94  return propStateWP;
95  //
96  // return convoluted state
97  //
98  return convoluteWithMaterial(propStateWP);
99 }

References convoluteWithMaterial(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), and theGeometricalPropagator.

◆ propagateWithPath() [2/13]

virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath

◆ propagateWithPath() [3/13]

std::pair< TrajectoryStateOnSurface, double > GsfPropagatorWithMaterial::propagateWithPath ( const FreeTrajectoryState fts,
const Plane plane 
) const
overridevirtual

Propagation to plane with path length calculation. Use from FTS implies single state (better use PropagatorWithMaterial)!

Implements Propagator.

Definition at line 71 of file GsfPropagatorWithMaterial.cc.

72  {
73  static std::atomic<int> nWarn(0);
74  if (nWarn++ < 5)
75  edm::LogInfo("GsfPropagatorWithMaterial")
76  << "GsfPropagatorWithMaterial used from FTS: input state might have been collapsed!";
77  TsosWP propStateWP = theGeometricalPropagator->propagateWithPath(fts, plane);
78  if (!(propStateWP.first).isValid() || materialAtSource())
79  return propStateWP;
80  //
81  // return convoluted state
82  //
83  return convoluteWithMaterial(propStateWP);
84 }

References convoluteWithMaterial(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), and theGeometricalPropagator.

◆ propagateWithPath() [4/13]

virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath

◆ propagateWithPath() [5/13]

std::pair< TrajectoryStateOnSurface, double > Propagator::propagateWithPath
final

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.

Definition at line 10 of file Propagator.cc.

11  {
12  // try plane first, most probable case (disk "is a" plane too)
13  const Plane* bp = dynamic_cast<const Plane*>(&sur);
14  if (bp != nullptr)
15  return propagateWithPath(state, *bp);
16 
17  // if not plane try cylinder
18  const Cylinder* bc = dynamic_cast<const Cylinder*>(&sur);
19  if (bc != nullptr)
20  return propagateWithPath(state, *bc);
21 
22  // unknown surface - can't do it!
23  throw PropagationException("The surface is neither Cylinder nor Plane");
24 }

◆ propagateWithPath() [6/13]

std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath

implemented by Stepping Helix Propagate to PCA to point given a starting point

Definition at line 42 of file Propagator.cc.

43  {
44  throw cms::Exception("Propagator::propagate(FTS,GlobalPoint) not implemented");
45  return std::pair<FreeTrajectoryState, double>();
46 }

◆ propagateWithPath() [7/13]

std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath

Propagate to PCA to a line (given by 2 points) given a starting point.

Definition at line 47 of file Propagator.cc.

49  {
50  throw cms::Exception("Propagator::propagate(FTS,GlobalPoint,GlobalPoint) not implemented");
51  return std::pair<FreeTrajectoryState, double>();
52 }

◆ propagateWithPath() [8/13]

std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath

Propagate to PCA to a line (given by beamSpot position and slope) given a starting point.

Definition at line 53 of file Propagator.cc.

54  {
55  throw cms::Exception("Propagator::propagate(FTS,beamSpot) not implemented");
56  return std::pair<FreeTrajectoryState, double>();
57 }

◆ propagateWithPath() [9/13]

std::pair< TrajectoryStateOnSurface, double > GsfPropagatorWithMaterial::propagateWithPath ( const TrajectoryStateOnSurface tsos,
const Cylinder cylinder 
) const
overridevirtual

Propagation to cylinder with path length calculation.

Reimplemented from Propagator.

Definition at line 48 of file GsfPropagatorWithMaterial.cc.

49  {
50  // add material before propagation?
51  //
52  TrajectoryStateOnSurface stateAtSource;
53  if (materialAtSource())
54  stateAtSource = convoluteStateWithMaterial(tsos, propagationDirection());
55  else
56  stateAtSource = tsos;
57  if (!stateAtSource.isValid())
58  return TsosWP(stateAtSource, 0.);
59  //
60  // geometrical propagation
61  //
62  TsosWP propStateWP(theGeometricalPropagator->propagateWithPath(stateAtSource, cylinder));
63  if (!(propStateWP.first).isValid())
64  return propStateWP;
65  //
66  // return convoluted state
67  //
68  return convoluteWithMaterial(propStateWP);
69 }

References convoluteStateWithMaterial(), convoluteWithMaterial(), TrajectoryStateOnSurface::isValid(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), Propagator::propagationDirection(), and theGeometricalPropagator.

◆ propagateWithPath() [10/13]

std::pair< TrajectoryStateOnSurface, double > GsfPropagatorWithMaterial::propagateWithPath ( const TrajectoryStateOnSurface tsos,
const Plane plane 
) const
overridevirtual

Propagation to plane with path length calculation.

Reimplemented from Propagator.

Definition at line 25 of file GsfPropagatorWithMaterial.cc.

26  {
27  // add material before propagation?
28  //
29  TrajectoryStateOnSurface stateAtSource;
30  if (materialAtSource())
31  stateAtSource = convoluteStateWithMaterial(tsos, propagationDirection());
32  else
33  stateAtSource = tsos;
34  if (!stateAtSource.isValid())
35  return TsosWP(stateAtSource, 0.);
36  //
37  // geometrical propagation
38  //
39  TsosWP propStateWP(theGeometricalPropagator->propagateWithPath(stateAtSource, plane));
40  if (!(propStateWP.first).isValid())
41  return propStateWP;
42  //
43  // return convoluted state
44  //
45  return convoluteWithMaterial(propStateWP);
46 }

References convoluteStateWithMaterial(), convoluteWithMaterial(), TrajectoryStateOnSurface::isValid(), materialAtSource(), GsfPropagatorAdapter::propagateWithPath(), Propagator::propagationDirection(), and theGeometricalPropagator.

◆ propagateWithPath() [11/13]

virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath
inline

Definition at line 91 of file Propagator.h.

92  {
93  return propagateWithPath(*tsos.freeState(), sur);
94  }

◆ propagateWithPath() [12/13]

virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath
inline

Definition at line 86 of file Propagator.h.

87  {
88  return propagateWithPath(*tsos.freeState(), sur);
89  }

◆ propagateWithPath() [13/13]

std::pair< TrajectoryStateOnSurface, double > Propagator::propagateWithPath
final

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.

Definition at line 26 of file Propagator.cc.

27  {
28  // try plane first, most probable case (disk "is a" plane too)
29  const Plane* bp = dynamic_cast<const Plane*>(&sur);
30  if (bp != nullptr)
31  return propagateWithPath(state, *bp);
32 
33  // if not plane try cylinder
34  const Cylinder* bc = dynamic_cast<const Cylinder*>(&sur);
35  if (bc != nullptr)
36  return propagateWithPath(state, *bc);
37 
38  // unknown surface - can't do it!
39  throw PropagationException("The surface is neither Cylinder nor Plane");
40 }

◆ setMaterialLocation()

void GsfPropagatorWithMaterial::setMaterialLocation ( const MaterialLocation  location)
inline

Choice of location for including material effects: fromDirection is equivalent to atSource for propagation alongMomentum and to atDestination for propagation oppositeToMomentum. Inclusion of material effects at the source (either explicitely or implicitely) is not possible if propagating with anyDirection and will effectively disable material effects when propagating from a FreeTrajectoryState.

Definition at line 73 of file GsfPropagatorWithMaterial.h.

References EcalCondDBWriter_cfi::location, and theMaterialLocation.

◆ setMaxDirectionChange()

bool GsfPropagatorWithMaterial::setMaxDirectionChange ( float  phiMax)
inlineoverridevirtual

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 60 of file GsfPropagatorWithMaterial.h.

References AlignmentTrackSelector_cfi::phiMax, GsfPropagatorAdapter::setMaxDirectionChange(), and theGeometricalPropagator.

◆ setPropagationDirection()

void GsfPropagatorWithMaterial::setPropagationDirection ( PropagationDirection  dir)
overridevirtual

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 101 of file GsfPropagatorWithMaterial.cc.

References DeadROC_duringRun::dir, GsfPropagatorAdapter::setPropagationDirection(), Propagator::setPropagationDirection(), and theGeometricalPropagator.

Member Data Documentation

◆ theConvolutor

DeepCopyPointerByClone<FullConvolutionWithMaterial> GsfPropagatorWithMaterial::theConvolutor
private

◆ theGeometricalPropagator

DeepCopyPointerByClone<GsfPropagatorAdapter> GsfPropagatorWithMaterial::theGeometricalPropagator
private

◆ theMaterialLocation

MaterialLocation GsfPropagatorWithMaterial::theMaterialLocation
private

Definition at line 102 of file GsfPropagatorWithMaterial.h.

Referenced by materialAtSource(), and setMaterialLocation().

GsfPropagatorAdapter::propagateWithPath
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
Definition: GsfPropagatorAdapter.cc:11
anyDirection
Definition: PropagationDirection.h:4
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
GsfPropagatorWithMaterial::GsfPropagatorWithMaterial
GsfPropagatorWithMaterial(const Propagator &Propagator, const GsfMaterialEffectsUpdator &MEUpdator)
Definition: GsfPropagatorWithMaterial.cc:11
PropagationException
Common base class.
Definition: PropagationExceptions.h:14
PropagationDirectionFromPath
Definition: PropagationDirectionFromPath.h:8
edm::LogInfo
Definition: MessageLogger.h:254
GsfPropagatorWithMaterial::fromDirection
Definition: GsfPropagatorWithMaterial.h:64
GsfPropagatorWithMaterial::materialAtSource
bool materialAtSource() const
Inclusion of material at the source?
Definition: GsfPropagatorWithMaterial.cc:123
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
GsfPropagatorWithMaterial::propagateWithPath
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &, const Plane &) const override
Definition: GsfPropagatorWithMaterial.cc:25
Propagator::propagationDirection
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:139
GsfPropagatorWithMaterial::atDestination
Definition: GsfPropagatorWithMaterial.h:64
GsfPropagatorAdapter::magneticField
const MagneticField * magneticField() const override
Definition: GsfPropagatorAdapter.h:54
AlignmentTrackSelector_cfi.phiMax
phiMax
Definition: AlignmentTrackSelector_cfi.py:17
GsfPropagatorWithMaterial::convoluteStateWithMaterial
TrajectoryStateOnSurface convoluteStateWithMaterial(const TrajectoryStateOnSurface, const PropagationDirection) const
Convolution of state with material effects.
Definition: GsfPropagatorWithMaterial.cc:115
Propagator::setPropagationDirection
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:130
GsfPropagatorWithMaterial::theConvolutor
DeepCopyPointerByClone< FullConvolutionWithMaterial > theConvolutor
Definition: GsfPropagatorWithMaterial.h:100
GsfPropagatorWithMaterial::convoluteWithMaterial
std::pair< TrajectoryStateOnSurface, double > convoluteWithMaterial(const std::pair< TrajectoryStateOnSurface, double > &) const
Convolution of state+path with material effects.
Definition: GsfPropagatorWithMaterial.cc:106
FullConvolutionWithMaterial
Definition: FullConvolutionWithMaterial.h:15
GsfPropagatorAdapter::setPropagationDirection
void setPropagationDirection(PropagationDirection dir) override
Definition: GsfPropagatorAdapter.cc:41
GsfPropagatorWithMaterial::atSource
Definition: GsfPropagatorWithMaterial.h:64
GsfPropagatorAdapter::setMaxDirectionChange
bool setMaxDirectionChange(float phiMax) override
Definition: GsfPropagatorAdapter.h:45
Exception
Definition: hltDiff.cc:246
GsfPropagatorWithMaterial::theGeometricalPropagator
DeepCopyPointerByClone< GsfPropagatorAdapter > theGeometricalPropagator
Definition: GsfPropagatorWithMaterial.h:98
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
Plane
Definition: Plane.h:16
EcalCondDBWriter_cfi.location
location
Definition: EcalCondDBWriter_cfi.py:63
Cylinder
Definition: Cylinder.h:19
GsfPropagatorWithMaterial::TsosWP
std::pair< TrajectoryStateOnSurface, double > TsosWP
Definition: GsfPropagatorWithMaterial.h:104
GsfPropagatorAdapter
Definition: GsfPropagatorAdapter.h:14
alongMomentum
Definition: PropagationDirection.h:4
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
GsfPropagatorWithMaterial::theMaterialLocation
MaterialLocation theMaterialLocation
Definition: GsfPropagatorWithMaterial.h:102
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
Propagator::Propagator
Propagator(PropagationDirection dir=alongMomentum)
Definition: Propagator.h:46