File indexing completed on 2025-02-13 02:58:09
0001 #include "DQMOffline/Trigger/interface/FunctionDefs.h"
0002
0003 template <>
0004 std::function<float(const reco::GsfElectron&)> hltdqm::getUnaryFuncExtraFloat<reco::GsfElectron>(
0005 const std::string& varName) {
0006 std::function<float(const reco::GsfElectron&)> varFunc;
0007 if (varName == "scEta")
0008 varFunc = scEtaFunc<reco::GsfElectron>;
0009 else if (varName == "hOverE")
0010 varFunc = [](const reco::GsfElectron& ele) -> float { return ele.hcalOverEcal(); };
0011 return varFunc;
0012 }
0013
0014 template <>
0015 std::function<float(const reco::Photon&)> hltdqm::getUnaryFuncExtraFloat<reco::Photon>(const std::string& varName) {
0016 std::function<float(const reco::Photon&)> varFunc;
0017 if (varName == "scEta")
0018 varFunc = scEtaFunc<reco::Photon>;
0019 else if (varName == "hOverE")
0020 varFunc = [](const reco::Photon& pho) -> float { return pho.hadTowOverEm(); };
0021 return varFunc;
0022 }
0023
0024 template <>
0025 std::function<float(const HLTGenValObject&)> hltdqm::getUnaryFuncExtraFloat<HLTGenValObject>(
0026 const std::string& varName) {
0027 std::function<float(const HLTGenValObject&)> varFunc;
0028
0029 if (varName == "ptRes")
0030 varFunc = &HLTGenValObject::ptRes;
0031 else if (varName == "etaRes")
0032 varFunc = &HLTGenValObject::etaRes;
0033 else if (varName == "phiRes")
0034 varFunc = &HLTGenValObject::phiRes;
0035 else if (varName == "massRes")
0036 varFunc = &HLTGenValObject::massRes;
0037 return varFunc;
0038 }