File indexing completed on 2024-04-06 12:25:09
0001 #include "PhysicsTools/SelectorUtils/interface/CutApplicatorBase.h"
0002 #include "DataFormats/EgammaCandidates/interface/Photon.h"
0003
0004 class PhoFull5x5SigmaIEtaIEtaCut : public CutApplicatorBase {
0005 public:
0006 PhoFull5x5SigmaIEtaIEtaCut(const edm::ParameterSet& c);
0007
0008 result_type operator()(const reco::PhotonPtr&) const final;
0009
0010 double value(const reco::CandidatePtr& cand) const final;
0011
0012 CandidateType candidateType() const final { return PHOTON; }
0013
0014 private:
0015 float _cutValueEB;
0016 float _cutValueEE;
0017 float _barrelCutOff;
0018 };
0019
0020 DEFINE_EDM_PLUGIN(CutApplicatorFactory, PhoFull5x5SigmaIEtaIEtaCut, "PhoFull5x5SigmaIEtaIEtaCut");
0021
0022 PhoFull5x5SigmaIEtaIEtaCut::PhoFull5x5SigmaIEtaIEtaCut(const edm::ParameterSet& c)
0023 : CutApplicatorBase(c),
0024 _cutValueEB(c.getParameter<double>("cutValueEB")),
0025 _cutValueEE(c.getParameter<double>("cutValueEE")),
0026 _barrelCutOff(c.getParameter<double>("barrelCutOff")) {}
0027
0028 CutApplicatorBase::result_type PhoFull5x5SigmaIEtaIEtaCut::operator()(const reco::PhotonPtr& cand) const {
0029
0030 const float full5x5SigmaIEtaIEtaCutValue =
0031 (std::abs(cand->superCluster()->eta()) < _barrelCutOff ? _cutValueEB : _cutValueEE);
0032
0033
0034 return cand->full5x5_sigmaIetaIeta() < full5x5SigmaIEtaIEtaCutValue;
0035 }
0036
0037 double PhoFull5x5SigmaIEtaIEtaCut::value(const reco::CandidatePtr& cand) const {
0038 reco::PhotonPtr pho(cand);
0039 return pho->full5x5_sigmaIetaIeta();
0040 }