File indexing completed on 2024-04-06 12:27:14
0001 #ifndef RecoMuon_StandAloneTrackFinder_StandAloneMuonSmoother_H
0002 #define RecoMuon_StandAloneTrackFinder_StandAloneMuonSmoother_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0014
0015 class MuonServiceProxy;
0016 class TrajectoryStateUpdator;
0017 class MeasurementEstimator;
0018 class Propagator;
0019 class TrajectorySmoother;
0020
0021 #include <string>
0022
0023 namespace edm {
0024 class ParameterSet;
0025 class Event;
0026 }
0027
0028
0029 class StandAloneMuonSmoother {
0030 typedef std::pair<bool, Trajectory> SmoothingResult;
0031
0032 public:
0033
0034 StandAloneMuonSmoother(const edm::ParameterSet &par, const MuonServiceProxy *service);
0035
0036
0037 virtual ~StandAloneMuonSmoother();
0038
0039
0040
0041
0042 SmoothingResult smooth(const Trajectory &);
0043
0044
0045 TrajectoryStateUpdator *updator() const { return theUpdator; }
0046
0047
0048 const Propagator *propagator() const;
0049
0050
0051 MeasurementEstimator *estimator() const { return theEstimator; }
0052
0053
0054 TrajectorySmoother *smoother() const { return theSmoother; }
0055
0056 protected:
0057 private:
0058 void renewTheSmoother();
0059
0060 std::string thePropagatorName;
0061
0062
0063 double theMaxChi2;
0064
0065
0066
0067 double theNSigma;
0068
0069
0070
0071
0072
0073 MeasurementEstimator *theEstimator;
0074
0075 double theErrorRescaling;
0076
0077 TrajectoryStateUpdator *theUpdator;
0078
0079 const MuonServiceProxy *theService;
0080
0081 TrajectorySmoother *theSmoother;
0082 };
0083 #endif