CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/RecoPixelVertexing/PixelLowPtUtilities/interface/TrackFitter.h

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