Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
KLFitterEnums.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 #ifndef KLFITTERNANALYSISALGORITHMS_KLFITTERENUMS_H_
9 #define KLFITTERNANALYSISALGORITHMS_KLFITTERENUMS_H_
10 
11 #include <map>
12 #include <sstream>
13 
14 #include "KLFitter/LikelihoodBase.h"
15 
16 namespace EventReco {
17 namespace KLFEnums {
18 enum Likelihood {
24  ttH,
26 };
28 
36  // keep btag priority and non-btag priority enum values separate
43 };
44 
45 static const std::map<std::string, LeptonType> strToLeptonType{
46  {"kNoLepton", kNoLepton},
47  {"kElectron", kElectron},
48  {"kMuon", kMuon},
49  {"kTriElectron", kTriElectron},
50  {"kTriMuon", kTriMuon}};
51 
52 static const std::map<std::string, Likelihood> strToLikelihood{
53  {"ttbar", ttbar},
54  {"ttbar_AllHad", ttbar_AllHad},
55  {"ttbar_JetAngles", ttbar_JetAngles},
56  {"ttbar_Angular", ttbar_Angular},
57  {"ttbar_BoostedLJets", ttbar_BoostedLJets},
58  {"ttH", ttH},
59  {"ttZTrilepton", ttZTrilepton}};
60 
61 static const std::map<std::string, JetSelectionMode> strToJetSelection{
62  {"kLeadingThree", kLeadingThree},
63  {"kLeadingFour", kLeadingFour},
64  {"kLeadingFive", kLeadingFive},
65  {"kLeadingSix", kLeadingSix},
66  {"kLeadingSeven", kLeadingSeven},
67  {"kLeadingEight", kLeadingEight},
68  {"kBtagPriorityThreeJets", kBtagPriorityThreeJets},
69  {"kBtagPriorityFourJets", kBtagPriorityFourJets},
70  {"kBtagPriorityFiveJets", kBtagPriorityFiveJets},
71  {"kBtagPrioritySixJets", kBtagPrioritySixJets},
72  {"kBtagPrioritySevenJets", kBtagPrioritySevenJets},
73  {"kBtagPriorityEightJets", kBtagPriorityEightJets}};
74 
75 using KLFitter::LikelihoodBase;
76 static const std::map<std::string, LikelihoodBase::BtaggingMethod>
77  strToBtagMethod{
78  {"kNotag", LikelihoodBase::BtaggingMethod::kNotag},
79  {"kVetoNoFit", LikelihoodBase::BtaggingMethod::kVetoNoFit},
80  {"kVetoNoFitLight", LikelihoodBase::BtaggingMethod::kVetoNoFitLight},
81  {"kVetoNoFitBoth", LikelihoodBase::BtaggingMethod::kVetoNoFitBoth},
82  {"kVetoHybridNoFit", LikelihoodBase::BtaggingMethod::kVetoHybridNoFit},
83  {"kWorkingPoint", LikelihoodBase::BtaggingMethod::kWorkingPoint},
84  {"kVeto", LikelihoodBase::BtaggingMethod::kVeto},
85  {"kVetoLight", LikelihoodBase::BtaggingMethod::kVetoLight},
86  {"kVetoBoth", LikelihoodBase::BtaggingMethod::kVetoBoth}};
87 
88 static const std::map<JetSelectionMode, size_t> jetSelToNumber{
89  {kLeadingThree, 3}, {kLeadingFour, 4},
90  {kLeadingFive, 5}, {kLeadingSix, 6},
91  {kLeadingSeven, 7}, {kLeadingEight, 8},
95 
96 template <class T>
97 std::string printEnumOptions(const std::map<std::string, T>& availOpts) {
98  std::stringstream sstream;
99  for (const auto& elem : availOpts) {
100  sstream << elem.first << " ";
101  }
102  return sstream.str();
103 }
104 } // namespace KLFEnums
105 } // namespace EventReco
106 
107 #endif
EventReco::KLFEnums::kLeadingThree
@ kLeadingThree
Definition: KLFitterEnums.h:30
EventReco::KLFEnums::ttbar_AllHad
@ ttbar_AllHad
Definition: KLFitterEnums.h:20
EventReco::KLFEnums::printEnumOptions
std::string printEnumOptions(const std::map< std::string, T > &availOpts)
Definition: KLFitterEnums.h:97
EventReco::KLFEnums::kLeadingSeven
@ kLeadingSeven
Definition: KLFitterEnums.h:34
EventReco::KLFEnums::kMuon
@ kMuon
Definition: KLFitterEnums.h:27
EventReco::KLFEnums::ttbar_BoostedLJets
@ ttbar_BoostedLJets
Definition: KLFitterEnums.h:23
EventReco::KLFEnums::kBtagPrioritySevenJets
@ kBtagPrioritySevenJets
Definition: KLFitterEnums.h:41
EventReco::KLFEnums::kLeadingFive
@ kLeadingFive
Definition: KLFitterEnums.h:32
EventReco::KLFEnums::kLeadingSix
@ kLeadingSix
Definition: KLFitterEnums.h:33
EventReco::KLFEnums::kElectron
@ kElectron
Definition: KLFitterEnums.h:27
EventReco::KLFEnums::ttbar_JetAngles
@ ttbar_JetAngles
Definition: KLFitterEnums.h:21
EventReco::KLFEnums::ttbar_Angular
@ ttbar_Angular
Definition: KLFitterEnums.h:22
EventReco::KLFEnums::JetSelectionMode
JetSelectionMode
Definition: KLFitterEnums.h:29
EventReco::KLFEnums::kLeadingEight
@ kLeadingEight
Definition: KLFitterEnums.h:35
EventReco::KLFEnums::ttZTrilepton
@ ttZTrilepton
Definition: KLFitterEnums.h:25
EventReco::KLFEnums::kBtagPriorityThreeJets
@ kBtagPriorityThreeJets
Definition: KLFitterEnums.h:37
EventReco::KLFEnums::ttH
@ ttH
Definition: KLFitterEnums.h:24
EventReco::KLFEnums::Likelihood
Likelihood
Definition: KLFitterEnums.h:18
EventReco::KLFEnums::kLeadingFour
@ kLeadingFour
Definition: KLFitterEnums.h:31
EventReco::KLFEnums::kBtagPriorityFiveJets
@ kBtagPriorityFiveJets
Definition: KLFitterEnums.h:39
EventReco::KLFEnums::ttbar
@ ttbar
Definition: KLFitterEnums.h:19
EventReco::KLFEnums::kTriElectron
@ kTriElectron
Definition: KLFitterEnums.h:27
EventReco
Definition: KLFitterEnums.h:16
EventReco::KLFEnums::kBtagPriorityFourJets
@ kBtagPriorityFourJets
Definition: KLFitterEnums.h:38
EventReco::KLFEnums::kNoLepton
@ kNoLepton
Definition: KLFitterEnums.h:27
EventReco::KLFEnums::kBtagPrioritySixJets
@ kBtagPrioritySixJets
Definition: KLFitterEnums.h:40
EventReco::KLFEnums::LeptonType
LeptonType
Definition: KLFitterEnums.h:27
EventReco::KLFEnums::kTriMuon
@ kTriMuon
Definition: KLFitterEnums.h:27
EventReco::KLFEnums::kBtagPriorityEightJets
@ kBtagPriorityEightJets
Definition: KLFitterEnums.h:42