CMS 3D CMS Logo

LooperTrajectoryFilter.h
Go to the documentation of this file.
1 #ifndef LooperTrajectoryFilter_H
2 #define LooperTrajectoryFilter_H
3 
6 
8 public:
9 
16 
18  theMinNumberOfHitsForLoopers = pset.getParameter<int>("minNumberOfHitsForLoopers");
19  theMinNumberOfHitsPerLoop = pset.getParameter<int>("minNumberOfHitsPerLoop");
20  theExtraNumberOfHitsBeforeTheFirstLoop = pset.getParameter<int>("extraNumberOfHitsBeforeTheFirstLoop");
21 
22  }
23 
24  bool qualityFilter( const Trajectory& traj) const override { return QF<Trajectory>(traj); }
25  bool qualityFilter( const TempTrajectory& traj) const override { return QF<TempTrajectory>(traj); }
26 
27  bool toBeContinued( TempTrajectory& traj) const override { return TBC<TempTrajectory>(traj);}
28  bool toBeContinued( Trajectory& traj) const override{ return TBC<Trajectory>(traj);}
29 
30  std::string name() const override{return "LooperTrajectoryFilter";}
31 
34  desc.add<int>("minNumberOfHitsForLoopers", 13);
35  desc.add<int>("minNumberOfHitsPerLoop", 4);
36  desc.add<int>("extraNumberOfHitsBeforeTheFirstLoop", 4);
37  return desc;
38  }
39 
40 protected:
41 
42  template<class T> bool QF(const T & traj) const{
43  if ( traj.isLooper() && (traj.foundHits() < theMinNumberOfHitsForLoopers) ) return false;
44  else return true;
45  }
46 
47 
48  template<class T> bool TBC(T& traj) const {
49  bool ret = !(traj.isLooper() &&
50  ( (traj.nLoops()*theMinNumberOfHitsPerLoop + theExtraNumberOfHitsBeforeTheFirstLoop)>traj.foundHits()));
51  if (!ret)
52  traj.setStopReason(StopReason::LOOPER);
53  return ret;
54  }
55 
59 
60 
61 };
62 
63 #endif
T getParameter(std::string const &) const
LooperTrajectoryFilter(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
bool qualityFilter(const TempTrajectory &traj) const override
std::string name() const override
bool qualityFilter(const Trajectory &traj) const override
bool TBC(T &traj) const
bool toBeContinued(TempTrajectory &traj) const override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
edm::ParameterSetDescription getFilledConfigurationDescription()
LooperTrajectoryFilter(int minNumberOfHitsForLoopers=13, int minNumberOfHitsPerLoop=4, int extraNumberOfHitsBeforeTheFirstLoop=4)
long double T
bool toBeContinued(Trajectory &traj) const override
bool QF(const T &traj) const