CMS 3D CMS Logo

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

CompositeLogicalTrajectoryFilter Class Reference

#include <CompositeLogicalTrajectoryFilter.h>

Inheritance diagram for CompositeLogicalTrajectoryFilter:
TrajectoryFilter

List of all members.

Public Types

enum  logic { OR, AND }

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 (TempTrajectory &traj) const
virtual bool toBeContinued (Trajectory &traj) const
 ~CompositeLogicalTrajectoryFilter ()

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

Detailed Description

Definition at line 11 of file CompositeLogicalTrajectoryFilter.h.


Member Enumeration Documentation

Enumerator:
OR 
AND 

Definition at line 13 of file CompositeLogicalTrajectoryFilter.h.

{ OR, AND };

Constructor & Destructor Documentation

CompositeLogicalTrajectoryFilter::CompositeLogicalTrajectoryFilter ( ) [inline, explicit]

Definition at line 14 of file CompositeLogicalTrajectoryFilter.h.

References filters.

{filters.clear();}
CompositeLogicalTrajectoryFilter::CompositeLogicalTrajectoryFilter ( const edm::ParameterSet pset) [inline, explicit]

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.

  {
  //look for VPSet of filters
  std::vector<edm::ParameterSet> vpset=pset.getParameter<std::vector<edm::ParameterSet> >("filters");
  for (unsigned int i=0;i!= vpset.size();i++)
    {
      std::string ls = vpset[i].getParameter<std::string>("logic");
      logic l=OR;
      if (ls == "OR") l=OR;
      else if (ls == "AND") l=AND;
      else{
        edm::LogError("CompositeLogicalTrajectoryFilter")<<"I don't understand the logic: "<<ls
          ;
      }
      filters.push_back(std::make_pair(l,TrajectoryFilterFactory::get()->create(vpset[i].getParameter<std::string>("ComponentName"), vpset[i])));
    
    }
  }
CompositeLogicalTrajectoryFilter::~CompositeLogicalTrajectoryFilter ( ) [inline]

Definition at line 35 of file CompositeLogicalTrajectoryFilter.h.

References filters, and i.

                                     {
    for (unsigned int i=0;i!= filters.size();i++) { delete filters[i].second;} filters.clear();
  }

Member Function Documentation

virtual std::string CompositeLogicalTrajectoryFilter::name ( void  ) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 47 of file CompositeLogicalTrajectoryFilter.h.

{return "CompositeLogicalTrajectoryFilter";}
template<class T >
bool CompositeLogicalTrajectoryFilter::QF ( const T traj) const [inline, protected]

Definition at line 57 of file CompositeLogicalTrajectoryFilter.h.

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

                                                {
    bool condition=true;

    unsigned int n=filters.size();
    if (n==0) { edm::LogError("CompositeLogicalTrajectoryFilter")<<n<<" filters !." ; return false;}
    condition=filters[0].second->qualityFilter(traj);

    unsigned int i=1;
    for (;i<n;i++){ 
      bool lcondition =filters[i].second->qualityFilter(traj);
      if (filters[i].first==OR)
        condition= condition || lcondition;
      else if (filters[i].first==AND)
        condition= condition && lcondition;
    }  
    return condition;   
  }
virtual bool CompositeLogicalTrajectoryFilter::qualityFilter ( const Trajectory traj) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 41 of file CompositeLogicalTrajectoryFilter.h.

{ return QF<Trajectory>(traj);}
virtual bool CompositeLogicalTrajectoryFilter::qualityFilter ( const TempTrajectory traj) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 42 of file CompositeLogicalTrajectoryFilter.h.

{ return QF<TempTrajectory>(traj);}
template<class T >
bool CompositeLogicalTrajectoryFilter::TBC ( T traj) const [inline, protected]

Definition at line 50 of file CompositeLogicalTrajectoryFilter.h.

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

                                            {
    unsigned int i=0;
    unsigned int n=filters.size();
    for (;i<n;i++){ if (!filters[i].second->toBeContinued(traj)) return false; }
    return true;
  }
virtual bool CompositeLogicalTrajectoryFilter::toBeContinued ( TempTrajectory traj) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 45 of file CompositeLogicalTrajectoryFilter.h.

{ return TBC<TempTrajectory>(traj);}
virtual bool CompositeLogicalTrajectoryFilter::toBeContinued ( Trajectory traj) const [inline, virtual]

Implements TrajectoryFilter.

Definition at line 44 of file CompositeLogicalTrajectoryFilter.h.

{ return TBC<Trajectory>(traj);}

Member Data Documentation

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