Functor that operates on <T> More...
#include <CommonTools/Utils/interface/Selector.h>
Public Types | |
typedef std::binary_function < T, 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 T | 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 |
Public Member Functions | |
void | clear (std::string const &s) |
Turn off a given selection cut. | |
void | clear (index_type const &i) |
bool | considerCut (std::string const &s) const |
consider the cut at index "s" | |
bool | considerCut (index_type const &i) const |
int | cut (index_type const &i, int val) const |
Access the int cut values at index "s". | |
double | cut (index_type const &i, double val) const |
Access the double cut values at index "s". | |
int | cut (std::string s, int val) const |
Access the int cut values at index "s". | |
double | cut (std::string s, double val) const |
Access the double cut values at index "s". | |
pat::strbitset | getBitTemplate () const |
Get an empty bitset with the proper names. | |
double | getPasses (std::string const &s) const |
Return the number of passing cases. | |
double | getPasses (index_type const &i) const |
bool | ignoreCut (std::string const &s) const |
ignore the cut at index "s" | |
bool | ignoreCut (index_type const &i) const |
virtual bool | operator() (T const &t, pat::strbitset &ret)=0 |
This provides the interface for base classes to select objects. | |
virtual bool | operator() (T const &t, edm::EventBase const &e, pat::strbitset &ret) |
This provides an alternative signature that includes extra information. | |
virtual bool | operator() (T const &t, edm::EventBase const &e) |
This provides an alternative signature that includes extra information. | |
virtual bool | operator() (T const &t) |
This provides an alternative signature without the second ret. | |
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. | |
void | passCut (pat::strbitset &ret, index_type const &i) |
void | print (std::ostream &out) const |
Print the cut flow. | |
void | printActiveCuts (std::ostream &out) const |
Print the cuts being considered. | |
virtual void | push_back (std::string const &s, int cut) |
This is the registration of an individual cut string, with an int cut value. | |
virtual void | push_back (std::string const &s, double cut) |
This is the registration of an individual cut string, with a double cut value. | |
virtual void | push_back (std::string const &s) |
This is the registration of an individual cut string. | |
Selector () | |
Constructor clears the bits. | |
void | set (std::string const &s, int cut, bool val=true) |
Set a given selection cut, on or off, and reset int cut value. | |
void | set (std::string const &s, bool val=true) |
Set a given selection cut, on or off. | |
void | set (index_type const &i, 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. | |
void | set (index_type const &i, double cut, bool val=true) |
void | set (index_type const &i, int cut, bool val=true) |
void | setIgnored (pat::strbitset &ret) |
set ignored bits | |
void | setIgnoredCuts (std::vector< std::string > const &bitsToIgnore) |
set the bits to ignore from a vector | |
virtual | ~Selector () |
Protected Attributes | |
pat::strbitset | bits_ |
the bitset indexed by strings | |
cut_flow_map | cutFlow_ |
map of cut flows in "human" order | |
double_map | doubleCuts_ |
the double-value cut map | |
int_map | intCuts_ |
the int-value cut map | |
pat::strbitset | retInternal_ |
internal ret if users don't care about return bits |
Functor that operates on <T>
Implements a string-indexed bit_vector.
class template that implements an interface to Selector utilities. This allows the user to access individual cuts based on a string index. The user can then turn individual cuts on and off at will.
Definition at line 25 of file Selector.h.
typedef std::binary_function<T,pat::strbitset,bool> Selector< T >::base_type |
Definition at line 29 of file Selector.h.
typedef std::pair<index_type, size_t> Selector< T >::cut_flow_item |
Definition at line 31 of file Selector.h.
typedef std::vector<cut_flow_item> Selector< T >::cut_flow_map |
Definition at line 32 of file Selector.h.
Definition at line 28 of file Selector.h.
typedef std::map<index_type, double> Selector< T >::double_map |
Definition at line 34 of file Selector.h.
typedef pat::strbitset::index_type Selector< T >::index_type |
Definition at line 30 of file Selector.h.
typedef std::map<index_type, int> Selector< T >::int_map |
Definition at line 33 of file Selector.h.
Constructor clears the bits.
Definition at line 37 of file Selector.h.
{ bits_.clear(); intCuts_.clear(); doubleCuts_.clear(); cutFlow_.clear(); retInternal_ = getBitTemplate(); }
Definition at line 44 of file Selector.h.
{}
void Selector< T >::clear | ( | std::string const & | s | ) | [inline] |
Turn off a given selection cut.
Definition at line 132 of file Selector.h.
Referenced by Selector< pat::Electron >::clear().
{ clear(index_type(&bits_,s)); }
void Selector< T >::clear | ( | index_type const & | i | ) | [inline] |
Definition at line 136 of file Selector.h.
bool Selector< T >::considerCut | ( | std::string const & | s | ) | const [inline] |
consider the cut at index "s"
Definition at line 152 of file Selector.h.
Referenced by Selector< pat::Electron >::print(), and Selector< pat::Electron >::printActiveCuts().
bool Selector< T >::considerCut | ( | index_type const & | i | ) | const [inline] |
Definition at line 155 of file Selector.h.
int Selector< T >::cut | ( | index_type const & | i, |
int | val | ||
) | const [inline] |
Access the int cut values at index "s".
Definition at line 195 of file Selector.h.
Referenced by Selector< pat::Electron >::cut(), Selector< pat::Electron >::push_back(), and Selector< pat::Electron >::set().
double Selector< T >::cut | ( | index_type const & | i, |
double | val | ||
) | const [inline] |
Access the double cut values at index "s".
Definition at line 199 of file Selector.h.
{ return doubleCuts_.find( i )->second; };
int Selector< T >::cut | ( | std::string | s, |
int | val | ||
) | const [inline] |
Access the int cut values at index "s".
Definition at line 204 of file Selector.h.
{ return cut( index_type(&bits_,s), val); };
double Selector< T >::cut | ( | std::string | s, |
double | val | ||
) | const [inline] |
Access the double cut values at index "s".
Definition at line 208 of file Selector.h.
{ return cut( index_type(&bits_,s), val); };
pat::strbitset Selector< T >::getBitTemplate | ( | ) | const [inline] |
Get an empty bitset with the proper names.
Definition at line 213 of file Selector.h.
Referenced by WPlusJetsEventSelector::operator()(), and Selector< pat::Electron >::Selector().
double Selector< T >::getPasses | ( | std::string const & | s | ) | const [inline] |
Return the number of passing cases.
Definition at line 270 of file Selector.h.
Referenced by Selector< pat::Electron >::getPasses().
{ return getPasses( index_type(&bits_,s) ); }
double Selector< T >::getPasses | ( | index_type const & | i | ) | const [inline] |
Definition at line 273 of file Selector.h.
bool Selector< T >::ignoreCut | ( | std::string const & | s | ) | const [inline] |
ignore the cut at index "s"
Definition at line 160 of file Selector.h.
Referenced by Selector< pat::Electron >::getBitTemplate(), and Selector< pat::Electron >::setIgnored().
bool Selector< T >::ignoreCut | ( | index_type const & | i | ) | const [inline] |
Definition at line 163 of file Selector.h.
virtual bool Selector< T >::operator() | ( | T const & | t | ) | [inline, virtual] |
This provides an alternative signature without the second ret.
Definition at line 80 of file Selector.h.
{ retInternal_.set(false); operator()(t, retInternal_); setIgnored(retInternal_); return (bool)retInternal_; }
virtual bool Selector< T >::operator() | ( | T const & | t, |
edm::EventBase const & | e | ||
) | [inline, virtual] |
This provides an alternative signature that includes extra information.
Definition at line 96 of file Selector.h.
{ retInternal_.set(false); operator()(t, e, retInternal_); setIgnored(retInternal_); return (bool)retInternal_; }
virtual bool Selector< T >::operator() | ( | T const & | t, |
pat::strbitset & | ret | ||
) | [pure virtual] |
This provides the interface for base classes to select objects.
Implemented in ElectronVPlusJetsIDSelectionFunctor, JetIDSelectionFunctor, MuonVPlusJetsIDSelectionFunctor, PFJetIDSelectionFunctor, PVObjectSelector, PVSelector, and SimpleCutBasedElectronIDSelectionFunctor.
Referenced by Selector< pat::Electron >::operator()().
virtual bool Selector< T >::operator() | ( | T const & | t, |
edm::EventBase const & | e, | ||
pat::strbitset & | ret | ||
) | [inline, virtual] |
This provides an alternative signature that includes extra information.
Reimplemented in MuonVPlusJetsIDSelectionFunctor.
Definition at line 90 of file Selector.h.
{ return operator()(t, ret); }
bool Selector< T >::operator[] | ( | index_type const & | i | ) | const [inline] |
Definition at line 147 of file Selector.h.
bool Selector< T >::operator[] | ( | std::string const & | s | ) | const [inline] |
Access the selector cut at index "s". "true" means to consider the cut. "false" means to ignore the cut.
Definition at line 143 of file Selector.h.
void Selector< T >::passCut | ( | pat::strbitset & | ret, |
std::string const & | s | ||
) | [inline] |
Passing cuts.
Definition at line 177 of file Selector.h.
Referenced by Selector< pat::Electron >::passCut().
{ passCut( ret, index_type(&bits_,s)); }
void Selector< T >::passCut | ( | pat::strbitset & | ret, |
index_type const & | i | ||
) | [inline] |
Definition at line 181 of file Selector.h.
void Selector< T >::print | ( | std::ostream & | out | ) | const [inline] |
Print the cut flow.
Definition at line 234 of file Selector.h.
Referenced by WPlusJetsEventSelector::printSelectors().
{ for ( cut_flow_map::const_iterator cutsBegin = cutFlow_.begin(), cutsEnd = cutFlow_.end(), icut = cutsBegin; icut != cutsEnd; ++icut ) { char buff[1000]; if ( considerCut( icut->first ) ) { sprintf(buff, "%6lu : %20s %10lu", static_cast<unsigned long>(icut - cutsBegin), icut->first.str().c_str(), static_cast<unsigned long>(icut->second) ); } else { sprintf(buff, "%6lu : %20s %10s", static_cast<unsigned long>(icut - cutsBegin), icut->first.str().c_str(), "off" ); } out << buff << std::endl; } }
void Selector< T >::printActiveCuts | ( | std::ostream & | out | ) | const [inline] |
Print the cuts being considered.
Definition at line 255 of file Selector.h.
{ bool already_printed_one = false; for ( cut_flow_map::const_iterator cutsBegin = cutFlow_.begin(), cutsEnd = cutFlow_.end(), icut = cutsBegin; icut != cutsEnd; ++icut ) { if ( considerCut( icut->first ) ) { if( already_printed_one ) out << ", "; out << icut->first; already_printed_one = true; } } out << std::endl; }
virtual void Selector< T >::push_back | ( | std::string const & | s | ) | [inline, virtual] |
This is the registration of an individual cut string.
Definition at line 47 of file Selector.h.
{ bits_.push_back(s); index_type i(&bits_,s); // don't need to check to see if the key is already there, // bits_ does that. cutFlow_.push_back( cut_flow_item(i, 0) ); }
virtual void Selector< T >::push_back | ( | std::string const & | s, |
double | cut | ||
) | [inline, virtual] |
This is the registration of an individual cut string, with a double cut value.
Definition at line 67 of file Selector.h.
{ bits_.push_back(s); index_type i(&bits_,s); doubleCuts_[i] = cut; // don't need to check to see if the key is already there, // bits_ does that. cutFlow_.push_back( cut_flow_item(i,0) ); }
virtual void Selector< T >::push_back | ( | std::string const & | s, |
int | cut | ||
) | [inline, virtual] |
This is the registration of an individual cut string, with an int cut value.
Definition at line 57 of file Selector.h.
void Selector< T >::set | ( | std::string const & | s, |
bool | val = true |
||
) | [inline] |
Set a given selection cut, on or off.
Definition at line 106 of file Selector.h.
{ set( index_type(&bits_,s), val); }
void Selector< T >::set | ( | index_type const & | i, |
bool | val = true |
||
) | [inline] |
Definition at line 109 of file Selector.h.
void Selector< T >::set | ( | std::string const & | s, |
double | cut, | ||
bool | val = true |
||
) | [inline] |
Set a given selection cut, on or off, and reset int cut value.
Definition at line 123 of file Selector.h.
{ set( index_type(&bits_,s), cut); }
void Selector< T >::set | ( | std::string const & | s, |
int | cut, | ||
bool | val = true |
||
) | [inline] |
Set a given selection cut, on or off, and reset int cut value.
Definition at line 114 of file Selector.h.
{ set( index_type(&bits_,s), cut); }
void Selector< T >::set | ( | index_type const & | i, |
double | cut, | ||
bool | val = true |
||
) | [inline] |
Definition at line 126 of file Selector.h.
{ bits_[i] = val; doubleCuts_[i] = cut; }
void Selector< T >::set | ( | index_type const & | i, |
int | cut, | ||
bool | val = true |
||
) | [inline] |
void Selector< T >::setIgnored | ( | pat::strbitset & | ret | ) | [inline] |
set ignored bits
Definition at line 225 of file Selector.h.
Referenced by Selector< pat::Electron >::operator()().
void Selector< T >::setIgnoredCuts | ( | std::vector< std::string > const & | bitsToIgnore | ) | [inline] |
set the bits to ignore from a vector
Definition at line 168 of file Selector.h.
{ for ( std::vector<std::string>::const_iterator ignoreBegin = bitsToIgnore.begin(), ignoreEnd = bitsToIgnore.end(), ibit = ignoreBegin; ibit != ignoreEnd; ++ibit ) { set(*ibit, false ); } }
pat::strbitset Selector< T >::bits_ [protected] |
the bitset indexed by strings
Definition at line 287 of file Selector.h.
Referenced by Selector< pat::Electron >::clear(), Selector< pat::Electron >::considerCut(), Selector< pat::Electron >::cut(), Selector< pat::Electron >::getBitTemplate(), Selector< pat::Electron >::getPasses(), Selector< pat::Electron >::ignoreCut(), Selector< pat::Electron >::operator[](), Selector< pat::Electron >::passCut(), Selector< pat::Electron >::push_back(), Selector< pat::Electron >::Selector(), and Selector< pat::Electron >::set().
cut_flow_map Selector< T >::cutFlow_ [protected] |
map of cut flows in "human" order
Definition at line 291 of file Selector.h.
Referenced by Selector< pat::Electron >::getBitTemplate(), Selector< pat::Electron >::getPasses(), Selector< pat::Electron >::passCut(), Selector< pat::Electron >::print(), Selector< pat::Electron >::printActiveCuts(), Selector< pat::Electron >::push_back(), Selector< pat::Electron >::Selector(), and Selector< pat::Electron >::setIgnored().
double_map Selector< T >::doubleCuts_ [protected] |
the double-value cut map
Definition at line 290 of file Selector.h.
Referenced by Selector< pat::Electron >::cut(), Selector< pat::Electron >::push_back(), Selector< pat::Electron >::Selector(), and Selector< pat::Electron >::set().
the int-value cut map
Definition at line 289 of file Selector.h.
Referenced by Selector< pat::Electron >::cut(), Selector< pat::Electron >::push_back(), Selector< pat::Electron >::Selector(), and Selector< pat::Electron >::set().
pat::strbitset Selector< T >::retInternal_ [protected] |
internal ret if users don't care about return bits
Definition at line 288 of file Selector.h.
Referenced by Selector< pat::Electron >::operator()(), and Selector< pat::Electron >::Selector().