![]() |
![]() |
#include <ChargeSignificanceTrajectoryFilter.h>
Public Member Functions | |
ChargeSignificanceTrajectoryFilter (double qsig) | |
ChargeSignificanceTrajectoryFilter (const edm::ParameterSet &pset) | |
virtual std::string | name () const |
virtual bool | qualityFilter (const Trajectory &traj) const |
virtual bool | qualityFilter (const TempTrajectory &traj) const |
virtual bool | toBeContinued (TempTrajectory &traj) const |
virtual bool | toBeContinued (Trajectory &traj) const |
Protected Member Functions | |
template<class T > | |
bool | TBC (T &traj) const |
Protected Attributes | |
double | theChargeSignificance |
A TrajectoryFilter that stops reconstruction if P_t drops below some value at some confidence level. The CkfTrajectoryBuilder uses this class to implement the minimal P_t cut.
Definition at line 14 of file ChargeSignificanceTrajectoryFilter.h.
ChargeSignificanceTrajectoryFilter::ChargeSignificanceTrajectoryFilter | ( | double | qsig | ) | [inline, explicit] |
Definition at line 17 of file ChargeSignificanceTrajectoryFilter.h.
: theChargeSignificance(qsig) {}
ChargeSignificanceTrajectoryFilter::ChargeSignificanceTrajectoryFilter | ( | const edm::ParameterSet & | pset | ) | [inline, explicit] |
Definition at line 19 of file ChargeSignificanceTrajectoryFilter.h.
: theChargeSignificance(pset.getParameter<double>("chargeSignificance")) {}
virtual std::string ChargeSignificanceTrajectoryFilter::name | ( | void | ) | const [inline, virtual] |
Implements TrajectoryFilter.
Definition at line 28 of file ChargeSignificanceTrajectoryFilter.h.
{return "ChargeSignificanceTrajectoryFilter";}
virtual bool ChargeSignificanceTrajectoryFilter::qualityFilter | ( | const Trajectory & | traj | ) | const [inline, virtual] |
Implements TrajectoryFilter.
Definition at line 22 of file ChargeSignificanceTrajectoryFilter.h.
References Trajectory::isValid().
Referenced by CkfBaseTrajectoryFilter::QF().
{ return traj.isValid();}
virtual bool ChargeSignificanceTrajectoryFilter::qualityFilter | ( | const TempTrajectory & | traj | ) | const [inline, virtual] |
Implements TrajectoryFilter.
Definition at line 23 of file ChargeSignificanceTrajectoryFilter.h.
References TempTrajectory::isValid().
{ return traj.isValid();}
bool ChargeSignificanceTrajectoryFilter::TBC | ( | T & | traj | ) | const [inline, protected] |
Definition at line 32 of file ChargeSignificanceTrajectoryFilter.h.
References TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), LocalTrajectoryError::matrix(), mathSSE::sqrt(), theChargeSignificance, and LocalTrajectoryParameters::vector().
{ const typename T::DataContainer & tms = traj.measurements(); // Check flip in q-significance. The loop over all TMs could be // avoided by storing the current significant q in the trajectory if ( theChargeSignificance>0. ) { int qSig(0); // skip first two hits (don't rely on significance of q/p) for( typename T::DataContainer::size_type itm=2; itm<tms.size(); ++itm ) { TrajectoryStateOnSurface tsos = tms[itm].updatedState(); if ( !tsos.isValid() ) continue; double significance = tsos.localParameters().vector()(0) / sqrt(tsos.localError().matrix()(0,0)); // don't deal with measurements compatible with 0 if ( fabs(significance)<theChargeSignificance ) continue; // // if charge not yet defined: store first significant Q // if ( qSig==0 ) { qSig = significance>0 ? 1 : -1; } // // else: invalidate and terminate in case of a change of sign // else { if ( (significance<0.&&qSig>0) || (significance>0.&&qSig<0) ) { traj.invalidate(); return false; } } } } return true; }
virtual bool ChargeSignificanceTrajectoryFilter::toBeContinued | ( | TempTrajectory & | traj | ) | const [inline, virtual] |
Implements TrajectoryFilter.
Definition at line 26 of file ChargeSignificanceTrajectoryFilter.h.
{ return TBC<TempTrajectory>(traj);}
virtual bool ChargeSignificanceTrajectoryFilter::toBeContinued | ( | Trajectory & | traj | ) | const [inline, virtual] |
Implements TrajectoryFilter.
Definition at line 25 of file ChargeSignificanceTrajectoryFilter.h.
Referenced by CkfBaseTrajectoryFilter::TBC().
{ return TBC<Trajectory>(traj);}
double ChargeSignificanceTrajectoryFilter::theChargeSignificance [protected] |
Definition at line 66 of file ChargeSignificanceTrajectoryFilter.h.
Referenced by TBC().