CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
ThresholdPtTrajectoryFilter Class Reference

#include <ThresholdPtTrajectoryFilter.h>

Inheritance diagram for ThresholdPtTrajectoryFilter:
TrajectoryFilter

Public Member Functions

virtual std::string name () const
 
virtual bool qualityFilter (const Trajectory &traj) const
 
virtual bool qualityFilter (const TempTrajectory &traj) const
 
 ThresholdPtTrajectoryFilter (double ptThreshold, float nSigma=5.F, int nH=3)
 
 ThresholdPtTrajectoryFilter (const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
 
virtual bool toBeContinued (Trajectory &traj) const
 
virtual bool toBeContinued (TempTrajectory &traj) const
 
- Public Member Functions inherited from TrajectoryFilter
virtual bool operator() (TempTrajectory &t) const
 
virtual bool operator() (Trajectory &t) const
 
virtual void setEvent (const edm::Event &iEvent, const edm::EventSetup &iSetup)
 
virtual ~TrajectoryFilter ()
 

Protected Member Functions

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

Protected Attributes

int theMinHits
 
double theNSigma
 
double thePtThreshold
 

Additional Inherited Members

- Public Types inherited from TrajectoryFilter
typedef CkfComponentsRecord Record
 
- Static Public Attributes inherited from TrajectoryFilter
static const bool qualityFilterIfNotContributing =true
 
static const bool toBeContinuedIfNotContributing =true
 

Detailed Description

A TrajectoryFilter that stops reconstruction if P_t goes above some value at some confidence level. The CkfTrajectoryBuilder uses this class to implement the conditional p_T cut

Definition at line 18 of file ThresholdPtTrajectoryFilter.h.

Constructor & Destructor Documentation

ThresholdPtTrajectoryFilter::ThresholdPtTrajectoryFilter ( double  ptThreshold,
float  nSigma = 5.F,
int  nH = 3 
)
inlineexplicit
ThresholdPtTrajectoryFilter::ThresholdPtTrajectoryFilter ( const edm::ParameterSet pset,
edm::ConsumesCollector iC 
)
inlineexplicit

Definition at line 23 of file ThresholdPtTrajectoryFilter.h.

23  :
24  thePtThreshold(pset.getParameter<double>("thresholdPt")),
25  theNSigma(pset.getParameter<double>("nSigmaThresholdPt")),
26  theMinHits(pset.getParameter<int>("minHitsThresholdPt"))
27  {}
T getParameter(std::string const &) const

Member Function Documentation

virtual std::string ThresholdPtTrajectoryFilter::name ( void  ) const
inlinevirtual
virtual bool ThresholdPtTrajectoryFilter::qualityFilter ( const Trajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 29 of file ThresholdPtTrajectoryFilter.h.

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

29 { return !test(traj.lastMeasurement(),traj.foundHits());}
int foundHits() const
Definition: Trajectory.h:234
bool test(const TrajectoryMeasurement &tm, int foundHits) const
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:181
virtual bool ThresholdPtTrajectoryFilter::qualityFilter ( const TempTrajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 30 of file ThresholdPtTrajectoryFilter.h.

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

30 { return !test(traj.lastMeasurement(),traj.foundHits());}
int foundHits() const
const TrajectoryMeasurement & lastMeasurement() const
bool test(const TrajectoryMeasurement &tm, int foundHits) const
bool ThresholdPtTrajectoryFilter::test ( const TrajectoryMeasurement tm,
int  foundHits 
) const
protected

Definition at line 13 of file ThresholdPtTrajectoryFilter.cc.

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

Referenced by qualityFilter(), and toBeContinued().

14  {
15  //first check min number of hits
16  if (foundHits < theMinHits ){ return true;}
17 
18  // check for momentum below limit
20 
21  //avoid doing twice the check in TBC and QF
22  // We make it thread local so that we avoid race conditions between
23  // threads, and we make sure there is no cache contention between them.
24  if (tls.ftsMemory.parameters().vector() == fts.parameters().vector()) { return tls.answerMemory;}
25  tls.ftsMemory=fts;
26 
27  //if p_T is way too small: stop
28  double pT = fts.momentum().perp();
29  if (pT<0.010) {tls.answerMemory=false; return false;}
30  //if error is way too big: stop
31  double invError = TrajectoryStateAccessor(fts).inversePtError();
32  if (invError > 1.e10) {tls.answerMemory=false;return false;}
33 
34  //calculate the actual pT cut:
35  if ((1/pT + theNSigma*invError ) < 1/thePtThreshold ) {tls.answerMemory=false; return false;}
36  // first term is the minimal value of pT (pT-N*sigma(pT))
37  // secon term is the cut
38 
39  tls.answerMemory=true; return true;
40  }
T perp() const
Definition: PV3DBase.h:72
const GlobalTrajectoryParameters & parameters() const
FreeTrajectoryState const * freeTrajectoryState(bool withErrors=true) const
GlobalVector momentum() const
TrajectoryStateOnSurface const & updatedState() const
AlgebraicVector6 vector() const
virtual bool ThresholdPtTrajectoryFilter::toBeContinued ( Trajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 32 of file ThresholdPtTrajectoryFilter.h.

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

32 { return test(traj.lastMeasurement(),traj.foundHits()); }
int foundHits() const
Definition: Trajectory.h:234
bool test(const TrajectoryMeasurement &tm, int foundHits) const
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:181
virtual bool ThresholdPtTrajectoryFilter::toBeContinued ( TempTrajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 33 of file ThresholdPtTrajectoryFilter.h.

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

33 { return test(traj.lastMeasurement(),traj.foundHits()); }
int foundHits() const
const TrajectoryMeasurement & lastMeasurement() const
bool test(const TrajectoryMeasurement &tm, int foundHits) const

Member Data Documentation

int ThresholdPtTrajectoryFilter::theMinHits
protected

Definition at line 43 of file ThresholdPtTrajectoryFilter.h.

Referenced by test().

double ThresholdPtTrajectoryFilter::theNSigma
protected

Definition at line 42 of file ThresholdPtTrajectoryFilter.h.

Referenced by test().

double ThresholdPtTrajectoryFilter::thePtThreshold
protected

Definition at line 41 of file ThresholdPtTrajectoryFilter.h.

Referenced by test().