CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
reco::GhostTrackPrediction Class Reference

#include <GhostTrackPrediction.h>

Public Types

typedef ROOT::Math::SMatrix
< double,
6, 6, ROOT::Math::MatRepSym
< double, 6 > > 
CartesianError
 
typedef ROOT::Math::SMatrix
< double,
4, 4, ROOT::Math::MatRepSym
< double, 4 > > 
Error
 
typedef ROOT::Math::SVector
< double, 4 > 
Vector
 

Public Member Functions

CartesianError cartesianError (double lambda=0.) const
 
double cotTheta () const
 
const Errorcovariance () const
 
CurvilinearTrajectoryError curvilinearError () const
 
CurvilinearTrajectoryParameters curvilinearTrajectory () const
 
const GlobalVector direction () const
 
double eta () const
 
FreeTrajectoryState fts (const MagneticField *fieldProvider) const
 
 GhostTrackPrediction ()
 
 GhostTrackPrediction (const Vector &prediction, const Error &error)
 
 GhostTrackPrediction (const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, double coneRadius)
 
 GhostTrackPrediction (const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, const GlobalError &directionError)
 
 GhostTrackPrediction (const CurvilinearTrajectoryParameters &trajectory, const CurvilinearTrajectoryError &error)
 
 GhostTrackPrediction (const GlobalTrajectoryParameters &trajectory, const CurvilinearTrajectoryError &error)
 
 GhostTrackPrediction (const Track &track)
 
GlobalTrajectoryParameters globalTrajectory (const MagneticField *fieldProvider) const
 
double ip () const
 
double lambda (const GlobalPoint &point) const
 
const GlobalPoint origin () const
 
double phi () const
 
GlobalPoint position (double lambda=0.) const
 
GlobalError positionError (double lambda=0.) const
 
const Vectorprediction () const
 
double rho () const
 
double rho2 () const
 
double sz () const
 
double theta () const
 
Track track (double ndof=0., double chi2=0.) const
 
double z () const
 

Private Member Functions

void init (const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, const GlobalError &directionError)
 

Private Attributes

Error covariance_
 
Vector prediction_
 

Detailed Description

Definition at line 22 of file GhostTrackPrediction.h.

Member Typedef Documentation

typedef ROOT::Math::SMatrix<double, 6, 6, ROOT::Math::MatRepSym<double, 6> > reco::GhostTrackPrediction::CartesianError

Definition at line 30 of file GhostTrackPrediction.h.

typedef ROOT::Math::SMatrix<double, 4, 4, ROOT::Math::MatRepSym<double, 4> > reco::GhostTrackPrediction::Error

Definition at line 28 of file GhostTrackPrediction.h.

typedef ROOT::Math::SVector<double, 4> reco::GhostTrackPrediction::Vector

Definition at line 26 of file GhostTrackPrediction.h.

Constructor & Destructor Documentation

reco::GhostTrackPrediction::GhostTrackPrediction ( )
inline

Definition at line 32 of file GhostTrackPrediction.h.

32 {}
reco::GhostTrackPrediction::GhostTrackPrediction ( const Vector prediction,
const Error error 
)
inline
GhostTrackPrediction::GhostTrackPrediction ( const GlobalPoint priorPosition,
const GlobalError priorError,
const GlobalVector direction,
double  coneRadius 
)

Definition at line 109 of file GhostTrackPrediction.cc.

References init(), P, L1TEmulatorMonitor_cff::p, perp(), csvReporter::r, mathSSE::sqrt(), and matplotRender::t.

114 {
115  double dTheta = std::cosh((double)direction.eta()) * coneRadius;
116 
117  double r2 = direction.mag2();
118  double r = std::sqrt(r2);
119  double perp = direction.perp();
120  double P = direction.x() / perp;
121  double p = direction.y() / perp;
122  double T = direction.z() / r;
123  double t = perp / r;
124  double h2 = dTheta * dTheta;
125  double d2 = coneRadius * coneRadius;
126 
127  GlobalError cov(r2 * (T*T * P*P * h2 + t*t * p*p * d2),
128  r2 * p*P * (T*T * h2 - t*t * d2),
129  r2 * (T*T * p*p * h2 + t*t * P*P * d2),
130  -r2 * t*T * P * h2,
131  -r2 * t*T * p * h2,
132  r2 * t*t * h2);
133 
134  init(priorPosition, priorError, direction, cov);
135 }
T mag2() const
Definition: PV3DBase.h:60
T perp() const
Definition: PV3DBase.h:66
T y() const
Definition: PV3DBase.h:57
#define P
T sqrt(T t)
Definition: SSEVec.h:28
T z() const
Definition: PV3DBase.h:58
void init(const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, const GlobalError &directionError)
T eta() const
Definition: PV3DBase.h:70
T perp() const
Magnitude of transverse component.
long double T
T x() const
Definition: PV3DBase.h:56
reco::GhostTrackPrediction::GhostTrackPrediction ( const GlobalPoint priorPosition,
const GlobalError priorError,
const GlobalVector direction,
const GlobalError directionError 
)
inline

Definition at line 41 of file GhostTrackPrediction.h.

References init().

45  { init(priorPosition, priorError, direction, directionError); }
void init(const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, const GlobalError &directionError)
GhostTrackPrediction::GhostTrackPrediction ( const CurvilinearTrajectoryParameters trajectory,
const CurvilinearTrajectoryError error 
)

Definition at line 137 of file GhostTrackPrediction.cc.

139  :
140  prediction_(convert(trajectory)),
142 {
143 }
void convert(uint32 i, char_uint32 v)
Definition: MsgTools.h:46
GhostTrackPrediction::GhostTrackPrediction ( const GlobalTrajectoryParameters trajectory,
const CurvilinearTrajectoryError error 
)

Definition at line 145 of file GhostTrackPrediction.cc.

147  :
148  prediction_(convert(trajectory)),
150 {
151 }
void convert(uint32 i, char_uint32 v)
Definition: MsgTools.h:46
GhostTrackPrediction::GhostTrackPrediction ( const Track track)

Definition at line 153 of file GhostTrackPrediction.cc.

153  :
156  GlobalPoint(track.vx(), track.vy(), track.vz()),
157  GlobalVector(track.px(), track.py(), track.pz()),
158  0, 0))),
160 {
161 }
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:133
void convert(uint32 i, char_uint32 v)
Definition: MsgTools.h:46
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:182
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:137
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:147
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:145
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:135
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:143
Global3DVector GlobalVector
Definition: GlobalVector.h:10

Member Function Documentation

Matrix6S GhostTrackPrediction::cartesianError ( double  lambda = 0.) const

Definition at line 181 of file GhostTrackPrediction.cc.

References funct::cos(), covariance(), ip(), lambda(), phi(), funct::sin(), x, and detailsBasic3DVector::y.

Referenced by reco::VertexGhostTrackState::vertexStateOnGhostTrack(), reco::TrackGhostTrackState::vertexStateOnGhostTrack(), and reco::TrackGhostTrackState::vertexStateOnMeasurement().

182 {
183  using namespace ROOT::Math;
184 
185  double x = std::cos(phi());
186  double y = std::sin(phi());
187 
188  Matrix64 jacobian;
189  jacobian(0, 1) = -y;
190  jacobian(0, 3) = -y * lambda - x * ip();
191  jacobian(1, 1) = x;
192  jacobian(1, 3) = x * lambda - y * ip();
193  jacobian(2, 0) = 1.;
194  jacobian(2, 2) = lambda;
195  jacobian(3, 3) = -y;
196  jacobian(4, 3) = x;
197  jacobian(5, 2) = 1.;
198 
199  return Similarity(jacobian, covariance());
200 }
double lambda(const GlobalPoint &point) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
const Error & covariance() const
Definition: DDAxes.h:10
double reco::GhostTrackPrediction::cotTheta ( ) const
inline

Definition at line 55 of file GhostTrackPrediction.h.

References prediction_.

Referenced by curvilinearError(), curvilinearTrajectory(), direction(), eta(), rho2(), and theta().

55 { return prediction_[2]; }
const Error& reco::GhostTrackPrediction::covariance ( void  ) const
inline
CurvilinearTrajectoryError GhostTrackPrediction::curvilinearError ( ) const

Definition at line 216 of file GhostTrackPrediction.cc.

References cotTheta(), covariance(), rho2(), mathSSE::sqrt(), and z().

Referenced by fts(), and track().

217 {
218  double rho2I = 1. / rho2();
219  double rhoI = std::sqrt(rho2I);
220 
221  Matrix54 jacobian;
222  jacobian(1, 2) = rho2I;
223  jacobian(2, 3) = 1.;
224  jacobian(3, 1) = 1.;
225  jacobian(4, 0) = rhoI;
226  jacobian(4, 2) = - z() * rhoI * cotTheta() * rho2I;
227 
228  AlgebraicSymMatrix55 err = Similarity(jacobian, covariance());
229  err(0, 0) = 1.;
230 
231  return CurvilinearTrajectoryError(err);
232 }
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
T sqrt(T t)
Definition: SSEVec.h:28
const Error & covariance() const
CurvilinearTrajectoryParameters GhostTrackPrediction::curvilinearTrajectory ( ) const

Definition at line 203 of file GhostTrackPrediction.cc.

References cotTheta(), ip(), phi(), and sz().

const GlobalVector reco::GhostTrackPrediction::direction ( ) const
inline
double reco::GhostTrackPrediction::eta ( void  ) const
inline

Definition at line 62 of file GhostTrackPrediction.h.

References cotTheta(), funct::log(), and rho().

Referenced by reco::SequentialGhostTrackFitter::stable().

62 { return -std::log(rho() - cotTheta()); }
Log< T >::type log(const T &t)
Definition: Log.h:22
FreeTrajectoryState GhostTrackPrediction::fts ( const MagneticField fieldProvider) const

Definition at line 234 of file GhostTrackPrediction.cc.

References curvilinearError(), and globalTrajectory().

Referenced by transientGhostTrack().

236 {
237  return FreeTrajectoryState(globalTrajectory(fieldProvider),
238  curvilinearError());
239 }
GlobalTrajectoryParameters globalTrajectory(const MagneticField *fieldProvider) const
CurvilinearTrajectoryError curvilinearError() const
GlobalTrajectoryParameters GhostTrackPrediction::globalTrajectory ( const MagneticField fieldProvider) const

Definition at line 209 of file GhostTrackPrediction.cc.

References direction(), and origin().

Referenced by fts().

211 {
213  0, fieldProvider);
214 }
const GlobalPoint origin() const
const GlobalVector direction() const
void GhostTrackPrediction::init ( const GlobalPoint priorPosition,
const GlobalError priorError,
const GlobalVector direction,
const GlobalError directionError 
)
private

Definition at line 69 of file GhostTrackPrediction.cc.

References covariance_, dir, prof2calltree::l, GlobalErrorBase< T, ErrorWeightType >::matrix_new(), perp2(), prediction_, and mathSSE::sqrt().

Referenced by GhostTrackPrediction().

74 {
75  using namespace ROOT::Math;
76 
77  double perp2 = direction.perp2();
78  GlobalVector dir = direction / std::sqrt(perp2);
79  double tip = priorPosition.y() * dir.x() - priorPosition.x() * dir.y();
80  double l = priorPosition.x() * dir.x() + priorPosition.y() * dir.y();
81 
82  prediction_[0] = priorPosition.z() - dir.z() * l;
83  prediction_[1] = tip;
84  prediction_[2] = dir.z();
85  prediction_[3] = dir.phi();
86 
87  Matrix46 jacobian;
88  jacobian(0, 0) = -dir.x() * dir.z();
89  jacobian(1, 0) = -dir.y();
90  jacobian(0, 1) = -dir.y() * dir.z();
91  jacobian(1, 1) = dir.x();
92  jacobian(0, 2) = 1.;
93  jacobian(0, 3) = -dir.z() * priorPosition.x();
94  jacobian(1, 3) = priorPosition.y();
95  jacobian(3, 3) = -dir.y();
96  jacobian(0, 4) = -dir.z() * priorPosition.y();
97  jacobian(1, 4) = -priorPosition.x();
98  jacobian(3, 4) = dir.x();
99  jacobian(0, 5) = -l;
100  jacobian(2, 5) = 1.;
101 
102  Matrix6S origCov;
103  origCov.Place_at(priorError.matrix_new(), 0, 0);
104  origCov.Place_at(directionError.matrix_new() / perp2, 3, 3);
105 
106  covariance_ = Similarity(jacobian, origCov);
107 }
T y() const
Definition: PV3DBase.h:57
T perp2() const
Definition: PV3DBase.h:65
const AlgebraicSymMatrix33 & matrix_new() const
T sqrt(T t)
Definition: SSEVec.h:28
T z() const
Definition: PV3DBase.h:58
T perp2() const
Squared magnitude of transverse component.
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:56
double reco::GhostTrackPrediction::ip ( ) const
inline
double reco::GhostTrackPrediction::lambda ( const GlobalPoint point) const
inline
const GlobalPoint reco::GhostTrackPrediction::origin ( ) const
inline
double reco::GhostTrackPrediction::phi ( void  ) const
inline
GlobalPoint reco::GhostTrackPrediction::position ( double  lambda = 0.) const
inline

Definition at line 75 of file GhostTrackPrediction.h.

References direction(), lambda(), and origin().

Referenced by reco::TrackGhostTrackState::linearize(), TrackIPProducer::produce(), and vertexAtState().

76  { return origin() + lambda * direction(); }
const GlobalPoint origin() const
double lambda(const GlobalPoint &point) const
const GlobalVector direction() const
GlobalError GhostTrackPrediction::positionError ( double  lambda = 0.) const

Definition at line 163 of file GhostTrackPrediction.cc.

References funct::cos(), covariance(), ip(), lambda(), phi(), funct::sin(), x, and detailsBasic3DVector::y.

Referenced by TrackIPProducer::produce(), and vertexAtState().

164 {
165  using namespace ROOT::Math;
166 
167  double x = std::cos(phi());
168  double y = std::sin(phi());
169 
170  Matrix34 jacobian;
171  jacobian(0, 1) = -y;
172  jacobian(0, 3) = -y * lambda - x * ip();
173  jacobian(1, 1) = x;
174  jacobian(1, 3) = x * lambda - y * ip();
175  jacobian(2, 0) = 1.;
176  jacobian(2, 2) = lambda;
177 
178  return Similarity(jacobian, covariance());
179 }
double lambda(const GlobalPoint &point) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
const Error & covariance() const
Definition: DDAxes.h:10
const Vector& reco::GhostTrackPrediction::prediction ( ) const
inline
double reco::GhostTrackPrediction::rho ( ) const
inline

Definition at line 59 of file GhostTrackPrediction.h.

References rho2(), and mathSSE::sqrt().

Referenced by eta(), reco::PositiveSideGhostTrackFitter::fit(), and sz().

59 { return std::sqrt(rho2()); }
T sqrt(T t)
Definition: SSEVec.h:28
double reco::GhostTrackPrediction::rho2 ( ) const
inline
double reco::GhostTrackPrediction::sz ( ) const
inline

Definition at line 60 of file GhostTrackPrediction.h.

References rho(), and z().

Referenced by curvilinearTrajectory(), and reco::SequentialGhostTrackFitter::stable().

60 { return z() / rho(); }
double reco::GhostTrackPrediction::theta ( ) const
inline

Definition at line 61 of file GhostTrackPrediction.h.

References cotTheta(), and M_PI_2.

61 { return M_PI_2 - std::atan(cotTheta()); }
#define M_PI_2
Track GhostTrackPrediction::track ( double  ndof = 0.,
double  chi2 = 0. 
) const

Definition at line 241 of file GhostTrackPrediction.cc.

References curvilinearError(), dir, direction(), origin(), and point.

Referenced by reco::GhostTrack::operator Track().

242 {
243  GlobalPoint origin = this->origin();
244  GlobalVector dir = direction().unit();
245 
246  Track::Point point(origin.x(), origin.y(), origin.z());
247  Track::Vector vector(dir.x(), dir.y(), dir.z());
248 
249  return Track(chi2, ndof, point, vector, 0, curvilinearError());
250 }
const GlobalPoint origin() const
T y() const
Definition: PV3DBase.h:57
T z() const
Definition: PV3DBase.h:58
math::XYZPoint Point
point in the space
Definition: TrackBase.h:76
CurvilinearTrajectoryError curvilinearError() const
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:56
math::XYZVector Vector
spatial vector
Definition: TrackBase.h:74
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
const GlobalVector direction() const
double reco::GhostTrackPrediction::z ( ) const
inline

Definition at line 53 of file GhostTrackPrediction.h.

References prediction_.

Referenced by curvilinearError(), origin(), geometryXMLparser.Alignable::pos(), and sz().

53 { return prediction_[0]; }

Member Data Documentation

Error reco::GhostTrackPrediction::covariance_
private

Definition at line 97 of file GhostTrackPrediction.h.

Referenced by covariance(), and init().

Vector reco::GhostTrackPrediction::prediction_
private

Definition at line 96 of file GhostTrackPrediction.h.

Referenced by cotTheta(), init(), ip(), phi(), prediction(), and z().