CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions | Private Attributes

reco::GhostTrackPrediction Class Reference

#include <GhostTrackPrediction.h>

List of all members.

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 (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 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.

{}
reco::GhostTrackPrediction::GhostTrackPrediction ( const Vector prediction,
const Error error 
) [inline]

Definition at line 33 of file GhostTrackPrediction.h.

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()))
{
}

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::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]
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]
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().

{ return -std::log(rho() - cotTheta()); }
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]
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]
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().

{ return std::sqrt(rho2()); }
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().

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

Definition at line 61 of file GhostTrackPrediction.h.

References cotTheta(), and M_PI_2.

{ return M_PI_2 - std::atan(cotTheta()); }
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]; }

Member Data Documentation

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().