00001 #ifndef PixelFitterByHelixProjections_H 00002 #define PixelFitterByHelixProjections_H 00003 00004 #include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitter.h" 00005 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" 00006 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h" 00007 #include "FWCore/Framework/interface/EventSetup.h" 00008 #include "DataFormats/TrackReco/interface/Track.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 00011 #include <vector> 00012 00013 //namespace edm {class ParameterSet;} 00014 class TransientTrackingRecHitBuilder; 00015 class TrackerGeometry; 00016 class MagneticField; 00017 00018 00019 class PixelFitterByHelixProjections : public PixelFitter { 00020 public: 00021 PixelFitterByHelixProjections( const edm::ParameterSet& cfg); 00022 virtual ~PixelFitterByHelixProjections() {} 00023 virtual reco::Track* run( 00024 const edm::EventSetup& es, 00025 const std::vector<const TrackingRecHit *>& hits, 00026 const TrackingRegion& region) const; 00027 private: 00028 /* these are just static and local moved to local namespace in cc .... 00029 * 00030 int charge(const std::vector<GlobalPoint> & points) const; 00031 float cotTheta(const GlobalPoint& pinner, const GlobalPoint& pouter) const; 00032 float phi(float xC, float yC, int charge) const; 00033 float pt(float curvature) const; 00034 float zip(float d0, float phi_p, float curv, 00035 const GlobalPoint& pinner, const GlobalPoint& pouter) const; 00036 double errZip2(float apt, float eta) const; 00037 double errTip2(float apt, float eta) const; 00038 */ 00039 private: 00040 edm::ParameterSet theConfig; 00041 00042 mutable const TrackerGeometry * theTracker; 00043 mutable const MagneticField * theField; 00044 mutable const TransientTrackingRecHitBuilder * theTTRecHitBuilder; 00045 00046 }; 00047 #endif