Go to the documentation of this file.00001 #ifndef TrackFitter_H
00002 #define TrackFitter_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 class TransientTrackingRecHitBuilder;
00014 class TrackerGeometry;
00015 class MagneticField;
00016
00017 class TrackFitter : public PixelFitter
00018 {
00019 public:
00020 TrackFitter(const edm::ParameterSet& cfg);
00021 virtual ~TrackFitter() { }
00022 virtual reco::Track* run
00023 (const edm::EventSetup& es,
00024 const std::vector<const TrackingRecHit *>& hits,
00025 const TrackingRegion& region) const;
00026
00027 private:
00028 int getCharge(const std::vector<GlobalPoint> & points) const;
00029 float getCotThetaAndUpdateZip
00030 (const GlobalPoint& inner, const GlobalPoint& outer,
00031 float radius, float phi, float d0, float& zip) const;
00032 float getPhi(float xC, float yC, int charge) const;
00033 float getZip(float d0, float curv,
00034 const GlobalPoint& inner, const GlobalPoint& outer) const;
00035 void getErrTipAndErrZip(float pt, float eta,
00036 float & errZip, float & errTip) const;
00037
00038 edm::ParameterSet theConfig;
00039
00040 mutable const TrackerGeometry * theTracker;
00041 mutable const MagneticField * theField;
00042 mutable const TransientTrackingRecHitBuilder * theTTRecHitBuilder;
00043
00044 };
00045 #endif