File indexing completed on 2024-10-04 22:55:07
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include "TopQuarkAnalysis/TopHitFit/interface/LeptonTranslatorBase.h"
0019 #include "DataFormats/PatCandidates/interface/Electron.h"
0020
0021 namespace hitfit {
0022
0023 template <>
0024 LeptonTranslatorBase<pat::Electron>::LeptonTranslatorBase() {
0025 [[clang::suppress]]
0026 std::string CMSSW_BASE(std::getenv("CMSSW_BASE"));
0027 std::string resolution_filename =
0028 CMSSW_BASE + std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
0029 resolution_ = EtaDepResolution(resolution_filename);
0030
0031 }
0032
0033 template <>
0034 LeptonTranslatorBase<pat::Electron>::LeptonTranslatorBase(const std::string& ifile) {
0035 [[clang::suppress]]
0036 std::string CMSSW_BASE(std::getenv("CMSSW_BASE"));
0037 std::string resolution_filename;
0038
0039 if (ifile.empty()) {
0040 resolution_filename =
0041 CMSSW_BASE + std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
0042 } else {
0043 resolution_filename = ifile;
0044 }
0045
0046 resolution_ = EtaDepResolution(resolution_filename);
0047
0048 }
0049
0050 template <>
0051 LeptonTranslatorBase<pat::Electron>::~LeptonTranslatorBase() {}
0052
0053 template <>
0054 Lepjets_Event_Lep LeptonTranslatorBase<pat::Electron>::operator()(const pat::Electron& lepton,
0055 int type ,
0056 bool useObjEmbRes ) {
0057 Fourvec p(lepton.px(), lepton.py(), lepton.pz(), lepton.energy());
0058
0059 double electron_eta = lepton.superCluster()->eta();
0060 Vector_Resolution electron_resolution = resolution_.GetResolution(electron_eta);
0061
0062 Lepjets_Event_Lep electron(p, electron_label, electron_resolution);
0063 return electron;
0064
0065 }
0066
0067 template <>
0068 const EtaDepResolution& LeptonTranslatorBase<pat::Electron>::resolution() const {
0069 return resolution_;
0070 }
0071
0072 template <>
0073 bool LeptonTranslatorBase<pat::Electron>::CheckEta(const pat::Electron& lepton) const {
0074 double electron_eta = lepton.superCluster()->eta();
0075 return resolution_.CheckEta(electron_eta);
0076 }
0077
0078 }