CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Protected Attributes

MinPtTrajectoryFilter Class Reference

#include <MinPtTrajectoryFilter.h>

Inheritance diagram for MinPtTrajectoryFilter:
TrajectoryFilter

List of all members.

Public Member Functions

 MinPtTrajectoryFilter (double ptMin, float nSigma=5.F, int nH=3)
 MinPtTrajectoryFilter (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

bool test (const TrajectoryMeasurement &tm, int foundHits) const

Protected Attributes

int theMinHits
double theNSigma
double thePtMin

Detailed Description

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 18 of file MinPtTrajectoryFilter.h.


Constructor & Destructor Documentation

MinPtTrajectoryFilter::MinPtTrajectoryFilter ( double  ptMin,
float  nSigma = 5.F,
int  nH = 3 
) [inline, explicit]

Definition at line 21 of file MinPtTrajectoryFilter.h.

: thePtMin( ptMin), theNSigma(nSigma), theMinHits(nH)  {}
MinPtTrajectoryFilter::MinPtTrajectoryFilter ( const edm::ParameterSet pset) [inline, explicit]

Definition at line 23 of file MinPtTrajectoryFilter.h.

                                                                :
    thePtMin(pset.getParameter<double>("minPt")),
    theNSigma(pset.getParameter<double>("nSigmaMinPt")),
    theMinHits(pset.getParameter<int>("minHitsMinPt")){}

Member Function Documentation

virtual std::string MinPtTrajectoryFilter::name ( void  ) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 35 of file MinPtTrajectoryFilter.h.

{return "MinPtTrajectoryFilter";}
virtual bool MinPtTrajectoryFilter::qualityFilter ( const Trajectory traj) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 29 of file MinPtTrajectoryFilter.h.

References Trajectory::foundHits(), Trajectory::lastMeasurement(), and test().

Referenced by CkfBaseTrajectoryFilter::QF().

{ return test(traj.lastMeasurement(),traj.foundHits()); }
virtual bool MinPtTrajectoryFilter::qualityFilter ( const TempTrajectory traj) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 30 of file MinPtTrajectoryFilter.h.

References TempTrajectory::foundHits(), TempTrajectory::lastMeasurement(), and test().

{ return test(traj.lastMeasurement(),traj.foundHits()); }
bool MinPtTrajectoryFilter::test ( const TrajectoryMeasurement tm,
int  foundHits 
) const [inline, protected]

Definition at line 39 of file MinPtTrajectoryFilter.h.

References TrajectoryStateOnSurface::freeTrajectoryState(), TrajectoryStateAccessor::inversePtError(), FreeTrajectoryState::momentum(), FreeTrajectoryState::parameters(), PV3DBase< T, PVType, FrameType >::perp(), theMinHits, theNSigma, thePtMin, TrajectoryMeasurement::updatedState(), and GlobalTrajectoryParameters::vector().

Referenced by qualityFilter(), and toBeContinued().

  {
    //first check min number of hits 
    if (foundHits < theMinHits ){ return true;}

    // check for momentum below limit
    const FreeTrajectoryState& fts = *tm.updatedState().freeTrajectoryState();

    //avoid doing twice the check in TBC and QF
    static bool answerMemory=false;
    static FreeTrajectoryState ftsMemory;
    if (ftsMemory.parameters().vector() == fts.parameters().vector()) { return answerMemory;}
    ftsMemory=fts;

    //if p_T is way too small: stop
    double pT = fts.momentum().perp();
    if (pT<0.010) {answerMemory=false; return false;}
    //if error is way too big: stop
    double invError = TrajectoryStateAccessor(fts).inversePtError();
    if (invError > 1.e10) {answerMemory=false;return false;}

    //calculate the actual pT cut: 
    if ((1/pT - theNSigma*invError) > 1/thePtMin) {answerMemory=false; return false;}
    //    first term if the max value of pT (pT+N*sigma(pT))
    //    second tern is the cut

    answerMemory=true; return true;
  }
virtual bool MinPtTrajectoryFilter::toBeContinued ( TempTrajectory traj) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 33 of file MinPtTrajectoryFilter.h.

References TempTrajectory::foundHits(), TempTrajectory::lastMeasurement(), and test().

{ return test(traj.lastMeasurement(),traj.foundHits()); }
virtual bool MinPtTrajectoryFilter::toBeContinued ( Trajectory traj) const [inline, virtual]

Member Data Documentation

Definition at line 70 of file MinPtTrajectoryFilter.h.

Referenced by test().

Definition at line 69 of file MinPtTrajectoryFilter.h.

Referenced by test().

double MinPtTrajectoryFilter::thePtMin [protected]

Definition at line 68 of file MinPtTrajectoryFilter.h.

Referenced by test().