CMS 3D CMS Logo

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

#include <CompositeLogicalTrajectoryFilter.h>

Inheritance diagram for CompositeLogicalTrajectoryFilter:
TrajectoryFilter

Public Types

enum  logic { OR, AND }
 
- Public Types inherited from TrajectoryFilter
typedef CkfComponentsRecord Record
 

Public Member Functions

 CompositeLogicalTrajectoryFilter ()
 
 CompositeLogicalTrajectoryFilter (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 (Trajectory &traj) const
 
virtual bool toBeContinued (TempTrajectory &traj) const
 
 ~CompositeLogicalTrajectoryFilter ()
 
- Public Member Functions inherited from TrajectoryFilter
virtual bool operator() (TempTrajectory &t) const
 
virtual bool operator() (Trajectory &t) const
 
virtual ~TrajectoryFilter ()
 

Protected Member Functions

template<class T >
bool QF (const T &traj) const
 
template<class T >
bool TBC (T &traj) const
 

Protected Attributes

std::vector< std::pair< logic,
const TrajectoryFilter * > > 
filters
 

Additional Inherited Members

- Static Public Attributes inherited from TrajectoryFilter
static const bool qualityFilterIfNotContributing =true
 
static const bool toBeContinuedIfNotContributing =true
 

Detailed Description

Definition at line 11 of file CompositeLogicalTrajectoryFilter.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

CompositeLogicalTrajectoryFilter::CompositeLogicalTrajectoryFilter ( )
inlineexplicit

Definition at line 14 of file CompositeLogicalTrajectoryFilter.h.

References filters.

14 {filters.clear();}
std::vector< std::pair< logic, const TrajectoryFilter * > > filters
CompositeLogicalTrajectoryFilter::CompositeLogicalTrajectoryFilter ( const edm::ParameterSet pset)
inlineexplicit

Definition at line 16 of file CompositeLogicalTrajectoryFilter.h.

References AND, SurfaceDeformationFactory::create(), filters, reco::get(), edm::ParameterSet::getParameter(), i, prof2calltree::l, python.rootplot.utilities::ls(), and OR.

17  {
18  //look for VPSet of filters
19  std::vector<edm::ParameterSet> vpset=pset.getParameter<std::vector<edm::ParameterSet> >("filters");
20  for (unsigned int i=0;i!= vpset.size();i++)
21  {
22  std::string ls = vpset[i].getParameter<std::string>("logic");
23  logic l=OR;
24  if (ls == "OR") l=OR;
25  else if (ls == "AND") l=AND;
26  else{
27  edm::LogError("CompositeLogicalTrajectoryFilter")<<"I don't understand the logic: "<<ls
28  ;
29  }
30  filters.push_back(std::make_pair(l,TrajectoryFilterFactory::get()->create(vpset[i].getParameter<std::string>("ComponentName"), vpset[i])));
31 
32  }
33  }
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
std::vector< std::pair< logic, const TrajectoryFilter * > > filters
SurfaceDeformation * create(int type, const std::vector< double > &params)
T get(const Candidate &c)
Definition: component.h:56
CompositeLogicalTrajectoryFilter::~CompositeLogicalTrajectoryFilter ( )
inline

Definition at line 35 of file CompositeLogicalTrajectoryFilter.h.

References filters, and i.

35  {
36  for (unsigned int i=0;i!= filters.size();i++) { delete filters[i].second;} filters.clear();
37  }
int i
Definition: DBlmapReader.cc:9
std::vector< std::pair< logic, const TrajectoryFilter * > > filters

Member Function Documentation

virtual std::string CompositeLogicalTrajectoryFilter::name ( void  ) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 47 of file CompositeLogicalTrajectoryFilter.h.

47 {return "CompositeLogicalTrajectoryFilter";}
template<class T >
bool CompositeLogicalTrajectoryFilter::QF ( const T traj) const
inlineprotected

Definition at line 57 of file CompositeLogicalTrajectoryFilter.h.

References AND, filters, first, i, n, and OR.

57  {
58  bool condition=true;
59 
60  unsigned int n=filters.size();
61  if (n==0) { edm::LogError("CompositeLogicalTrajectoryFilter")<<n<<" filters !." ; return false;}
62  condition=filters[0].second->qualityFilter(traj);
63 
64  unsigned int i=1;
65  for (;i<n;i++){
66  bool lcondition =filters[i].second->qualityFilter(traj);
67  if (filters[i].first==OR)
68  condition= condition || lcondition;
69  else if (filters[i].first==AND)
70  condition= condition && lcondition;
71  }
72  return condition;
73  }
int i
Definition: DBlmapReader.cc:9
std::vector< std::pair< logic, const TrajectoryFilter * > > filters
bool first
Definition: L1TdeRCT.cc:94
virtual bool CompositeLogicalTrajectoryFilter::qualityFilter ( const Trajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 41 of file CompositeLogicalTrajectoryFilter.h.

41 { return QF<Trajectory>(traj);}
virtual bool CompositeLogicalTrajectoryFilter::qualityFilter ( const TempTrajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 42 of file CompositeLogicalTrajectoryFilter.h.

42 { return QF<TempTrajectory>(traj);}
template<class T >
bool CompositeLogicalTrajectoryFilter::TBC ( T traj) const
inlineprotected

Definition at line 50 of file CompositeLogicalTrajectoryFilter.h.

References filters, i, n, and edm::second().

50  {
51  unsigned int i=0;
52  unsigned int n=filters.size();
53  for (;i<n;i++){ if (!filters[i].second->toBeContinued(traj)) return false; }
54  return true;
55  }
int i
Definition: DBlmapReader.cc:9
std::vector< std::pair< logic, const TrajectoryFilter * > > filters
U second(std::pair< T, U > const &p)
virtual bool CompositeLogicalTrajectoryFilter::toBeContinued ( Trajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 44 of file CompositeLogicalTrajectoryFilter.h.

44 { return TBC<Trajectory>(traj);}
virtual bool CompositeLogicalTrajectoryFilter::toBeContinued ( TempTrajectory traj) const
inlinevirtual

Implements TrajectoryFilter.

Definition at line 45 of file CompositeLogicalTrajectoryFilter.h.

45 { return TBC<TempTrajectory>(traj);}

Member Data Documentation

std::vector< std::pair< logic, const TrajectoryFilter *> > CompositeLogicalTrajectoryFilter::filters
protected