00001 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h" 00002 using namespace reco; 00003 00004 GsfTrack::GsfTrack () 00005 { 00006 chargeMode_ = 0; 00007 momentumMode_ = Vector(0.,0.,0.); 00008 typedef unsigned int index; 00009 index idx = 0; 00010 for( index i = 0; i < dimensionMode; ++ i ) 00011 for( index j = 0; j <= i; ++ j ) 00012 covarianceMode_[ idx ++ ] = 0.; 00013 } 00014 00015 GsfTrack::GsfTrack( double chi2, double ndof, const Point & vertex, const Vector & momentum, int charge, 00016 const CovarianceMatrix & cov ) : 00017 Track( chi2, ndof, vertex, momentum, charge, cov ), 00018 chargeMode_(charge), momentumMode_(momentum) { 00019 typedef unsigned int index; 00020 index idx = 0; 00021 for( index i = 0; i < dimensionMode; ++ i ) 00022 for( index j = 0; j <= i; ++ j ) 00023 covarianceMode_[ idx ++ ] = cov(i,j); 00024 } 00025 00026 void 00027 GsfTrack::setMode (int chargeMode, const Vector& momentumMode, 00028 const CovarianceMatrixMode& covarianceMode) 00029 { 00030 chargeMode_ = chargeMode; 00031 momentumMode_ = momentumMode; 00032 typedef unsigned int index; 00033 index idx = 0; 00034 for( index i = 0; i < dimensionMode; ++ i ) 00035 for( index j = 0; j <= i; ++ j ) 00036 covarianceMode_[ idx ++ ] = covarianceMode(i,j); 00037 } 00038 00039 GsfTrack::CovarianceMatrixMode& 00040 GsfTrack::fill (CovarianceMatrixMode& v) const 00041 { 00042 typedef unsigned int index; 00043 index idx = 0; 00044 for( index i = 0; i < dimensionMode; ++ i ) 00045 for( index j = 0; j <= i; ++ j ) 00046 v( i, j ) = covarianceMode_[ idx ++ ]; 00047 return v; 00048 } 00049