00001 #ifndef RecoMuon_StandAloneTrackFinder_StandAloneMuonRefitter_H 00002 #define RecoMuon_StandAloneTrackFinder_StandAloneMuonRefitter_H 00003 00014 #include "FWCore/Framework/interface/ESHandle.h" 00015 #include "TrackingTools/PatternTools/interface/Trajectory.h" 00016 00017 namespace edm {class ParameterSet;} 00018 class MuonServiceProxy; 00019 class TrajectoryFitter; 00020 class Trajectory; 00021 00022 class StandAloneMuonRefitter { 00023 public: 00024 typedef std::pair<bool, Trajectory> RefitResult; 00025 00026 public: 00028 StandAloneMuonRefitter(const edm::ParameterSet& par, const MuonServiceProxy* service); 00029 00031 virtual ~StandAloneMuonRefitter(); 00032 00033 // Operations 00034 00036 RefitResult singleRefit(const Trajectory&); 00037 RefitResult refit(const Trajectory&); 00038 00039 protected: 00040 00041 private: 00042 const MuonServiceProxy* theService; 00043 edm::ESHandle<TrajectoryFitter> theFitter; 00044 std::string theFitterName; 00045 unsigned int theNumberOfIterations; 00046 bool isForceAllIterations; 00047 double theMaxFractionOfLostHits; 00048 double errorRescale; 00049 }; 00050 #endif 00051