CMS 3D CMS Logo

GsfEleFull5x5E2x5OverE5x5Cut.cc
Go to the documentation of this file.
3 
5 
7 public:
9 
10  result_type operator()(const reco::GsfElectronPtr&) const final;
11 
12  double value(const reco::CandidatePtr& cand) const final;
13 
14  CandidateType candidateType() const final {
15  return ELECTRON;
16  }
17 
18 private:
21 
22 
23 
24 };
25 
28  "GsfEleFull5x5E2x5OverE5x5Cut");
29 
31  CutApplicatorBase(params),
32  minE1x5OverE5x5Cut_(params,"minE1x5OverE5x5"),
33  minE2x5OverE5x5Cut_(params,"minE2x5OverE5x5"){
34 }
35 
36 
37 CutApplicatorBase::result_type
40 
41  const double e5x5 = cand->full5x5_e5x5();
42  const double e2x5OverE5x5 = e5x5!=0 ? cand->full5x5_e2x5Max()/e5x5 : 0;
43  const double e1x5OverE5x5 = e5x5!=0 ? cand->full5x5_e1x5()/e5x5 : 0;
44 
45  return e1x5OverE5x5 > minE1x5OverE5x5Cut_(cand) || e2x5OverE5x5 > minE2x5OverE5x5Cut_(cand);
46 
47 }
48 
50 value(const reco::CandidatePtr& cand) const {
51  reco::GsfElectronPtr ele(cand);
52  //btw we broke somebodies nice model of assuming every cut is 1D....
53  //what this is returning is fairly meaningless...
54  return ele->full5x5_e1x5() ? ele->full5x5_e2x5Max()/ele->full5x5_e1x5() : 0.;
55 }
float full5x5_e5x5() const
Definition: GsfElectron.h:462
float full5x5_e1x5() const
Definition: GsfElectron.h:460
double value(const reco::CandidatePtr &cand) const final
GsfEleFull5x5E2x5OverE5x5Cut(const edm::ParameterSet &c)
result_type operator()(const reco::GsfElectronPtr &) const final
float full5x5_e2x5Max() const
Definition: GsfElectron.h:461
#define DEFINE_EDM_PLUGIN(factory, type, name)
CandidateType candidateType() const final