#include <StandAloneMuonSmoother.h>
Public Member Functions | |
MeasurementEstimator * | estimator () const |
access at the estimator | |
const Propagator * | propagator () const |
access at the propagator | |
SmoothingResult | smooth (const Trajectory &) |
Smoothes the trajectories. | |
TrajectorySmoother * | smoother () const |
access to the smoother | |
StandAloneMuonSmoother (const edm::ParameterSet &par, const MuonServiceProxy *service) | |
Constructor. | |
TrajectoryStateUpdator * | updator () const |
return the KFUpdator | |
virtual | ~StandAloneMuonSmoother () |
Destructor. | |
Private Types | |
typedef std::pair< bool, Trajectory > | SmoothingResult |
Private Member Functions | |
void | renewTheSmoother () |
Private Attributes | |
double | theErrorRescaling |
MeasurementEstimator * | theEstimator |
double | theMaxChi2 |
The max allowed chi2 to accept a rechit in the fit. | |
double | theNSigma |
std::string | thePropagatorName |
const MuonServiceProxy * | theService |
TrajectorySmoother * | theSmoother |
TrajectoryStateUpdator * | theUpdator |
Smooth a trajectory using the standard Kalman Filter smoother. This class contains the KFTrajectorySmoother and takes care to update the it whenever the propagator change.
Smooth a trajectory using the standard Kalman Filter smoother. This class contains the KFTrajectorySmoother and takes care to update the it whenever the propagator change.
Definition at line 28 of file StandAloneMuonSmoother.h.
typedef std::pair<bool,Trajectory> StandAloneMuonSmoother::SmoothingResult [private] |
Definition at line 30 of file StandAloneMuonSmoother.h.
StandAloneMuonSmoother::StandAloneMuonSmoother | ( | const edm::ParameterSet & | par, |
const MuonServiceProxy * | service | ||
) |
Constructor.
Definition at line 27 of file StandAloneMuonSmoother.cc.
References Chi2MeasurementEstimatorESProducer_cfi::Chi2MeasurementEstimator, edm::ParameterSet::getParameter(), theErrorRescaling, theEstimator, theMaxChi2, theNSigma, thePropagatorName, theSmoother, and theUpdator.
:theService(service){ // The max allowed chi2 to accept a rechit in the fit theMaxChi2 = par.getParameter<double>("MaxChi2"); // The errors of the trajectory state are multiplied by nSigma // to define acceptance of BoundPlane and maximalLocalDisplacement theNSigma = par.getParameter<double>("NumberOfSigma"); // default = 3. // The estimator: makes the decision wheter a measure is good or not // it isn't used by the updator which does the real fit. In fact, in principle, // a looser request onto the measure set can be requested // (w.r.t. the request on the accept/reject measure in the fit) theEstimator = new Chi2MeasurementEstimator(theMaxChi2,theNSigma); theErrorRescaling = par.getParameter<double>("ErrorRescalingFactor"); thePropagatorName = par.getParameter<string>("Propagator"); theUpdator = new KFUpdator(); // The Kalman smoother theSmoother = 0 ; }
StandAloneMuonSmoother::~StandAloneMuonSmoother | ( | ) | [virtual] |
Destructor.
Definition at line 54 of file StandAloneMuonSmoother.cc.
References theEstimator, theSmoother, and theUpdator.
{ if (theEstimator) delete theEstimator; if (theUpdator) delete theUpdator; if (theSmoother) delete theSmoother; }
MeasurementEstimator* StandAloneMuonSmoother::estimator | ( | void | ) | const [inline] |
access at the estimator
Definition at line 51 of file StandAloneMuonSmoother.h.
References theEstimator.
Referenced by renewTheSmoother().
{return theEstimator;}
const Propagator * StandAloneMuonSmoother::propagator | ( | void | ) | const |
access at the propagator
Definition at line 60 of file StandAloneMuonSmoother.cc.
References thePropagatorName, and theService.
Referenced by renewTheSmoother().
{ return &*theService->propagator(thePropagatorName); }
void StandAloneMuonSmoother::renewTheSmoother | ( | ) | [private] |
Definition at line 64 of file StandAloneMuonSmoother.cc.
References estimator(), KFTrajectorySmootherESProducer_cfi::KFTrajectorySmoother, propagator(), theService, theSmoother, and updator().
Referenced by smooth().
{ if (theService->isTrackingComponentsRecordChanged()){ if (theSmoother) delete theSmoother; theSmoother = new KFTrajectorySmoother(propagator(), updator(), estimator()); } if (!theSmoother) theSmoother = new KFTrajectorySmoother(propagator(), updator(), estimator()); }
StandAloneMuonSmoother::SmoothingResult StandAloneMuonSmoother::smooth | ( | const Trajectory & | inputTrajectory | ) |
Smoothes the trajectories.
Definition at line 78 of file StandAloneMuonSmoother.cc.
References LogTrace, metname, renewTheSmoother(), smoother(), and TrajectorySmoother::trajectories().
{ const string metname = "Muon|RecoMuon|StandAloneMuonSmoother"; renewTheSmoother(); vector<Trajectory> trajectoriesSM = smoother()->trajectories(inputTrajectory); if(!trajectoriesSM.size()){ LogTrace(metname) << "No Track smoothed!"; return SmoothingResult(false,inputTrajectory); } Trajectory smoothed = trajectoriesSM.front(); return SmoothingResult(true,smoothed); }
TrajectorySmoother* StandAloneMuonSmoother::smoother | ( | ) | const [inline] |
access to the smoother
Definition at line 54 of file StandAloneMuonSmoother.h.
References theSmoother.
Referenced by smooth().
{return theSmoother;}
TrajectoryStateUpdator* StandAloneMuonSmoother::updator | ( | ) | const [inline] |
return the KFUpdator
Definition at line 45 of file StandAloneMuonSmoother.h.
References theUpdator.
Referenced by renewTheSmoother().
{return theUpdator;}
double StandAloneMuonSmoother::theErrorRescaling [private] |
Definition at line 76 of file StandAloneMuonSmoother.h.
Referenced by StandAloneMuonSmoother().
The estimator: makes the decision wheter a measure is good or not it isn't used by the updator which does the real fit. In fact, in principle, a looser request onto the measure set can be requested (w.r.t. the request on the accept/reject measure in the fit)
Definition at line 74 of file StandAloneMuonSmoother.h.
Referenced by estimator(), StandAloneMuonSmoother(), and ~StandAloneMuonSmoother().
double StandAloneMuonSmoother::theMaxChi2 [private] |
The max allowed chi2 to accept a rechit in the fit.
Definition at line 64 of file StandAloneMuonSmoother.h.
Referenced by StandAloneMuonSmoother().
double StandAloneMuonSmoother::theNSigma [private] |
The errors of the trajectory state are multiplied by nSigma to define acceptance of BoundPlane and maximalLocalDisplacement
Definition at line 68 of file StandAloneMuonSmoother.h.
Referenced by StandAloneMuonSmoother().
std::string StandAloneMuonSmoother::thePropagatorName [private] |
Definition at line 61 of file StandAloneMuonSmoother.h.
Referenced by propagator(), and StandAloneMuonSmoother().
const MuonServiceProxy* StandAloneMuonSmoother::theService [private] |
Definition at line 80 of file StandAloneMuonSmoother.h.
Referenced by propagator(), and renewTheSmoother().
Definition at line 82 of file StandAloneMuonSmoother.h.
Referenced by renewTheSmoother(), smoother(), StandAloneMuonSmoother(), and ~StandAloneMuonSmoother().
Definition at line 78 of file StandAloneMuonSmoother.h.
Referenced by StandAloneMuonSmoother(), updator(), and ~StandAloneMuonSmoother().