ATLAS Offline Software
Classes | Functions
DiTauRecTools Namespace Reference

Implementation of boosted di-tau ID. More...

Classes

class  DiTauDiscriminantTool
 
class  DiTauIDVarCalculator
 
class  DiTauOnnxDiscriminantTool
 
class  IDiTauToolBase
 

Functions

std::unique_ptr< MVAUtils::BDTconfigureMVABDT (std::map< TString, float * > &availableVars, const TString &weightFile)
 
std::vector< TString > parseString (const TString &str, const TString &delim=",")
 
std::vector< TString > parseStringMVAUtilsBDT (const TString &str, const TString &delim=",")
 

Detailed Description

Implementation of boosted di-tau ID.

Tool to calculate and decorate ID variables for boosted di-tau candidates.

Author
David Kirchmeier (david.nosp@m..kir.nosp@m.chmei.nosp@m.er@c.nosp@m.ern.c.nosp@m.h)

Function Documentation

◆ configureMVABDT()

std::unique_ptr< MVAUtils::BDT > DiTauRecTools::configureMVABDT ( std::map< TString, float * > &  availableVars,
const TString &  weightFile 
)

Definition at line 45 of file Reconstruction/DiTauRecTools/Root/HelperFunctions.cxx.

45  {
46  using namespace DiTauRecTools::msgHelperFunction;
47  std::unique_ptr<TFile> fBDT(TFile::Open(weightFile));
48  if(!fBDT){
49  ANA_MSG_ERROR("configureMVABDT: Cannot find tau input BDT file: " << weightFile );
50  return nullptr;
51  }
52 
53  TTree* tBDT = dynamic_cast<TTree*> (fBDT->Get("BDT"));
54  if(!tBDT){
55  ANA_MSG_ERROR("configureMVABDT: Cannot find tau input BDT tree");
56  return nullptr;
57  }
58 
59  ANA_MSG_INFO("configureMVABDT: opened file: " << weightFile);
60 
61  std::vector<float*> vars;
62 
63  //parsing of variables done here from TNamed object
64  TNamed* n_varList = dynamic_cast<TNamed*> (fBDT->Get("varList"));
65  if(!n_varList) {
66  ANA_MSG_ERROR("configureMVABDT: no Variable List in file: " << weightFile );
67  return nullptr;
68  }
69  std::vector<TString> varList_ar = DiTauRecTools::parseStringMVAUtilsBDT(n_varList->GetTitle());
70  delete n_varList;
71 
72  for(const TString& str : varList_ar){
73  if(str.Length()==0) continue;
74  std::map<TString, float*>::iterator itr = availableVars.find(str);
75  if(itr==availableVars.end()){
76  ANA_MSG_ERROR("configureMVABDT: Variable : " << str << " is not available" );
77  return nullptr;
78  }
79  vars.push_back( itr->second );
80  }
81 
82  auto reader = std::make_unique<MVAUtils::BDT>(tBDT);
83  reader->SetPointers( vars );
84 
85  fBDT->Close();
86  return reader;
87 }

◆ parseString()

std::vector< TString > DiTauRecTools::parseString ( const TString &  str,
const TString &  delim = "," 
)

Definition at line 18 of file Reconstruction/DiTauRecTools/Root/HelperFunctions.cxx.

18  {
19  std::vector<TString> parsed_strings;
20  TObjArray* varList_ar = str.Tokenize(delim);
21  for(int i = 0; i != varList_ar->GetEntries(); ++i){
22  if (auto *tos = dynamic_cast<TObjString*> (varList_ar->At(i))) {
23  TString var = tos->String();
24  if(var.Length()==0) continue;
25  parsed_strings.push_back(var);
26  }
27  }
28  delete varList_ar;
29  return parsed_strings;
30 }

◆ parseStringMVAUtilsBDT()

std::vector< TString > DiTauRecTools::parseStringMVAUtilsBDT ( const TString &  str,
const TString &  delim = "," 
)

Definition at line 33 of file Reconstruction/DiTauRecTools/Root/HelperFunctions.cxx.

33  {
34  std::vector<TString> parsed_strings = parseString(str, delim);
35  for( TString& str : parsed_strings ){
36  str.ReplaceAll(" ", "");
37  if(str.Contains(":=")){
38  str=str(str.Index(":=")+2, str.Length()-str.Index(":=")-2);
39  }
40  }
41  return parsed_strings;
42 }
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
DiTauRecTools::parseStringMVAUtilsBDT
std::vector< TString > parseStringMVAUtilsBDT(const TString &str, const TString &delim=",")
Definition: Reconstruction/DiTauRecTools/Root/HelperFunctions.cxx:33
beamspotnt.var
var
Definition: bin/beamspotnt.py:1393
ANA_MSG_ERROR
#define ANA_MSG_ERROR(xmsg)
Macro printing error messages.
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:294
lumiFormat.i
int i
Definition: lumiFormat.py:85
python.CaloAddPedShiftConfig.str
str
Definition: CaloAddPedShiftConfig.py:42
ANA_MSG_INFO
#define ANA_MSG_INFO(xmsg)
Macro printing info messages.
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:290
DiTauRecTools::parseString
std::vector< TString > parseString(const TString &str, const TString &delim=",")
Definition: Reconstruction/DiTauRecTools/Root/HelperFunctions.cxx:18
str
Definition: BTagTrackIpAccessor.cxx:11
collisions.reader
reader
read the goodrunslist xml file(s)
Definition: collisions.py:22