7 #include "TLorentzVector.h"
8 #include "TObjString.h"
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);
29 return parsed_strings;
35 for( TString&
str : parsed_strings ){
36 str.ReplaceAll(
" ",
"");
37 if(
str.Contains(
":=")){
41 return parsed_strings;
46 using namespace DiTauRecTools::msgHelperFunction;
47 std::unique_ptr<TFile> fBDT(TFile::Open(weightFile));
49 ANA_MSG_ERROR(
"configureMVABDT: Cannot find tau input BDT file: " << weightFile );
53 TTree* tBDT =
dynamic_cast<TTree*
> (fBDT->Get(
"BDT"));
55 ANA_MSG_ERROR(
"configureMVABDT: Cannot find tau input BDT tree");
59 ANA_MSG_INFO(
"configureMVABDT: opened file: " << weightFile);
61 std::vector<float*> vars;
64 TNamed* n_varList =
dynamic_cast<TNamed*
> (fBDT->Get(
"varList"));
66 ANA_MSG_ERROR(
"configureMVABDT: no Variable List in file: " << weightFile );
72 for(
const TString&
str : varList_ar){
73 if(
str.Length()==0)
continue;
75 if(itr==availableVars.end()){
76 ANA_MSG_ERROR(
"configureMVABDT: Variable : " <<
str <<
" is not available" );
79 vars.push_back( itr->second );
82 auto reader = std::make_unique<MVAUtils::BDT>(tBDT);
83 reader->SetPointers( vars );