CMS 3D CMS Logo

Functions
AnalyticalErrorPropagation.h File Reference
#include "FWCore/Utilities/interface/Visibility.h"
#include "FWCore/Utilities/interface/Likely.h"
#include "TrackingTools/AnalyticalJacobians/interface/AnalyticalCurvilinearJacobian.h"
#include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h"
#include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
#include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
#include "TrackingTools/TrajectoryState/interface/SurfaceSideDefinition.h"

Go to the source code of this file.

Functions

std::pair< TrajectoryStateOnSurface, double > analyticalErrorPropagation (const FreeTrajectoryState &startingState, const Surface &surface, SurfaceSideDefinition::SurfaceSide side, const GlobalTrajectoryParameters &destParameters, const double &s)
 

Function Documentation

◆ analyticalErrorPropagation()

std::pair<TrajectoryStateOnSurface, double> analyticalErrorPropagation ( const FreeTrajectoryState startingState,
const Surface surface,
SurfaceSideDefinition::SurfaceSide  side,
const GlobalTrajectoryParameters destParameters,
const double &  s 
)
inline

Definition at line 14 of file AnalyticalErrorPropagation.h.

19  {
20  if UNLIKELY (!startingState.hasError())
21  // return state without errors
22  return std::pair<TrajectoryStateOnSurface, double>(TrajectoryStateOnSurface(destParameters, surface, side), s);
23 
24  //
25  // compute jacobian
26  //
27 
28  // FIXME: Compute mean B field between startingState and destParameters and pass it to analyticalJacobian
29  //GlobalPoint xStart = startingState.position();
30  //GlobalPoint xDest = destParameters.position();
31  //GlobalVector h1 = destParameters.magneticFieldInInverseGeV(xStart);
32  //GlobalVector h2 = destParameters.magneticFieldInInverseGeV(xDest);
33  //GlobalVector h = 0.5*(h1+h2);
34  //LogDebug("RungeKutta") << "AnalyticalErrorPropagation: The Fields are: " << h1 << ", " << h2 << ", " << h ;
35 
36  //
37  AnalyticalCurvilinearJacobian analyticalJacobian(
38  startingState.parameters(), destParameters.position(), destParameters.momentum(), s);
39  auto const& jacobian = analyticalJacobian.jacobian();
40  return std::pair<TrajectoryStateOnSurface, double>(
42  destParameters, ROOT::Math::Similarity(jacobian, startingState.curvilinearError().matrix()), surface, side),
43  s);
44 }

References FreeTrajectoryState::curvilinearError(), FreeTrajectoryState::hasError(), AnalyticalCurvilinearJacobian::jacobian(), CurvilinearTrajectoryError::matrix(), GlobalTrajectoryParameters::momentum(), FreeTrajectoryState::parameters(), GlobalTrajectoryParameters::position(), alignCSCRings::s, Surface::side(), and UNLIKELY.

Referenced by RKPropagatorInS::propagateWithPath().

AnalyticalCurvilinearJacobian::jacobian
const AlgebraicMatrix55 & jacobian() const
Definition: AnalyticalCurvilinearJacobian.h:51
AnalyticalCurvilinearJacobian
Definition: AnalyticalCurvilinearJacobian.h:21
FreeTrajectoryState::hasError
bool hasError() const
Definition: FreeTrajectoryState.h:77
GlobalTrajectoryParameters::position
GlobalPoint position() const
Definition: GlobalTrajectoryParameters.h:60
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
alignCSCRings.s
s
Definition: alignCSCRings.py:92
FreeTrajectoryState::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition: FreeTrajectoryState.h:89
GlobalTrajectoryParameters::momentum
GlobalVector momentum() const
Definition: GlobalTrajectoryParameters.h:65
FreeTrajectoryState::parameters
const GlobalTrajectoryParameters & parameters() const
Definition: FreeTrajectoryState.h:79
CurvilinearTrajectoryError::matrix
const AlgebraicSymMatrix55 & matrix() const
Definition: CurvilinearTrajectoryError.h:61