File indexing completed on 2024-06-13 03:24:14
0001 #ifndef PerigeeConversions_H
0002 #define PerigeeConversions_H
0003
0004 #include "DataFormats/Math/interface/AlgebraicROOTObjects.h"
0005 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
0006 #include "TrackingTools/TrajectoryParametrization/interface/PerigeeTrajectoryParameters.h"
0007 #include "TrackingTools/TrajectoryParametrization/interface/PerigeeTrajectoryError.h"
0008 #include <optional>
0009
0010 class TrajectoryStateClosestToPoint;
0011
0012
0013
0014
0015
0016 namespace PerigeeConversions {
0017 typedef FreeTrajectoryState FTS;
0018
0019
0020
0021
0022 std::optional<PerigeeTrajectoryParameters> ftsToPerigeeParameters(const FTS& originalFTS,
0023 const GlobalPoint& referencePoint,
0024 double& pt);
0025
0026 PerigeeTrajectoryError ftsToPerigeeError(const FTS& originalFTS);
0027
0028
0029
0030
0031
0032 GlobalPoint positionFromPerigee(const PerigeeTrajectoryParameters& parameters, const GlobalPoint& referencePoint);
0033
0034
0035
0036
0037
0038
0039 GlobalVector momentumFromPerigee(const AlgebraicVector3& momentum,
0040 const TrackCharge& charge,
0041 const GlobalPoint& referencePoint,
0042 const MagneticField* field);
0043
0044
0045
0046
0047 GlobalVector momentumFromPerigee(const PerigeeTrajectoryParameters& parameters,
0048 double pt,
0049 const GlobalPoint& referencePoint);
0050
0051 CurvilinearTrajectoryError curvilinearError(const PerigeeTrajectoryError& perigeeError,
0052 const GlobalTrajectoryParameters& gtp);
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062 TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const AlgebraicVector3& momentum,
0063 const GlobalPoint& referencePoint,
0064 const TrackCharge& charge,
0065 const AlgebraicSymMatrix66& theCovarianceMatrix,
0066 const MagneticField* field);
0067
0068
0069
0070
0071
0072 AlgebraicMatrix66 jacobianParameters2Cartesian(const AlgebraicVector3& momentum,
0073 const GlobalPoint& position,
0074 const TrackCharge& charge,
0075 const MagneticField* field);
0076
0077
0078
0079
0080
0081
0082 AlgebraicMatrix55 jacobianCurvilinear2Perigee(const FreeTrajectoryState& fts);
0083
0084 AlgebraicMatrix55 jacobianPerigee2Curvilinear(const GlobalTrajectoryParameters& gtp);
0085
0086 }
0087
0088 #endif