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 | Private Attributes
ElectronVPlusJetsIDSelectionFunctor Class Reference

#include <ElectronVPlusJetsIDSelectionFunctor.h>

Inheritance diagram for ElectronVPlusJetsIDSelectionFunctor:
Selector< pat::Electron >

Public Types

enum  Version_t { SUMMER08, FIRSTDATA, N_VERSIONS }
 
- Public Types inherited from Selector< pat::Electron >
typedef std::binary_function
< pat::Electron,
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 pat::Electron 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

 ElectronVPlusJetsIDSelectionFunctor ()
 
 ElectronVPlusJetsIDSelectionFunctor (edm::ParameterSet const &parameters, edm::ConsumesCollector &iC)
 
 ElectronVPlusJetsIDSelectionFunctor (edm::ParameterSet const &parameters)
 
 ElectronVPlusJetsIDSelectionFunctor (Version_t version, double d0=0.2, double ed0=999.0, double sd0=999.0, double reliso=0.1)
 
bool firstDataCuts (const pat::Electron &electron, pat::strbitset &ret)
 
void initialize (Version_t version, double d0, double ed0, double sd0, double reliso)
 
bool operator() (const pat::Electron &electron, pat::strbitset &ret)
 This provides the interface for base classes to select objects. More...
 
- Public Member Functions inherited from Selector< pat::Electron >
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() (pat::Electronconst &t)
 This provides an alternative signature without the second ret. More...
 
virtual bool operator() (pat::Electronconst &t, edm::EventBase const &e, pat::strbitset &ret)
 This provides an alternative signature that includes extra information. More...
 
virtual bool operator() (pat::Electronconst &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 indexD0_
 
index_type indexED0_
 
index_type indexRelIso_
 
index_type indexSD0_
 
Version_t version_
 

Additional Inherited Members

- Protected Attributes inherited from Selector< pat::Electron >
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 13 of file ElectronVPlusJetsIDSelectionFunctor.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

ElectronVPlusJetsIDSelectionFunctor::ElectronVPlusJetsIDSelectionFunctor ( )
inline

Definition at line 19 of file ElectronVPlusJetsIDSelectionFunctor.h.

19 {}
ElectronVPlusJetsIDSelectionFunctor::ElectronVPlusJetsIDSelectionFunctor ( edm::ParameterSet const &  parameters,
edm::ConsumesCollector iC 
)
inline
ElectronVPlusJetsIDSelectionFunctor::ElectronVPlusJetsIDSelectionFunctor ( edm::ParameterSet const &  parameters)
inline

Definition at line 27 of file ElectronVPlusJetsIDSelectionFunctor.h.

References gather_cfg::cout, Exception, edm::ParameterSet::exists(), FIRSTDATA, Selector< pat::Electron >::getBitTemplate(), edm::ParameterSet::getParameter(), initialize(), Selector< pat::Electron >::retInternal_, Selector< pat::Electron >::setIgnoredCuts(), and AlCaHLTBitMon_QueryRunRegistry::string.

27  {
28 
29  std::string versionStr = parameters.getParameter<std::string>("version");
30  if ( versionStr != "FIRSTDATA") {
31  std::cout << "The version " << versionStr << " is deprecated. Setting to FIRSTDATA" << std::endl;
32  }
33 
34  if (versionStr == "FIRSTDATA") {
36  parameters.getParameter<double>("D0"),
37  parameters.getParameter<double>("ED0"),
38  parameters.getParameter<double>("SD0"),
39  parameters.getParameter<double>("RelIso") );
40  if ( parameters.exists("cutsToIgnore") )
41  setIgnoredCuts( parameters.getParameter<std::vector<std::string> >("cutsToIgnore") );
42  } else {
43  throw cms::Exception("InvalidInput") << "Expect version to be one of SUMMER08, FIRSTDATA," << std::endl;
44  }
45 
47 
48  }
dictionary parameters
Definition: Parameters.py:2
pat::strbitset retInternal_
internal ret if users don&#39;t care about return bits
Definition: Selector.h:287
void initialize(Version_t version, double d0, double ed0, double sd0, double reliso)
pat::strbitset getBitTemplate() const
Get an empty bitset with the proper names.
Definition: Selector.h:212
tuple cout
Definition: gather_cfg.py:121
void setIgnoredCuts(std::vector< std::string > const &bitsToIgnore)
set the bits to ignore from a vector
Definition: Selector.h:167
ElectronVPlusJetsIDSelectionFunctor::ElectronVPlusJetsIDSelectionFunctor ( Version_t  version,
double  d0 = 0.2,
double  ed0 = 999.0,
double  sd0 = 999.0,
double  reliso = 0.1 
)
inline

Definition at line 51 of file ElectronVPlusJetsIDSelectionFunctor.h.

References initialize().

55  {
56  initialize( version, d0, ed0, sd0, reliso );
57  }
void initialize(Version_t version, double d0, double ed0, double sd0, double reliso)

Member Function Documentation

bool ElectronVPlusJetsIDSelectionFunctor::firstDataCuts ( const pat::Electron electron,
pat::strbitset ret 
)
inline

Definition at line 99 of file ElectronVPlusJetsIDSelectionFunctor.h.

References Selector< pat::Electron >::cut(), pat::Electron::dB(), reco::GsfElectron::dr03EcalRecHitSumEt(), reco::GsfElectron::dr03HcalTowerSumEt(), reco::GsfElectron::dr03TkSumPt(), pat::Electron::edB(), reco::LeafCandidate::et(), Selector< pat::Electron >::ignoreCut(), indexD0_, indexED0_, indexRelIso_, indexSD0_, Selector< pat::Electron >::passCut(), objects.IsoTrackAnalyzer::relIso, run_regression::ret, pat::strbitset::set(), and Selector< pat::Electron >::setIgnored().

Referenced by operator()().

100  {
101 
102  ret.set(false);
103  double corr_d0 = electron.dB();
104  double corr_ed0 = electron.edB();
105  double corr_sd0 = ( corr_ed0 > 0.000000001 ) ? corr_d0 / corr_ed0 : 999.0;
106 
107  double hcalIso = electron.dr03HcalTowerSumEt();
108  double ecalIso = electron.dr03EcalRecHitSumEt();
109  double trkIso = electron.dr03TkSumPt();
110  double et = electron.et() ;
111 
112  double relIso = (ecalIso + hcalIso + trkIso) / et;
113 
114  if ( fabs(corr_d0) < cut(indexD0_, double()) || ignoreCut(indexD0_) ) passCut(ret, indexD0_ );
115  if ( fabs(corr_ed0)< cut(indexED0_, double()) || ignoreCut(indexED0_) ) passCut(ret, indexED0_ );
116  if ( fabs(corr_sd0)< cut(indexSD0_, double()) || ignoreCut(indexSD0_) ) passCut(ret, indexSD0_ );
117  if ( relIso < cut(indexRelIso_, double()) || ignoreCut(indexRelIso_) ) passCut(ret, indexRelIso_ );
118 
119  setIgnored(ret);
120  return (bool)ret;
121  }
virtual double et() const
transverse energy
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 &quot;s&quot;
Definition: Selector.h:159
float dr03TkSumPt() const
Definition: GsfElectron.h:491
strbitset & set(bool val=true)
set method of all bits
Definition: strbitset.h:144
float dr03EcalRecHitSumEt() const
Definition: GsfElectron.h:492
double dB(IPTYPE type) const
Impact parameter wrt primary vertex or beamspot.
float dr03HcalTowerSumEt() const
Definition: GsfElectron.h:495
double edB(IPTYPE type) const
Uncertainty on the corresponding impact parameter.
int cut(index_type const &i, int val) const
Access the int cut values at index &quot;s&quot;.
Definition: Selector.h:194
void ElectronVPlusJetsIDSelectionFunctor::initialize ( Version_t  version,
double  d0,
double  ed0,
double  sd0,
double  reliso 
)
inline

Definition at line 60 of file ElectronVPlusJetsIDSelectionFunctor.h.

References Selector< pat::Electron >::bits_, indexD0_, indexED0_, indexRelIso_, indexSD0_, Selector< pat::Electron >::push_back(), Selector< pat::Electron >::set(), relval_steps::version, and version_.

Referenced by ElectronVPlusJetsIDSelectionFunctor().

65  {
66  version_ = version;
67 
68  push_back("D0", d0);
69  push_back("ED0", ed0);
70  push_back("SD0", sd0);
71  push_back("RelIso", reliso);
72 
73  // all on by default
74  set("D0");
75  set("ED0");
76  set("SD0");
77  set("RelIso");
78 
79 
80  indexD0_ = index_type(&bits_, "D0" );
81  indexED0_ = index_type(&bits_, "ED0" );
82  indexSD0_ = index_type(&bits_, "SD0" );
83  indexRelIso_ = index_type(&bits_, "RelIso" );
84 
85  }
void set(std::string const &s, bool val=true)
Set a given selection cut, on or off.
Definition: Selector.h:105
pat::strbitset::index_type index_type
Definition: Selector.h:29
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
bool ElectronVPlusJetsIDSelectionFunctor::operator() ( const pat::Electron t,
pat::strbitset ret 
)
inlinevirtual

This provides the interface for base classes to select objects.

Implements Selector< pat::Electron >.

Definition at line 88 of file ElectronVPlusJetsIDSelectionFunctor.h.

References FIRSTDATA, firstDataCuts(), and version_.

89  {
90  if ( version_ == FIRSTDATA ) return firstDataCuts( electron, ret );
91  else {
92  return false;
93  }
94  }
bool firstDataCuts(const pat::Electron &electron, pat::strbitset &ret)

Member Data Documentation

index_type ElectronVPlusJetsIDSelectionFunctor::indexD0_
private

Definition at line 128 of file ElectronVPlusJetsIDSelectionFunctor.h.

Referenced by firstDataCuts(), and initialize().

index_type ElectronVPlusJetsIDSelectionFunctor::indexED0_
private

Definition at line 129 of file ElectronVPlusJetsIDSelectionFunctor.h.

Referenced by firstDataCuts(), and initialize().

index_type ElectronVPlusJetsIDSelectionFunctor::indexRelIso_
private

Definition at line 131 of file ElectronVPlusJetsIDSelectionFunctor.h.

Referenced by firstDataCuts(), and initialize().

index_type ElectronVPlusJetsIDSelectionFunctor::indexSD0_
private

Definition at line 130 of file ElectronVPlusJetsIDSelectionFunctor.h.

Referenced by firstDataCuts(), and initialize().

Version_t ElectronVPlusJetsIDSelectionFunctor::version_
private

Definition at line 126 of file ElectronVPlusJetsIDSelectionFunctor.h.

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