CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LooperTrajectoryFilter.h
Go to the documentation of this file.
1 #ifndef LooperTrajectoryFilter_H
2 #define LooperTrajectoryFilter_H
3 
5 
7 public:
8 
9  explicit LooperTrajectoryFilter( int minNumberOfHits=13,
10  int minNumberOfHitsPerLoop=4,
11  int extraNumberOfHitsBeforeTheFirstLoop=4):
12  theMinNumberOfHits(minNumberOfHits),
13  theMinNumberOfHitsPerLoop(minNumberOfHitsPerLoop),
14  theExtraNumberOfHitsBeforeTheFirstLoop(extraNumberOfHitsBeforeTheFirstLoop){}
15 
17  theMinNumberOfHits = pset.existsAs<int>("minNumberOfHits") ?
18  pset.getParameter<int>("minNumberOfHits") : 13;
19  theMinNumberOfHitsPerLoop= pset.existsAs<int>("minNumberOfHitsPerLoop") ?
20  pset.getParameter<int>("minNumberOfHitsPerLoop") : 4;
21  theExtraNumberOfHitsBeforeTheFirstLoop= pset.existsAs<int>("extraNumberOfHitsBeforeTheFirstLoop") ?
22  pset.getParameter<int>("extraNumberOfHitsBeforeTheFirstLoop") : 4;
23 
24  }
25 
26  virtual bool qualityFilter( const Trajectory& traj) const { return QF<Trajectory>(traj); }
27  virtual bool qualityFilter( const TempTrajectory& traj) const { return QF<TempTrajectory>(traj); }
28 
29  virtual bool toBeContinued( TempTrajectory& traj) const { return TBC<TempTrajectory>(traj);}
30  virtual bool toBeContinued( Trajectory& traj) const{ return TBC<Trajectory>(traj);}
31 
32  virtual std::string name() const{return "LooperTrajectoryFilter";}
33 
34 protected:
35 
36  template<class T> bool QF(const T & traj) const{
37  if ( traj.isLooper() && (traj.foundHits() < theMinNumberOfHits) ) return false;
38  else return true;
39  }
40 
41 
42  template<class T> bool TBC(const T& traj) const {
43  if(traj.isLooper() &&
44  ( (traj.nLoops()*theMinNumberOfHitsPerLoop + theExtraNumberOfHitsBeforeTheFirstLoop)>traj.foundHits()) )
45  return false;
46  else
47  return true;
48  }
49 
53 
54 
55 };
56 
57 #endif
T getParameter(std::string const &) const
LooperTrajectoryFilter(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:186
bool TBC(const T &traj) const
virtual bool qualityFilter(const Trajectory &traj) const
virtual bool toBeContinued(TempTrajectory &traj) const
virtual bool qualityFilter(const TempTrajectory &traj) const
LooperTrajectoryFilter(int minNumberOfHits=13, int minNumberOfHitsPerLoop=4, int extraNumberOfHitsBeforeTheFirstLoop=4)
virtual std::string name() const
virtual bool toBeContinued(Trajectory &traj) const
long double T
bool QF(const T &traj) const