File indexing completed on 2023-03-17 11:26:09
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 std::string CMSSW_BASE(std::getenv("CMSSW_BASE"));
0026 std::string resolution_filename =
0027 CMSSW_BASE + std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
0028 resolution_ = EtaDepResolution(resolution_filename);
0029
0030 }
0031
0032 template <>
0033 LeptonTranslatorBase<pat::Electron>::LeptonTranslatorBase(const std::string& ifile) {
0034 std::string CMSSW_BASE(std::getenv("CMSSW_BASE"));
0035 std::string resolution_filename;
0036
0037 if (ifile.empty()) {
0038 resolution_filename =
0039 CMSSW_BASE + std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
0040 } else {
0041 resolution_filename = ifile;
0042 }
0043
0044 resolution_ = EtaDepResolution(resolution_filename);
0045
0046 }
0047
0048 template <>
0049 LeptonTranslatorBase<pat::Electron>::~LeptonTranslatorBase() {}
0050
0051 template <>
0052 Lepjets_Event_Lep LeptonTranslatorBase<pat::Electron>::operator()(const pat::Electron& lepton,
0053 int type ,
0054 bool useObjEmbRes ) {
0055 Fourvec p(lepton.px(), lepton.py(), lepton.pz(), lepton.energy());
0056
0057 double electron_eta = lepton.superCluster()->eta();
0058 Vector_Resolution electron_resolution = resolution_.GetResolution(electron_eta);
0059
0060 Lepjets_Event_Lep electron(p, electron_label, electron_resolution);
0061 return electron;
0062
0063 }
0064
0065 template <>
0066 const EtaDepResolution& LeptonTranslatorBase<pat::Electron>::resolution() const {
0067 return resolution_;
0068 }
0069
0070 template <>
0071 bool LeptonTranslatorBase<pat::Electron>::CheckEta(const pat::Electron& lepton) const {
0072 double electron_eta = lepton.superCluster()->eta();
0073 return resolution_.CheckEta(electron_eta);
0074 }
0075
0076 }