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, edm::ConsumesCollector &iC)
 
virtual std::string name () const
 
virtual bool qualityFilter (const Trajectory &traj) const
 
virtual bool qualityFilter (const TempTrajectory &traj) const
 
void setEvent (const edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
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,
std::unique_ptr
< 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, std::unique_ptr< TrajectoryFilter > > > filters
CompositeLogicalTrajectoryFilter::CompositeLogicalTrajectoryFilter ( const edm::ParameterSet pset,
edm::ConsumesCollector iC 
)
inlineexplicit

Definition at line 16 of file CompositeLogicalTrajectoryFilter.h.

References AND, SurfaceDeformationFactory::create(), filters, reco::get(), edm::ParameterSet::getParameter(), i, prof2calltree::l, eostools::ls(), OR, and AlCaHLTBitMon_QueryRunRegistry::string.

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.emplace_back(l, std::unique_ptr<TrajectoryFilter>(TrajectoryFilterFactory::get()->create(vpset[i].getParameter<std::string>("ComponentName"), vpset[i], iC)));
31 
32  }
33  }
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
std::vector< std::pair< logic, std::unique_ptr< TrajectoryFilter > > > filters
def ls
Definition: eostools.py:348
SurfaceDeformation * create(int type, const std::vector< double > &params)
T get(const Candidate &c)
Definition: component.h:55
CompositeLogicalTrajectoryFilter::~CompositeLogicalTrajectoryFilter ( )
inline

Definition at line 35 of file CompositeLogicalTrajectoryFilter.h.

35 {}

Member Function Documentation

virtual std::string CompositeLogicalTrajectoryFilter::name ( void  ) const
inlinevirtual
template<class T >
bool CompositeLogicalTrajectoryFilter::QF ( const T traj) const
inlineprotected

Definition at line 59 of file CompositeLogicalTrajectoryFilter.h.

References AND, filters, plotBeamSpotDB::first, i, gen::n, and OR.

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

Implements TrajectoryFilter.

Definition at line 43 of file CompositeLogicalTrajectoryFilter.h.

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

Implements TrajectoryFilter.

Definition at line 44 of file CompositeLogicalTrajectoryFilter.h.

44 { return QF<TempTrajectory>(traj);}
void CompositeLogicalTrajectoryFilter::setEvent ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
inlineoverridevirtual

Reimplemented from TrajectoryFilter.

Definition at line 37 of file CompositeLogicalTrajectoryFilter.h.

References filters.

37  {
38  for(auto& item: filters) {
39  item.second->setEvent(iEvent, iSetup);
40  }
41  }
std::vector< std::pair< logic, std::unique_ptr< TrajectoryFilter > > > filters
template<class T >
bool CompositeLogicalTrajectoryFilter::TBC ( T traj) const
inlineprotected

Definition at line 52 of file CompositeLogicalTrajectoryFilter.h.

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

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

Implements TrajectoryFilter.

Definition at line 46 of file CompositeLogicalTrajectoryFilter.h.

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

Implements TrajectoryFilter.

Definition at line 47 of file CompositeLogicalTrajectoryFilter.h.

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

Member Data Documentation

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