Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-04-15 01:47:33

0001 #ifndef RecoTracker_PixelLowPtUtilities_TrackFitter_h
0002 #define RecoTracker_PixelLowPtUtilities_TrackFitter_h
0003 
0004 #include "RecoTracker/PixelTrackFitting/interface/PixelFitterBase.h"
0005 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0006 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
0007 #include "DataFormats/TrackReco/interface/Track.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 
0010 #include <vector>
0011 
0012 class TransientTrackingRecHitBuilder;
0013 class TrackerGeometry;
0014 class MagneticField;
0015 
0016 class TrackFitter : public PixelFitterBase {
0017 public:
0018   TrackFitter(const TrackerGeometry* tracker,
0019               const MagneticField* field,
0020               const TransientTrackingRecHitBuilder* ttrhBuilder)
0021       : theTracker(tracker), theField(field), theTTRecHitBuilder(ttrhBuilder) {}
0022   ~TrackFitter() override {}
0023 
0024   std::unique_ptr<reco::Track> run(const std::vector<const TrackingRecHit*>& hits,
0025                                    const TrackingRegion& region) const override;
0026 
0027 private:
0028   float getCotThetaAndUpdateZip(
0029       const GlobalPoint& inner, const GlobalPoint& outer, float radius, float phi, float d0, float& zip) const;
0030   float getPhi(float xC, float yC, int charge) const;
0031   float getZip(float d0, float curv, const GlobalPoint& inner, const GlobalPoint& outer) const;
0032   void getErrTipAndErrZip(float pt, float eta, float& errZip, float& errTip) const;
0033 
0034   const TrackerGeometry* theTracker;
0035   const MagneticField* theField;
0036   const TransientTrackingRecHitBuilder* theTTRecHitBuilder;
0037 };
0038 #endif