ATLAS Offline Software
Loading...
Searching...
No Matches
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
16namespace EventReco {
17namespace KLFEnums {
28
44
45static const std::map<std::string, LeptonType> strToLeptonType{
46 {"kNoLepton", kNoLepton},
47 {"kElectron", kElectron},
48 {"kMuon", kMuon},
49 {"kTriElectron", kTriElectron},
50 {"kTriMuon", kTriMuon}};
51
52static 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
61static 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
75using KLFitter::LikelihoodBase;
76static const std::map<std::string, LikelihoodBase::BtaggingMethod>
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
88static const std::map<JetSelectionMode, size_t> jetSelToNumber{
89 {kLeadingThree, 3}, {kLeadingFour, 4},
90 {kLeadingFive, 5}, {kLeadingSix, 6},
95
96template <class T>
97std::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
std::string printEnumOptions(const std::map< std::string, T > &availOpts)
static const std::map< std::string, LeptonType > strToLeptonType
static const std::map< std::string, Likelihood > strToLikelihood
static const std::map< std::string, JetSelectionMode > strToJetSelection
static const std::map< std::string, LikelihoodBase::BtaggingMethod > strToBtagMethod
static const std::map< JetSelectionMode, size_t > jetSelToNumber