|
| AnalyticalPropagator (const MagneticField *field, PropagationDirection dir=alongMomentum, float maxDPhi=1.6, bool isOld=true) |
|
AnalyticalPropagator * | clone () const override |
|
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 FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
|
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< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const=0 |
|
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const |
|
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 FreeTrajectoryState &, const Surface &) const final |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const=0 |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const |
|
bool | setMaxDirectionChange (float phiMax) override |
|
void | setMaxRelativeChangeInBz (const float maxDBz) |
|
| ~AnalyticalPropagator () override |
|
template<typename STA , typename SUR > |
TrajectoryStateOnSurface | propagate (STA const &state, SUR const &surface) const |
|
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 |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const final |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const |
|
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const |
|
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 PropagationDirection | propagationDirection () const final |
|
| Propagator (PropagationDirection dir=alongMomentum) |
|
virtual void | setPropagationDirection (PropagationDirection dir) |
|
virtual | ~Propagator () |
|
|
const MagneticField * | magneticField () const override |
|
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...
|
|
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Plane &plane) const override |
| propagation to plane with path length More...
|
|
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Cylinder &cylinder) const override |
| propagation to cylinder with path length More...
|
|
(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.
parameter propagation to plane (returns position, momentum and path length)
Definition at line 180 of file AnalyticalPropagator.cc.
References funct::abs(), MillePedeFileConverter_cfg::e, f, LIKELY, LogDebug, PV3DBase< T, PVType, FrameType >::mag(), Basic3DVector< T >::mag(), FreeTrajectoryState::momentum(), oppositeToMomentum, AlCaHLTBitMon_ParallelJobs::p, perp(), PV3DBase< T, PVType, FrameType >::phi(), FreeTrajectoryState::position(), alignCSCRings::s, tolerance, FreeTrajectoryState::transverseCurvature(), UNLIKELY, and x.
215 LogDebug(
"AnalyticalPropagator") <<
"In AnaliticalProp, calling HAPC " 217 <<
"plane is centered in xyz: " << plane.position().x() <<
" , " 218 << plane.position().y() <<
" , " << plane.position().z() <<
"\n";
226 LogDebug(
"AnalyticalPropagator") <<
"gp1 before calling planeCrossing1: " << gp1 <<
"\n";
237 double dphi1 = fabs(fts.
momentum().
phi() - gm1.phi());
238 LogDebug(
"AnalyticalPropagator") <<
"check1, s1, dphi, gp1: " << check1 <<
" , " << s1 <<
" , " << dphi1 <<
" , " 243 xGen = (*planeCrossing1).position(s1 +
tolerance);
244 pGen = (*planeCrossing1).direction(s1 +
tolerance);
262 LogDebug(
"AnalyticalPropagator") <<
"failed also second attempt. No idea what to do, then bailout" 266 pGen *= gm1.
mag() / pGen.
mag();
285 edm::LogError(
"AnalyticalPropagator") <<
"LOGIC ERROR: I should not have entered here!" 290 LogDebug(
"AnalyticalPropagator") <<
"check2, s2, gp2: " << check2 <<
" , " << s2 <<
" , " << gp2 <<
"\n";
292 double dist1 = (plane.position() - gp1).
perp();
293 double dist2 = (plane.position() - gp2).
perp();
299 if (dist1 < 2 * dist2) {
304 }
else if (dist2 < 2 * dist1) {
310 if (fabs(s1) < fabs(s2)) {
bool propagateWithLineCrossing(const GlobalPoint &, const GlobalVector &, const Plane &, GlobalPoint &, double &) const
straight line parameter propagation to a plane
Geom::Phi< T > phi() const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
virtual PropagationDirection propagationDirection() const final
Log< level::Error, false > LogError
bool isOldPropagationType
GlobalPoint position() const
bool propagateWithHelixCrossing(HelixPlaneCrossing &, const Plane &, const float, GlobalPoint &, GlobalVector &, double &s) const
helix parameter propagation to a plane using HelixPlaneCrossing
GlobalVector momentum() const
Abs< T >::type abs(const T &t)
T perp() const
Magnitude of transverse component.
double transverseCurvature() const