File indexing completed on 2024-04-06 12:04:16
0001 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
0002 using namespace reco;
0003
0004 GsfTrack::GsfTrack() {
0005 chargeMode_ = 0;
0006 momentumMode_ = Vector(0., 0., 0.);
0007 typedef unsigned int index;
0008 index idx = 0;
0009 for (index i = 0; i < dimensionMode; ++i)
0010 for (index j = 0; j <= i; ++j)
0011 covarianceMode_[idx++] = 0.;
0012 }
0013
0014 GsfTrack::GsfTrack(
0015 double chi2, double ndof, const Point& vertex, const Vector& momentum, int charge, const CovarianceMatrix& cov)
0016 : Track(chi2, ndof, vertex, momentum, charge, cov), chargeMode_(charge), momentumMode_(momentum) {
0017 typedef unsigned int index;
0018 index idx = 0;
0019 for (index i = 0; i < dimensionMode; ++i)
0020 for (index j = 0; j <= i; ++j)
0021 covarianceMode_[idx++] = cov(i, j);
0022 }
0023
0024 void GsfTrack::setMode(int chargeMode, const Vector& momentumMode, const CovarianceMatrixMode& covarianceMode) {
0025 chargeMode_ = chargeMode;
0026 momentumMode_ = momentumMode;
0027 typedef unsigned int index;
0028 index idx = 0;
0029 for (index i = 0; i < dimensionMode; ++i)
0030 for (index j = 0; j <= i; ++j)
0031 covarianceMode_[idx++] = covarianceMode(i, j);
0032 }
0033
0034 GsfTrack::CovarianceMatrixMode& GsfTrack::fill(CovarianceMatrixMode& v) const {
0035 typedef unsigned int index;
0036 index idx = 0;
0037 for (index i = 0; i < dimensionMode; ++i)
0038 for (index j = 0; j <= i; ++j)
0039 v(i, j) = covarianceMode_[idx++];
0040 return v;
0041 }