CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CompositeTrajectoryFilter.h
Go to the documentation of this file.
1 #ifndef CompositeTrajectoryFilter_H
2 #define CompositeTrajectoryFilter_H
3 
8 
16 public:
17 
18  explicit CompositeTrajectoryFilter(){filters.clear();}
19  explicit CompositeTrajectoryFilter(std::vector< const TrajectoryFilter *> & f){filters=f;}
21  {
22  //look for VPSet of filters
23  std::vector<edm::ParameterSet> vpset=pset.getParameter<std::vector<edm::ParameterSet> >("filters");
24  for (unsigned int i=0;i!= vpset.size();i++)
25  {filters.push_back(TrajectoryFilterFactory::get()->create(vpset[i].getParameter<std::string>("ComponentType"),
26  vpset[i]));}
27  }
28 
30 
31  virtual bool qualityFilter( const Trajectory& traj) const { return QF<Trajectory>(traj);}
32  virtual bool qualityFilter( const TempTrajectory& traj) const { return QF<TempTrajectory>(traj);}
33 
34  virtual bool toBeContinued( Trajectory& traj) const { return TBC<Trajectory>(traj);}
35  virtual bool toBeContinued( TempTrajectory& traj) const { return TBC<TempTrajectory>(traj);}
36 
37  virtual std::string name() const { std::string rname="CompositeTrajectoryFilter";
38  unsigned int i=0;
39  unsigned int n=filters.size();
40  for (;i<n;i++){ rname+="_"+filters[i]->name();}
41  return rname;
42  }
43 
44 protected:
45  template <class T> bool TBC( T& traj)const{
46  unsigned int i=0;
47  unsigned int n=filters.size();
48  for (;i<n;i++){ if (!filters[i]->toBeContinued(traj)) return false; }
49  return true;}
50 
51  template <class T> bool QF(const T& traj)const{
52  unsigned int i=0;
53  unsigned int n=filters.size();
54  for (;i<n;i++){ if (!filters[i]->qualityFilter(traj)) return false; }
55  return true;}
56  protected:
57  std::vector< const TrajectoryFilter *> filters;
58 
59 };
60 
61 #endif
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
virtual bool qualityFilter(const TempTrajectory &traj) const
CompositeTrajectoryFilter(const edm::ParameterSet &pset)
CompositeTrajectoryFilter(std::vector< const TrajectoryFilter * > &f)
virtual bool toBeContinued(TempTrajectory &traj) const
std::vector< const TrajectoryFilter * > filters
bool QF(const T &traj) const
double f[11][100]
virtual std::string name() const
virtual bool toBeContinued(Trajectory &traj) const
long double T
virtual bool qualityFilter(const Trajectory &traj) const
SurfaceDeformation * create(int type, const std::vector< double > &params)
T get(const Candidate &c)
Definition: component.h:56