CMS 3D CMS Logo

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

#include <PVSelector.h>

Inheritance diagram for PVSelector:
Selector< edm::EventBase >

Public Member Functions

bool operator() (edm::EventBase const &event, pat::strbitset &ret)
 This provides the interface for base classes to select objects. More...
 
 PVSelector ()
 
 PVSelector (edm::ParameterSet const &params)
 
edm::Handle< std::vector
< reco::Vertex > > const & 
vertices () const
 
- Public Member Functions inherited from Selector< edm::EventBase >
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() (edm::EventBaseconst &t)
 This provides an alternative signature without the second ret. More...
 
virtual bool operator() (edm::EventBaseconst &t, edm::EventBase const &e, pat::strbitset &ret)
 This provides an alternative signature that includes extra information. More...
 
virtual bool operator() (edm::EventBaseconst &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

edm::Handle< std::vector
< reco::Vertex > > 
h_primVtx
 
index_type indexNPV_
 
PVObjectSelector pvSel_
 
edm::InputTag pvSrc_
 

Additional Inherited Members

- Public Types inherited from Selector< edm::EventBase >
typedef std::binary_function
< edm::EventBase,
pat::strbitset, bool > 
base_type
 
typedef std::pair< index_type,
size_t > 
cut_flow_item
 
typedef std::vector
< cut_flow_item
cut_flow_map
 
typedef edm::EventBase 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< edm::EventBase >
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 12 of file PVSelector.h.

Constructor & Destructor Documentation

PVSelector::PVSelector ( )
inline

Definition at line 15 of file PVSelector.h.

15 {}
PVSelector::PVSelector ( edm::ParameterSet const &  params)
inline

Definition at line 17 of file PVSelector.h.

References Selector< edm::EventBase >::bits_, Selector< edm::EventBase >::getBitTemplate(), edm::ParameterSet::getParameter(), indexNPV_, Selector< edm::EventBase >::push_back(), Selector< edm::EventBase >::retInternal_, and Selector< edm::EventBase >::set().

17  :
18  pvSrc_ (params.getParameter<edm::InputTag>("pvSrc") ),
19  pvSel_ (params)
20  {
21  push_back("NPV", params.getParameter<int>("NPV") );
22  set("NPV");
24  indexNPV_ = index_type(&bits_, "NPV");
25  }
void set(std::string const &s, bool val=true)
Set a given selection cut, on or off.
Definition: Selector.h:106
index_type indexNPV_
Definition: PVSelector.h:67
pat::strbitset::index_type index_type
Definition: Selector.h:30
pat::strbitset retInternal_
internal ret if users don&#39;t care about return bits
Definition: Selector.h:288
pat::strbitset bits_
the bitset indexed by strings
Definition: Selector.h:287
virtual void push_back(std::string const &s)
This is the registration of an individual cut string.
Definition: Selector.h:47
edm::InputTag pvSrc_
Definition: PVSelector.h:64
pat::strbitset getBitTemplate() const
Get an empty bitset with the proper names.
Definition: Selector.h:213
PVObjectSelector pvSel_
Definition: PVSelector.h:65

Member Function Documentation

bool PVSelector::operator() ( edm::EventBase const &  t,
pat::strbitset ret 
)
inlinevirtual

This provides the interface for base classes to select objects.

Implements Selector< edm::EventBase >.

Definition at line 27 of file PVSelector.h.

References Selector< edm::EventBase >::cut(), h_primVtx, i, Selector< edm::EventBase >::ignoreCut(), indexNPV_, Selector< edm::EventBase >::passCut(), pvSel_, pvSrc_, pat::strbitset::set(), and Selector< edm::EventBase >::setIgnored().

27  {
28  ret.set(false);
29  event.getByLabel(pvSrc_, h_primVtx);
30 
31  // check if there is a good primary vertex
32 
33  if ( h_primVtx->size() < 1 ) return false;
34 
35  // Loop over PV's and count those that pass
36  int npv = 0;
37  for ( std::vector<reco::Vertex>::const_iterator ibegin = h_primVtx->begin(),
38  iend = h_primVtx->end(), i = ibegin; i != iend; ++i ) {
39  reco::Vertex const & pv = *i;
40  bool ipass = pvSel_(pv);
41  if ( ipass ) {
42  ++npv;
43  }
44  }
45 
46  // Set the strbitset
47  if ( npv >= cut(indexNPV_, int() ) || ignoreCut(indexNPV_) ) {
48  passCut(ret, indexNPV_);
49  }
50 
51  // Check if there is anything to ignore
52  setIgnored(ret);
53 
54  // Return status
55  bool pass = (bool)ret;
56  return pass;
57  }
int i
Definition: DBlmapReader.cc:9
index_type indexNPV_
Definition: PVSelector.h:67
void setIgnored(pat::strbitset &ret)
set ignored bits
Definition: Selector.h:225
void passCut(pat::strbitset &ret, std::string const &s)
Passing cuts.
Definition: Selector.h:177
bool ignoreCut(std::string const &s) const
ignore the cut at index &quot;s&quot;
Definition: Selector.h:160
edm::InputTag pvSrc_
Definition: PVSelector.h:64
strbitset & set(bool val=true)
set method of all bits
Definition: strbitset.h:144
PVObjectSelector pvSel_
Definition: PVSelector.h:65
edm::Handle< std::vector< reco::Vertex > > h_primVtx
Definition: PVSelector.h:66
int cut(index_type const &i, int val) const
Access the int cut values at index &quot;s&quot;.
Definition: Selector.h:195
edm::Handle<std::vector<reco::Vertex> > const& PVSelector::vertices ( ) const
inline

Definition at line 61 of file PVSelector.h.

References h_primVtx.

61 { return h_primVtx; }
edm::Handle< std::vector< reco::Vertex > > h_primVtx
Definition: PVSelector.h:66

Member Data Documentation

edm::Handle<std::vector<reco::Vertex> > PVSelector::h_primVtx
private

Definition at line 66 of file PVSelector.h.

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

index_type PVSelector::indexNPV_
private

Definition at line 67 of file PVSelector.h.

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

PVObjectSelector PVSelector::pvSel_
private

Definition at line 65 of file PVSelector.h.

Referenced by operator()().

edm::InputTag PVSelector::pvSrc_
private

Definition at line 64 of file PVSelector.h.

Referenced by operator()().