00001 #ifndef PFGsfHelper_H 00002 #define PFGsfHelper_H 00003 00004 #include "RecoParticleFlow/PFTracking/interface/PFGeometry.h" 00005 #include "DataFormats/GeometrySurface/interface/Surface.h" 00006 #include "FWCore/Framework/interface/Frameworkfwd.h" 00007 #include "FWCore/Framework/interface/EventSetup.h" 00008 #include "FWCore/Framework/interface/Event.h" 00009 #include "FWCore/Framework/interface/MakerMacros.h" 00010 #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h" 00011 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00012 00013 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00014 #include "DataFormats/GeometryVector/interface/GlobalVector.h" 00015 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00016 #include "TrackingTools/GsfTools/interface/MultiGaussianStateTransform.h" 00017 00018 00020 00030 class TrajectoryMeasurement; 00031 class PFGsfHelper{ 00032 00033 public: 00034 PFGsfHelper ( const TrajectoryMeasurement&); 00035 ~PFGsfHelper(); 00036 00037 GlobalVector computeP(bool ComputeMode) const; 00038 bool isValid () const; 00039 double fittedDP () const; 00040 double sigmafittedDP() const; 00041 00042 private: 00043 00044 void computeQpMode (const TrajectoryStateOnSurface tsos, 00045 AlgebraicVector5& parameters, AlgebraicSymMatrix55& covariance) const; 00046 00047 00048 float mode_Px; 00049 float mode_Py; 00050 float mode_Pz; 00051 bool Valid; 00052 double dp; 00053 double sigmaDp; 00054 TrajectoryStateOnSurface theUpdateState; 00055 TrajectoryStateOnSurface theForwardState; 00056 TrajectoryStateOnSurface theBackwardState; 00057 }; 00058 00059 #endif