ATLAS Offline Software
Typedefs | Functions
FlavorTagDiscriminants::str Namespace Reference

Typedefs

typedef std::vector< std::pair< std::regex, std::string > > StringRegexes
 

Functions

const std::string remapName (const std::string &name, std::map< std::string, std::string > &remap, std::set< std::string > &usedRemap)
 
std::string sub_first (const StringRegexes &res, const std::string &var_name, const std::string &context)
 
template<typename T >
match_first (const std::vector< std::pair< std::regex, T > > &regexes, const std::string &var_name, const std::string &context)
 

Typedef Documentation

◆ StringRegexes

typedef std::vector<std::pair<std::regex, std::string> > FlavorTagDiscriminants::str::StringRegexes

Function Documentation

◆ match_first()

template<typename T >
T FlavorTagDiscriminants::str::match_first ( const std::vector< std::pair< std::regex, T > > &  regexes,
const std::string &  var_name,
const std::string &  context 
)

Definition at line 27 of file PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/StringUtils.h.

29  {
30  for (const auto& pair: regexes) {
31  if (std::regex_match(var_name, pair.first)) {
32  return pair.second;
33  }
34  }
35  throw std::logic_error(
36  "no regex match found for input variable '" + var_name + "' in "
37  + context);
38  }

◆ remapName()

const std::string FlavorTagDiscriminants::str::remapName ( const std::string &  name,
std::map< std::string, std::string > &  remap,
std::set< std::string > &  usedRemap 
)

Definition at line 8 of file PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/StringUtils.cxx.

10  {
11  if (auto h = remap.extract(name)) {
12  usedRemap.insert(h.key());
13  return h.mapped();
14  }
15  return name;
16 }

◆ sub_first()

std::string FlavorTagDiscriminants::str::sub_first ( const StringRegexes res,
const std::string &  var_name,
const std::string &  context 
)

Definition at line 19 of file PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/StringUtils.cxx.

21  {
22  for (const auto& pair: res) {
23  const std::regex& re = pair.first;
24  const std::string& fmt = pair.second;
25  if (std::regex_match(var_name, re)) {
26  return std::regex_replace(var_name, re, fmt);
27  }
28  }
29  throw std::logic_error(
30  "no regex match found for variable '" + var_name + "' while " + context);
31  }
CheckAppliedSFs.var_name
var_name
Definition: CheckAppliedSFs.py:241
PrepareReferenceFile.regex
regex
Definition: PrepareReferenceFile.py:43
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
fmt
h
remap
std::map< std::string, std::string > remap
list of directories to be explicitly remapped
Definition: hcg.cxx:92
re
const boost::regex re(r_e)