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 #include "TopQuarkAnalysis/TopHitFit/interface/LeptonTranslatorBase.h"
0018 #include "DataFormats/PatCandidates/interface/Muon.h"
0019
0020 namespace hitfit {
0021
0022 template <>
0023 LeptonTranslatorBase<pat::Muon>::LeptonTranslatorBase() {
0024 [[clang::suppress]]
0025 std::string CMSSW_BASE(std::getenv("CMSSW_BASE"));
0026 std::string resolution_filename =
0027 CMSSW_BASE + std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleMuonResolution.txt");
0028 resolution_ = EtaDepResolution(resolution_filename);
0029
0030 }
0031
0032 template <>
0033 LeptonTranslatorBase<pat::Muon>::LeptonTranslatorBase(const std::string& ifile) {
0034 [[clang::suppress]]
0035 std::string CMSSW_BASE(std::getenv("CMSSW_BASE"));
0036 std::string resolution_filename;
0037
0038 if (ifile.empty()) {
0039 resolution_filename = CMSSW_BASE + std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleMuonResolution.txt");
0040 } else {
0041 resolution_filename = ifile;
0042 }
0043
0044 resolution_ = EtaDepResolution(resolution_filename);
0045
0046 }
0047
0048 template <>
0049 LeptonTranslatorBase<pat::Muon>::~LeptonTranslatorBase() {
0050 }
0051
0052 template <>
0053 Lepjets_Event_Lep LeptonTranslatorBase<pat::Muon>::operator()(const pat::Muon& lepton,
0054 int type ,
0055 bool useObjEmbRes ) {
0056 Fourvec p(lepton.px(), lepton.py(), lepton.pz(), lepton.energy());
0057
0058 double muon_eta = lepton.eta();
0059 Vector_Resolution muon_resolution = resolution_.GetResolution(muon_eta);
0060
0061 Lepjets_Event_Lep muon(p, muon_label, muon_resolution);
0062 return muon;
0063
0064 }
0065
0066 template <>
0067 const EtaDepResolution& LeptonTranslatorBase<pat::Muon>::resolution() const {
0068 return resolution_;
0069 }
0070
0071 template <>
0072 bool LeptonTranslatorBase<pat::Muon>::CheckEta(const pat::Muon& lepton) const {
0073 return resolution_.CheckEta(lepton.eta());
0074 }
0075
0076 }