Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }