#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 Error & | covariance () const |
CurvilinearTrajectoryError | curvilinearError () const |
CurvilinearTrajectoryParameters | curvilinearTrajectory () const |
const GlobalVector | direction () const |
double | eta () const |
FreeTrajectoryState | fts (const MagneticField *fieldProvider) const |
GhostTrackPrediction (const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, const GlobalError &directionError) | |
GhostTrackPrediction () | |
GhostTrackPrediction (const Vector &prediction, const Error &error) | |
GhostTrackPrediction (const CurvilinearTrajectoryParameters &trajectory, const CurvilinearTrajectoryError &error) | |
GhostTrackPrediction (const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, double coneRadius) | |
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 Vector & | prediction () 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_ |
Definition at line 22 of file GhostTrackPrediction.h.
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.
reco::GhostTrackPrediction::GhostTrackPrediction | ( | ) | [inline] |
Definition at line 32 of file GhostTrackPrediction.h.
{}
reco::GhostTrackPrediction::GhostTrackPrediction | ( | const Vector & | prediction, |
const Error & | error | ||
) | [inline] |
Definition at line 33 of file GhostTrackPrediction.h.
: prediction_(prediction), covariance_(error) {}
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.
{ double dTheta = std::cosh((double)direction.eta()) * coneRadius; double r2 = direction.mag2(); double r = std::sqrt(r2); double perp = direction.perp(); double P = direction.x() / perp; double p = direction.y() / perp; double T = direction.z() / r; double t = perp / r; double h2 = dTheta * dTheta; double d2 = coneRadius * coneRadius; GlobalError cov(r2 * (T*T * P*P * h2 + t*t * p*p * d2), r2 * p*P * (T*T * h2 - t*t * d2), r2 * (T*T * p*p * h2 + t*t * P*P * d2), -r2 * t*T * P * h2, -r2 * t*T * p * h2, r2 * t*t * h2); init(priorPosition, priorError, direction, cov); }
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().
{ init(priorPosition, priorError, direction, directionError); }
GhostTrackPrediction::GhostTrackPrediction | ( | const CurvilinearTrajectoryParameters & | trajectory, |
const CurvilinearTrajectoryError & | error | ||
) |
Definition at line 137 of file GhostTrackPrediction.cc.
: prediction_(convert(trajectory)), covariance_(convert(prediction_, error)) { }
GhostTrackPrediction::GhostTrackPrediction | ( | const GlobalTrajectoryParameters & | trajectory, |
const CurvilinearTrajectoryError & | error | ||
) |
Definition at line 145 of file GhostTrackPrediction.cc.
: prediction_(convert(trajectory)), covariance_(convert(prediction_, error)) { }
GhostTrackPrediction::GhostTrackPrediction | ( | const Track & | track | ) |
Definition at line 153 of file GhostTrackPrediction.cc.
: prediction_(convert( GlobalTrajectoryParameters( GlobalPoint(track.vx(), track.vy(), track.vz()), GlobalVector(track.px(), track.py(), track.pz()), 0, 0))), covariance_(convert(prediction_, track.covariance())) { }
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::TrackGhostTrackState::vertexStateOnGhostTrack(), reco::VertexGhostTrackState::vertexStateOnGhostTrack(), and reco::TrackGhostTrackState::vertexStateOnMeasurement().
{ using namespace ROOT::Math; double x = std::cos(phi()); double y = std::sin(phi()); Matrix64 jacobian; jacobian(0, 1) = -y; jacobian(0, 3) = -y * lambda - x * ip(); jacobian(1, 1) = x; jacobian(1, 3) = x * lambda - y * ip(); jacobian(2, 0) = 1.; jacobian(2, 2) = lambda; jacobian(3, 3) = -y; jacobian(4, 3) = x; jacobian(5, 2) = 1.; return Similarity(jacobian, covariance()); }
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().
{ return prediction_[2]; }
const Error& reco::GhostTrackPrediction::covariance | ( | void | ) | const [inline] |
Definition at line 65 of file GhostTrackPrediction.h.
References covariance_.
Referenced by cartesianError(), curvilinearError(), positionError(), and reco::KalmanGhostTrackUpdater::update().
{ return covariance_; }
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().
{ double rho2I = 1. / rho2(); double rhoI = std::sqrt(rho2I); Matrix54 jacobian; jacobian(1, 2) = rho2I; jacobian(2, 3) = 1.; jacobian(3, 1) = 1.; jacobian(4, 0) = rhoI; jacobian(4, 2) = - z() * rhoI * cotTheta() * rho2I; AlgebraicSymMatrix55 err = Similarity(jacobian, covariance()); err(0, 0) = 1.; return CurvilinearTrajectoryError(err); }
CurvilinearTrajectoryParameters GhostTrackPrediction::curvilinearTrajectory | ( | ) | const |
Definition at line 203 of file GhostTrackPrediction.cc.
References cotTheta(), ip(), phi(), and sz().
{ return CurvilinearTrajectoryParameters(0., std::atan(cotTheta()), phi(), ip(), sz(), false); }
const GlobalVector reco::GhostTrackPrediction::direction | ( | ) | const [inline] |
Definition at line 69 of file GhostTrackPrediction.h.
References funct::cos(), cotTheta(), phi(), and funct::sin().
Referenced by reco::GhostTrackState::axisDistance(), globalTrajectory(), lambda(), reco::GhostTrackState::lambdaError(), reco::TrackGhostTrackState::linearize(), position(), TrackIPProducer::produce(), track(), reco::TrackGhostTrackState::vertexStateOnGhostTrack(), reco::VertexGhostTrackState::vertexStateOnGhostTrack(), and reco::TrackGhostTrackState::vertexStateOnMeasurement().
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().
FreeTrajectoryState GhostTrackPrediction::fts | ( | const MagneticField * | fieldProvider | ) | const |
Definition at line 234 of file GhostTrackPrediction.cc.
References curvilinearError(), and globalTrajectory().
Referenced by transientGhostTrack().
{ return FreeTrajectoryState(globalTrajectory(fieldProvider), curvilinearError()); }
GlobalTrajectoryParameters GhostTrackPrediction::globalTrajectory | ( | const MagneticField * | fieldProvider | ) | const |
Definition at line 209 of file GhostTrackPrediction.cc.
References direction(), and origin().
Referenced by fts().
{ return GlobalTrajectoryParameters(origin(), direction(), 0, fieldProvider); }
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().
{ using namespace ROOT::Math; double perp2 = direction.perp2(); GlobalVector dir = direction / std::sqrt(perp2); double tip = priorPosition.y() * dir.x() - priorPosition.x() * dir.y(); double l = priorPosition.x() * dir.x() + priorPosition.y() * dir.y(); prediction_[0] = priorPosition.z() - dir.z() * l; prediction_[1] = tip; prediction_[2] = dir.z(); prediction_[3] = dir.phi(); Matrix46 jacobian; jacobian(0, 0) = -dir.x() * dir.z(); jacobian(1, 0) = -dir.y(); jacobian(0, 1) = -dir.y() * dir.z(); jacobian(1, 1) = dir.x(); jacobian(0, 2) = 1.; jacobian(0, 3) = -dir.z() * priorPosition.x(); jacobian(1, 3) = priorPosition.y(); jacobian(3, 3) = -dir.y(); jacobian(0, 4) = -dir.z() * priorPosition.y(); jacobian(1, 4) = -priorPosition.x(); jacobian(3, 4) = dir.x(); jacobian(0, 5) = -l; jacobian(2, 5) = 1.; Matrix6S origCov; origCov.Place_at(priorError.matrix_new(), 0, 0); origCov.Place_at(directionError.matrix_new() / perp2, 3, 3); covariance_ = Similarity(jacobian, origCov); }
double reco::GhostTrackPrediction::ip | ( | ) | const [inline] |
Definition at line 54 of file GhostTrackPrediction.h.
References prediction_.
Referenced by cartesianError(), curvilinearTrajectory(), origin(), positionError(), and reco::SequentialGhostTrackFitter::stable().
{ return prediction_[1]; }
double reco::GhostTrackPrediction::lambda | ( | const GlobalPoint & | point | ) | const [inline] |
Definition at line 72 of file GhostTrackPrediction.h.
References direction(), origin(), and rho2().
Referenced by cartesianError(), reco::GhostTrackFitter::fit(), reco::PositiveSideGhostTrackFitter::fit(), reco::GhostTrack::GhostTrack(), position(), positionError(), TrackIPProducer::produce(), and reco::GhostTrackVertexFinder::reassignTracks().
const GlobalPoint reco::GhostTrackPrediction::origin | ( | ) | const [inline] |
Definition at line 67 of file GhostTrackPrediction.h.
References funct::cos(), ip(), phi(), funct::sin(), and z().
Referenced by reco::GhostTrackState::axisDistance(), globalTrajectory(), lambda(), reco::TrackGhostTrackState::linearize(), position(), track(), reco::TrackGhostTrackState::vertexStateOnGhostTrack(), reco::VertexGhostTrackState::vertexStateOnGhostTrack(), and reco::TrackGhostTrackState::vertexStateOnMeasurement().
double reco::GhostTrackPrediction::phi | ( | void | ) | const [inline] |
Definition at line 56 of file GhostTrackPrediction.h.
References prediction_.
Referenced by cartesianError(), curvilinearTrajectory(), direction(), origin(), positionError(), and reco::SequentialGhostTrackFitter::stable().
{ return prediction_[3]; }
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().
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().
{ using namespace ROOT::Math; double x = std::cos(phi()); double y = std::sin(phi()); Matrix34 jacobian; jacobian(0, 1) = -y; jacobian(0, 3) = -y * lambda - x * ip(); jacobian(1, 1) = x; jacobian(1, 3) = x * lambda - y * ip(); jacobian(2, 0) = 1.; jacobian(2, 2) = lambda; return Similarity(jacobian, covariance()); }
const Vector& reco::GhostTrackPrediction::prediction | ( | ) | const [inline] |
Definition at line 64 of file GhostTrackPrediction.h.
References prediction_.
Referenced by TrackIPProducer::produce(), and reco::KalmanGhostTrackUpdater::update().
{ return prediction_; }
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().
double reco::GhostTrackPrediction::rho2 | ( | ) | const [inline] |
Definition at line 58 of file GhostTrackPrediction.h.
References cotTheta().
Referenced by curvilinearError(), lambda(), reco::GhostTrackState::lambdaError(), reco::TrackGhostTrackState::linearize(), rho(), reco::TrackGhostTrackState::vertexStateOnGhostTrack(), reco::VertexGhostTrackState::vertexStateOnGhostTrack(), and reco::TrackGhostTrackState::vertexStateOnMeasurement().
double reco::GhostTrackPrediction::sz | ( | ) | const [inline] |
Definition at line 60 of file GhostTrackPrediction.h.
Referenced by curvilinearTrajectory(), and reco::SequentialGhostTrackFitter::stable().
double reco::GhostTrackPrediction::theta | ( | ) | const [inline] |
Definition at line 61 of file GhostTrackPrediction.h.
References cotTheta(), and 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().
{ GlobalPoint origin = this->origin(); GlobalVector dir = direction().unit(); Track::Point point(origin.x(), origin.y(), origin.z()); Track::Vector vector(dir.x(), dir.y(), dir.z()); return Track(chi2, ndof, point, vector, 0, curvilinearError()); }
double reco::GhostTrackPrediction::z | ( | ) | const [inline] |
Definition at line 53 of file GhostTrackPrediction.h.
References prediction_.
Referenced by curvilinearError(), origin(), and sz().
{ return prediction_[0]; }
Error reco::GhostTrackPrediction::covariance_ [private] |
Definition at line 97 of file GhostTrackPrediction.h.
Referenced by covariance(), and init().
Definition at line 96 of file GhostTrackPrediction.h.
Referenced by cotTheta(), init(), ip(), phi(), prediction(), and z().