00001 #ifndef MultiGaussianStateTransform_H 00002 #define MultiGaussianStateTransform_H 00003 00007 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h" 00008 #include "DataFormats/GsfTrackReco/interface/GsfTrackExtra.h" 00009 00010 #include "TrackingTools/GsfTools/interface/MultiGaussianState.h" 00011 00012 #include <vector> 00013 00014 class MultiGaussianState1D; 00015 class TrajectoryStateOnSurface; 00016 00017 namespace MultiGaussianStateTransform { 00018 00019 enum { N = reco::GsfTrackExtra::dimension }; 00020 00021 00024 MultiGaussianState<N> innerMultiState ( const reco::GsfTrack& tk); 00027 MultiGaussianState<N> outerMultiState ( const reco::GsfTrack& tk); 00030 MultiGaussianState1D innerMultiState1D ( const reco::GsfTrack& tk, unsigned int index); 00033 MultiGaussianState1D outerMultiState1D ( const reco::GsfTrack& tk, unsigned int index); 00034 00037 MultiGaussianState<N> multiState (const std::vector<MultiGaussianState<N>::Vector>&, 00038 const std::vector<MultiGaussianState<N>::Matrix>&, 00039 const std::vector<double>&); 00042 MultiGaussianState1D multiState1D (const std::vector<MultiGaussianState<N>::Vector>&, 00043 const std::vector<MultiGaussianState<N>::Matrix>&, 00044 const std::vector<double>&, 00045 unsigned int); 00046 00049 MultiGaussianState<5> multiState (const TrajectoryStateOnSurface ); 00052 MultiGaussianState1D multiState1D (const TrajectoryStateOnSurface, 00053 unsigned int); 00056 TrajectoryStateOnSurface tsosFromSingleState (const SingleGaussianState<5>&, 00057 const TrajectoryStateOnSurface); 00058 00059 } 00060 00061 #endif