Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:14

0001 #ifndef RecoMuon_StandAloneTrackFinder_StandAloneMuonRefitter_H
0002 #define RecoMuon_StandAloneTrackFinder_StandAloneMuonRefitter_H
0003 
0004 /** \class StandAloneMuonRefitter
0005  *  Class ti interface the muon system rechits with the standard KF tools.
0006  *
0007  *  \authors R. Bellan - INFN Torino <riccardo.bellan@cern.ch>
0008  *           D. Trocino - INFN Torino <daniele.trocino@to.infn.it>
0009  */
0010 
0011 #include "FWCore/Framework/interface/ESHandle.h"
0012 #include "FWCore/Utilities/interface/ESGetToken.h"
0013 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0014 #include "TrackingTools/TrackFitters/interface/TrajectoryFitter.h"
0015 
0016 namespace edm {
0017   class ParameterSet;
0018   class ConsumesCollector;
0019 }  // namespace edm
0020 class MuonServiceProxy;
0021 class TrajectoryFitter;
0022 class Trajectory;
0023 
0024 class StandAloneMuonRefitter {
0025 public:
0026   typedef std::pair<bool, Trajectory> RefitResult;
0027 
0028 public:
0029   /// Constructor
0030   StandAloneMuonRefitter(const edm::ParameterSet& par, edm::ConsumesCollector col, const MuonServiceProxy* service);
0031 
0032   /// Destructor
0033   virtual ~StandAloneMuonRefitter();
0034 
0035   // Operations
0036 
0037   /// Refit
0038   RefitResult singleRefit(const Trajectory&);
0039   RefitResult refit(const Trajectory&);
0040 
0041 protected:
0042 private:
0043   const MuonServiceProxy* theService;
0044   const edm::ESGetToken<TrajectoryFitter, TrajectoryFitter::Record> theFitterToken;
0045   edm::ESHandle<TrajectoryFitter> theFitter;
0046   unsigned int theNumberOfIterations;
0047   bool isForceAllIterations;
0048   double theMaxFractionOfLostHits;
0049   double errorRescale;
0050 };
0051 #endif