#include <AnalyticalPropagator.h>
Private Types | |
typedef std::pair < TrajectoryStateOnSurface, double > | TsosWP |
Private Member Functions | |
virtual const MagneticField * | magneticField () const |
std::pair < TrajectoryStateOnSurface, double > | propagatedStateWithPath (const FreeTrajectoryState &fts, const Surface &surface, const GlobalTrajectoryParameters >p, const double &s) const |
propagation of errors (if needed) and generation of a new TSOS More... | |
bool | propagateParametersOnCylinder (const FreeTrajectoryState &fts, const Cylinder &cylinder, GlobalPoint &x, GlobalVector &p, double &s) const |
parameter propagation to cylinder (returns position, momentum and path length) More... | |
bool | propagateParametersOnPlane (const FreeTrajectoryState &fts, const Plane &plane, GlobalPoint &x, GlobalVector &p, double &s) const |
parameter propagation to plane (returns position, momentum and path length) More... | |
bool | propagateWithHelixCrossing (HelixPlaneCrossing &, const Plane &, const float, GlobalPoint &, GlobalVector &, double &s) const |
helix parameter propagation to a plane using HelixPlaneCrossing More... | |
bool | propagateWithLineCrossing (const GlobalPoint &, const GlobalVector &, const Plane &, GlobalPoint &, double &) const |
straight line parameter propagation to a plane More... | |
bool | propagateWithLineCrossing (const GlobalPoint &, const GlobalVector &, const Cylinder &, GlobalPoint &, double &) const |
straight line parameter propagation to a cylinder More... | |
Private Attributes | |
const MagneticField * | theField |
float | theMaxDBzRatio |
float | theMaxDPhi2 |
(Mostly) analytical helix propagation to cylindrical or planar surfaces. Based on GtfGeometricalPropagator with successive replacement of components (currently: propagation to arbitrary plane).
Definition at line 22 of file AnalyticalPropagator.h.
|
private |
Definition at line 125 of file AnalyticalPropagator.h.
|
inline |
Definition at line 26 of file AnalyticalPropagator.h.
Referenced by clone().
|
inline |
Definition at line 34 of file AnalyticalPropagator.h.
|
inlinevirtual |
Implements Propagator.
Definition at line 73 of file AnalyticalPropagator.h.
References AnalyticalPropagator().
|
inlineprivatevirtual |
|
inlinevirtual |
propagation to plane
Implements Propagator.
Definition at line 46 of file AnalyticalPropagator.h.
References propagateWithPath().
Referenced by EMEnrichingFilterAlgo::applyBFieldCurv(), doubleEMEnrichingFilterAlgo::applyBFieldCurv(), TrackerValidationVariables::fillHitQuantities(), CosmicTrackingRegion::hits(), RoadSearchTrackCandidateMakerAlgorithm::PrepareTrackCandidates(), TrackingRecHitPropagator::project(), RecHitPropagator::propagate(), spr::propagateCalo(), cms::MuonTCMETValueMapProducer::propagateTrack(), TCMETAlgo::propagateTrack(), spr::propagateTrackerEnd(), TauTagTools::propagTrackECALSurfContactPoint(), KalmanAlignmentTrackRefitter::refitSingleTracklet(), PerigeeRefittedTrackState::trajectoryStateOnSurface(), and KinematicRefittedTrackState::trajectoryStateOnSurface().
|
inlinevirtual |
propagation to cylinder
Implements Propagator.
Definition at line 56 of file AnalyticalPropagator.h.
References propagateWithPath().
|
private |
propagation of errors (if needed) and generation of a new TSOS
Definition at line 105 of file AnalyticalPropagator.cc.
References SurfaceSideDefinition::afterSurface, alongMomentum, SurfaceSideDefinition::beforeSurface, FreeTrajectoryState::curvilinearError(), FreeTrajectoryState::hasError(), AnalyticalCurvilinearJacobian::jacobian(), CurvilinearTrajectoryError::matrix(), GlobalTrajectoryParameters::momentum(), FreeTrajectoryState::parameters(), GlobalTrajectoryParameters::position(), and asciidump::s.
|
private |
parameter propagation to cylinder (returns position, momentum and path length)
Definition at line 137 of file AnalyticalPropagator.cc.
References ExpressReco_HICollisions_FallBack::e, PV3DBase< T, PVType, FrameType >::mag(), FreeTrajectoryState::momentum(), L1TEmulatorMonitor_cff::p, HelixBarrelCylinderCrossing::pathLength(), GloballyPositioned< T >::position(), FreeTrajectoryState::position(), rho, asciidump::s, FreeTrajectoryState::transverseCurvature(), Vector3DBase< T, FrameTag >::unit(), PV3DBase< T, PVType, FrameType >::x(), ExpressReco_HICollisions_FallBack::x, and PV3DBase< T, PVType, FrameType >::y().
|
private |
parameter propagation to plane (returns position, momentum and path length)
Definition at line 181 of file AnalyticalPropagator.cc.
References ExpressReco_HICollisions_FallBack::e, PV3DBase< T, PVType, FrameType >::mag(), FreeTrajectoryState::momentum(), L1TEmulatorMonitor_cff::p, FreeTrajectoryState::position(), rho, asciidump::s, FreeTrajectoryState::transverseCurvature(), and ExpressReco_HICollisions_FallBack::x.
|
private |
helix parameter propagation to a plane using HelixPlaneCrossing
Definition at line 282 of file AnalyticalPropagator.cc.
References HelixPlaneCrossing::direction(), Basic3DVector< T >::mag(), HelixPlaneCrossing::pathLength(), and HelixPlaneCrossing::position().
|
private |
straight line parameter propagation to a plane
Definition at line 232 of file AnalyticalPropagator.cc.
References dir, StraightLinePlaneCrossing::pathLength(), pos, and StraightLinePlaneCrossing::position().
|
private |
straight line parameter propagation to a cylinder
Definition at line 258 of file AnalyticalPropagator.cc.
References StraightLineBarrelCylinderCrossing::pathLength(), and StraightLineBarrelCylinderCrossing::position().
|
virtual |
propagation to plane with path length
Implements Propagator.
Definition at line 28 of file AnalyticalPropagator.cc.
References FreeTrajectoryState::charge(), ExpressReco_HICollisions_FallBack::e, Plane::localZ(), LogDebug, PV3DBase< T, PVType, FrameType >::mag(), PV3DBase< T, PVType, FrameType >::mag2(), FreeTrajectoryState::momentum(), L1TEmulatorMonitor_cff::p, PV3DBase< T, PVType, FrameType >::perp2(), GloballyPositioned< T >::position(), FreeTrajectoryState::position(), rho, asciidump::s, FreeTrajectoryState::transverseCurvature(), and ExpressReco_HICollisions_FallBack::x.
Referenced by ReferenceTrajectory::construct(), TrackerValidationVariables::fillHitQuantities(), propagate(), DualTrajectoryFactory::propagateExternal(), DualBzeroTrajectoryFactory::propagateExternal(), and TwoBodyDecayTrajectoryState::propagateSingleState().
|
virtual |
propagation to cylinder with path length
Implements Propagator.
Definition at line 75 of file AnalyticalPropagator.cc.
References FreeTrajectoryState::charge(), PV3DBase< T, PVType, FrameType >::mag2(), FreeTrajectoryState::momentum(), L1TEmulatorMonitor_cff::p, PV3DBase< T, PVType, FrameType >::perp2(), rho, asciidump::s, Cylinder::tangentPlane(), FreeTrajectoryState::transverseCurvature(), and ExpressReco_HICollisions_FallBack::x.
|
inlinevirtual |
limitation of change in transverse direction (to avoid loops).
Reimplemented from Propagator.
Definition at line 67 of file AnalyticalPropagator.h.
References ExpressReco_HICollisions_FallBack::phiMax, and theMaxDPhi2.
|
inline |
Set the maximum relative change in Bz (Bz_at_end-Bz_at_start)/Bz_at_start for a single propagation. The default is no limit. NB: this propagator assumes constant, non-zero magnetic field parallel to the z-axis!
Definition at line 85 of file AnalyticalPropagator.h.
References theMaxDBzRatio.
|
private |
Definition at line 128 of file AnalyticalPropagator.h.
Referenced by magneticField().
|
private |
Definition at line 127 of file AnalyticalPropagator.h.
Referenced by setMaxRelativeChangeInBz().
|
private |
Definition at line 126 of file AnalyticalPropagator.h.
Referenced by setMaxDirectionChange().