Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:30

0001 #ifndef MultiGaussianStateTransform_H
0002 #define MultiGaussianStateTransform_H
0003 
0004 /** Extracts innermost and  outermost states from a GsfTrack
0005  *  in form of a MultiGaussianState */
0006 
0007 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
0008 #include "DataFormats/GsfTrackReco/interface/GsfTrackExtra.h"
0009 
0010 #include "TrackingTools/GsfTools/interface/MultiGaussianState.h"
0011 
0012 #include <vector>
0013 
0014 class MultiGaussianState1D;
0015 class TrajectoryStateOnSurface;
0016 
0017 namespace MultiGaussianStateTransform {
0018 
0019   enum { N = reco::GsfTrackExtra::dimension };
0020 
0021   /** Construct a MultiGaussianState from the reco::GsfTrack 
0022    *  innermost state (local parameters) */
0023   MultiGaussianState<N> innerMultiState(const reco::GsfTrack& tk);
0024   /** Construct a MultiGaussianState from the reco::GsfTrack 
0025    *  innermost state (local parameters) */
0026   MultiGaussianState<N> outerMultiState(const reco::GsfTrack& tk);
0027   /** Construct a MultiGaussianState1D for the local parameter corresponding
0028    *  to "index" (0<=index<5) from the reco::GsfTrack innermost state */
0029   MultiGaussianState1D innerMultiState1D(const reco::GsfTrack& tk, unsigned int index);
0030   /** Construct a MultiGaussianState1D for the local parameter corresponding
0031    *  to "index" (0<=index<5) from the reco::GsfTrack outermost state */
0032   MultiGaussianState1D outerMultiState1D(const reco::GsfTrack& tk, unsigned int index);
0033 
0034   /** Construct a MultiGaussianState from the vectors of parameters,
0035    *  covariances and weights */
0036   MultiGaussianState<N> multiState(const std::vector<MultiGaussianState<N>::Vector>&,
0037                                    const std::vector<MultiGaussianState<N>::Matrix>&,
0038                                    const std::vector<double>&);
0039   /** Construct a MultiGaussianState1D from the vectors of parameters,
0040    *  covariances and weights */
0041   MultiGaussianState1D multiState1D(const std::vector<MultiGaussianState<N>::Vector>&,
0042                                     const std::vector<MultiGaussianState<N>::Matrix>&,
0043                                     const std::vector<double>&,
0044                                     unsigned int);
0045 
0046   /** Construct a MultiGaussianState from a TrajectoryStateOnSurface
0047    *  (local parameters) */
0048   MultiGaussianState<5> multiState(const TrajectoryStateOnSurface);
0049   /** Construct a MultiGaussianState1D from a TrajectoryStateOnSurface
0050    *  (local parameters) */
0051   MultiGaussianState1D multiState1D(const TrajectoryStateOnSurface, unsigned int);
0052   /** Construct a TrajectoryStateOnSurface from a 5D SingleGaussianState
0053    *  (local parameters) and a reference TSOS (surface, charge, ..) */
0054   TrajectoryStateOnSurface tsosFromSingleState(const SingleGaussianState<5>&, const TrajectoryStateOnSurface);
0055 
0056 }  // namespace MultiGaussianStateTransform
0057 
0058 #endif