00001 #include "DataFormats/GsfTrackReco/interface/GsfTrackExtra.h" 00002 using namespace reco; 00003 00004 GsfTrackExtra::GsfTrackExtra( const std::vector<GsfComponent5D>& outerStates, 00005 const double& outerLocalPzSign, 00006 const std::vector<GsfComponent5D>& innerStates, 00007 const double& innerLocalPzSign) : 00008 outerStates_(outerStates), positiveOuterStatePz_(outerLocalPzSign>0.), 00009 innerStates_(innerStates), positiveInnerStatePz_(innerLocalPzSign>0.) {} 00010 00011 std::vector<double> 00012 GsfTrackExtra::weights (const std::vector<GsfComponent5D>& states) const 00013 { 00014 std::vector<double> result(states.size()); 00015 std::vector<double>::iterator ir(result.begin()); 00016 for ( std::vector<GsfComponent5D>::const_iterator i=states.begin(); 00017 i!=states.end(); ++i ) { 00018 *(ir++) = (*i).weight(); 00019 } 00020 return result; 00021 } 00022 00023 std::vector<GsfTrackExtra::LocalParameterVector> 00024 GsfTrackExtra::parameters (const std::vector<GsfComponent5D>& states) const 00025 { 00026 std::vector<LocalParameterVector> result(states.size()); 00027 std::vector<LocalParameterVector>::iterator ir(result.begin()); 00028 for ( std::vector<GsfComponent5D>::const_iterator i=states.begin(); 00029 i!=states.end(); ++i ) { 00030 *(ir++) = (*i).parameters(); 00031 } 00032 return result; 00033 } 00034 00035 std::vector<GsfTrackExtra::LocalCovarianceMatrix> 00036 GsfTrackExtra::covariances (const std::vector<GsfComponent5D>& states) const 00037 { 00038 std::vector<LocalCovarianceMatrix> result(states.size()); 00039 std::vector<LocalCovarianceMatrix>::iterator ir(result.begin()); 00040 for ( std::vector<GsfComponent5D>::const_iterator i=states.begin(); 00041 i!=states.end(); ++i ) { 00042 (*i).covariance(*(ir++)); 00043 } 00044 return result; 00045 }