CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
PVObjectSelector Class Reference

#include <PVObjectSelector.h>

Inheritance diagram for PVObjectSelector:
Selector< reco::Vertex >

Public Member Functions

bool operator() (reco::Vertex const &pv, pat::strbitset &ret) override
 
 PVObjectSelector ()
 
 PVObjectSelector (edm::ParameterSet const &params, edm::ConsumesCollector &&iC)
 
 PVObjectSelector (edm::ParameterSet const &params)
 
- Public Member Functions inherited from Selector< reco::Vertex >
void clear (std::string const &s)
 Turn off a given selection cut. More...
 
void clear (index_type const &i)
 
bool considerCut (std::string const &s) const
 consider the cut at index "s" More...
 
bool considerCut (index_type const &i) const
 
int cut (index_type const &i, int val) const
 Access the int cut values at index "s". More...
 
double cut (index_type const &i, double val) const
 Access the double cut values at index "s". More...
 
int cut (std::string s, int val) const
 Access the int cut values at index "s". More...
 
double cut (std::string s, double val) const
 Access the double cut values at index "s". More...
 
pat::strbitset getBitTemplate () const
 Get an empty bitset with the proper names. More...
 
double getPasses (std::string const &s) const
 Return the number of passing cases. More...
 
double getPasses (index_type const &i) const
 
bool ignoreCut (std::string const &s) const
 ignore the cut at index "s" More...
 
bool ignoreCut (index_type const &i) const
 
virtual bool operator() (reco::Vertex const &t, pat::strbitset &ret)=0
 This provides the interface for base classes to select objects. More...
 
virtual bool operator() (reco::Vertex const &t)
 This provides an alternative signature without the second ret. More...
 
virtual bool operator() (reco::Vertex const &t, edm::EventBase const &e, pat::strbitset &ret)
 This provides an alternative signature that includes extra information. More...
 
virtual bool operator() (reco::Vertex const &t, edm::EventBase const &e)
 This provides an alternative signature that includes extra information. More...
 
bool operator[] (std::string const &s) const
 
bool operator[] (index_type const &i) const
 
void passCut (pat::strbitset &ret, std::string const &s)
 Passing cuts. More...
 
void passCut (pat::strbitset &ret, index_type const &i)
 
void print (std::ostream &out) const
 Print the cut flow. More...
 
void printActiveCuts (std::ostream &out) const
 Print the cuts being considered. More...
 
virtual void push_back (std::string const &s)
 This is the registration of an individual cut string. More...
 
virtual void push_back (std::string const &s, int cut)
 This is the registration of an individual cut string, with an int cut value. More...
 
virtual void push_back (std::string const &s, double cut)
 This is the registration of an individual cut string, with a double cut value. More...
 
 Selector ()
 Constructor clears the bits. More...
 
void set (std::string const &s, bool val=true)
 Set a given selection cut, on or off. More...
 
void set (index_type const &i, bool val=true)
 
void set (std::string const &s, int cut, bool val=true)
 Set a given selection cut, on or off, and reset int cut value. More...
 
void set (index_type const &i, int cut, bool val=true)
 
void set (std::string const &s, double cut, bool val=true)
 Set a given selection cut, on or off, and reset int cut value. More...
 
void set (index_type const &i, double cut, bool val=true)
 
void setIgnored (pat::strbitset &ret)
 set ignored bits More...
 
void setIgnoredCuts (std::vector< std::string > const &bitsToIgnore)
 set the bits to ignore from a vector More...
 
virtual ~Selector ()
 

Private Attributes

index_type indexNDOF_
 
index_type indexRho_
 
index_type indexZ_
 

Additional Inherited Members

- Public Types inherited from Selector< reco::Vertex >
typedef std::binary_function< reco::Vertex, pat::strbitset, bool > base_type
 
typedef std::pair< index_type, size_t > cut_flow_item
 
typedef std::vector< cut_flow_itemcut_flow_map
 
typedef reco::Vertex data_type
 
typedef std::map< index_type, double > double_map
 
typedef pat::strbitset::index_type index_type
 
typedef std::map< index_type, int > int_map
 
- Protected Attributes inherited from Selector< reco::Vertex >
pat::strbitset bits_
 the bitset indexed by strings More...
 
cut_flow_map cutFlow_
 map of cut flows in "human" order More...
 
double_map doubleCuts_
 the double-value cut map More...
 
int_map intCuts_
 the int-value cut map More...
 
pat::strbitset retInternal_
 internal ret if users don't care about return bits More...
 

Detailed Description

Definition at line 17 of file PVObjectSelector.h.

Constructor & Destructor Documentation

PVObjectSelector::PVObjectSelector ( )
inline

Definition at line 20 of file PVObjectSelector.h.

20 {}
PVObjectSelector::PVObjectSelector ( edm::ParameterSet const &  params,
edm::ConsumesCollector &&  iC 
)
inline

Definition at line 23 of file PVObjectSelector.h.

23  :
24  PVObjectSelector( params )
25  {}
PVObjectSelector::PVObjectSelector ( edm::ParameterSet const &  params)
inline

Definition at line 28 of file PVObjectSelector.h.

References Selector< reco::Vertex >::bits_, edm::ParameterSet::exists(), Selector< reco::Vertex >::getBitTemplate(), edm::ParameterSet::getParameter(), indexNDOF_, indexRho_, indexZ_, Selector< reco::Vertex >::push_back(), Selector< reco::Vertex >::retInternal_, and Selector< reco::Vertex >::setIgnoredCuts().

28  {
29  push_back("PV NDOF", params.getParameter<double>("minNdof") );
30  push_back("PV Z", params.getParameter<double>("maxZ") );
31  push_back("PV RHO", params.getParameter<double>("maxRho") );
32  set("PV NDOF");
33  set("PV Z");
34  set("PV RHO");
35 
36  indexNDOF_ = index_type (&bits_, "PV NDOF");
37  indexZ_ = index_type (&bits_, "PV Z");
38  indexRho_ = index_type (&bits_, "PV RHO");
39 
40  if ( params.exists("cutsToIgnore") )
41  setIgnoredCuts( params.getParameter<std::vector<std::string> >("cutsToIgnore") );
42 
44  }
pat::strbitset::index_type index_type
Definition: Selector.h:29
pat::strbitset retInternal_
internal ret if users don&#39;t care about return bits
Definition: Selector.h:287
pat::strbitset bits_
the bitset indexed by strings
Definition: Selector.h:286
virtual void push_back(std::string const &s)
This is the registration of an individual cut string.
Definition: Selector.h:46
index_type indexRho_
index_type indexNDOF_
pat::strbitset getBitTemplate() const
Get an empty bitset with the proper names.
Definition: Selector.h:212
void setIgnoredCuts(std::vector< std::string > const &bitsToIgnore)
set the bits to ignore from a vector
Definition: Selector.h:167

Member Function Documentation

bool PVObjectSelector::operator() ( reco::Vertex const &  pv,
pat::strbitset ret 
)
inlineoverride

Definition at line 46 of file PVObjectSelector.h.

References Selector< reco::Vertex >::cut(), Selector< reco::Vertex >::ignoreCut(), indexNDOF_, indexRho_, indexZ_, reco::Vertex::isFake(), reco::Vertex::ndof(), Utilities::operator, Selector< reco::Vertex >::passCut(), reco::Vertex::position(), Selector< reco::Vertex >::setIgnored(), and reco::Vertex::z().

46  {
47  if ( pv.isFake() ) return false;
48 
49  if ( pv.ndof() >= cut(indexNDOF_, double() )
50  || ignoreCut(indexNDOF_) ) {
51  passCut(ret, indexNDOF_ );
52  if ( fabs(pv.z()) <= cut(indexZ_, double())
53  || ignoreCut(indexZ_) ) {
54  passCut(ret, indexZ_ );
55  if ( fabs(pv.position().Rho()) <= cut(indexRho_, double() )
56  || ignoreCut(indexRho_) ) {
57  passCut( ret, indexRho_);
58  }
59  }
60  }
61 
62  setIgnored(ret);
63 
64  return (bool)ret;
65  }
void setIgnored(pat::strbitset &ret)
set ignored bits
Definition: Selector.h:224
void passCut(pat::strbitset &ret, std::string const &s)
Passing cuts.
Definition: Selector.h:176
bool ignoreCut(std::string const &s) const
ignore the cut at index "s"
Definition: Selector.h:159
def pv(vc)
Definition: MetAnalyzer.py:7
index_type indexRho_
index_type indexNDOF_
int cut(index_type const &i, int val) const
Access the int cut values at index "s".
Definition: Selector.h:194

Member Data Documentation

index_type PVObjectSelector::indexNDOF_
private

Definition at line 70 of file PVObjectSelector.h.

Referenced by operator()(), and PVObjectSelector().

index_type PVObjectSelector::indexRho_
private

Definition at line 72 of file PVObjectSelector.h.

Referenced by operator()(), and PVObjectSelector().

index_type PVObjectSelector::indexZ_
private

Definition at line 71 of file PVObjectSelector.h.

Referenced by operator()(), and PVObjectSelector().