CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoMuon/StandAloneTrackFinder/interface/StandAloneMuonSmoother.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_StandAloneTrackFinder_StandAloneMuonSmoother_H
00002 #define RecoMuon_StandAloneTrackFinder_StandAloneMuonSmoother_H
00003 
00015 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00016 
00017 class MuonServiceProxy;
00018 class TrajectoryStateUpdator;
00019 class MeasurementEstimator;
00020 class Propagator;
00021 class TrajectorySmoother;
00022 
00023 #include <string>
00024 
00025 namespace edm {class ParameterSet; class Event;}
00026 
00027 //class StandAloneMuonSmoother: public KFTrajectorySmoother {
00028 class StandAloneMuonSmoother{
00029 
00030   typedef std::pair<bool,Trajectory> SmoothingResult;
00031 
00032  public:
00034   StandAloneMuonSmoother(const edm::ParameterSet& par, const MuonServiceProxy* service);
00035 
00037   virtual ~StandAloneMuonSmoother();
00038   
00039   // Operations 
00040 
00042   SmoothingResult smooth(const Trajectory&);
00043   
00045   TrajectoryStateUpdator *updator() const {return theUpdator;}
00046 
00048   const Propagator *propagator() const;
00049 
00051   MeasurementEstimator *estimator() const {return theEstimator;}
00052     
00054   TrajectorySmoother *smoother() const {return theSmoother;}
00055   
00056  protected:
00057   
00058  private:
00059   void renewTheSmoother();
00060 
00061   std::string thePropagatorName;
00062 
00064   double theMaxChi2;
00065 
00068   double theNSigma;
00069 
00074   MeasurementEstimator *theEstimator;
00075 
00076   double theErrorRescaling;
00077 
00078   TrajectoryStateUpdator *theUpdator;
00079 
00080   const MuonServiceProxy* theService;
00081 
00082   TrajectorySmoother *theSmoother;
00083 
00084 };
00085 #endif
00086