void process(const std::vector<std::string>& inputFiles, const std::string& name, const std::string& outputFile) { TChain* signal = loadChain(inputFiles, "signal"); TChain* background = loadChain(inputFiles, "background"); TFile* output = TFile::Open(outputFile.c_str(), "recreate"); TMVA::Factory* factory = new TMVA::Factory(name.c_str(), output, "V"); factory->AddSignalTree(signal, 1.); factory->AddBackgroundTree(background, 1.); //{ //factory->AddVariable("lightJet1p2_Pt"); //factory->AddVariable("leptonic_B_Pt"); //factory->AddVariable("leptonic_Top_Pt"); //factory->AddVariable("leptonic_Top_M"); //factory->AddVariable("hadronic_B_Pt"); //factory->AddVariable("hadronic_W_M"); //factory->AddVariable("hadronic_Top_Pt"); //factory->AddVariable("hadronic_Top_M"); //factory->AddVariable("delta_R_tops"); //factory->AddVariable("delta_R_lightjets"); //factory->AddVariable("leptonic_B_CSV"); //factory->AddVariable("hadronic_B_CSV"); //} // chi^2 style { factory->AddVariable("leptonic_Top_M"); factory->AddVariable("hadronic_W_M"); factory->AddVariable("hadronic_Top_M"); factory->AddVariable("ht_fraction"); } factory->SetWeightExpression("weight"); factory->PrepareTrainingAndTestTree("", "", "V:VerboseLevel=Info:nTrain_Signal=100000:nTrain_Background=100000:nTest_Signal=100000:nTest_Background=100000"); factory->BookMethod(TMVA::Types::kBDT, "BDT", "V:BoostType=AdaBoost:nCuts=20:VarTransform=D"); factory->BookMethod(TMVA::Types::kMLP, "NN", "V:VarTransform=D"); //factory->BookMethod(TMVA::Types::kPDERS, "PDERS", "V"); factory->TrainAllMethods(); factory->TestAllMethods(); factory->EvaluateAllMethods(); output->Close(); delete output; delete signal; delete background; }
void reduce(const std::vector<std::string>& inputFiles, const std::string& outputFile, bool isData, const std::string& type, int max, double generator_weight, const std::string& puSyst, const std::string& pdfSyst, const std::string& jecSyst, const std::string& triggerSyst, const std::string& leptonSyst, const std::string& btagSyst, bool useMVA, bool useChi2, bool useKF, bool useHybrid, bool runOnSkim) { TChain* mtt = NULL, *event = NULL, *vertices = NULL; loadChain(inputFiles, mtt, event, vertices); reduce(mtt, event, vertices, outputFile, isData, type, max, generator_weight, puSyst, pdfSyst, jecSyst, triggerSyst, leptonSyst, btagSyst, useMVA, useChi2, useKF, useHybrid, runOnSkim); delete mtt; delete event; }
TGraph* plot(const TString& what, const TString& cut="", const TString& opt="") { loadChain(); ch->Draw(what,cut,"goff"); TGraph *gr=new TGraph(Tree2HDM->GetSelectedRows(), Tree2HDM->GetV2(), Tree2HDM->GetV1()); gr->SetTitle(what); gr->Draw(opt); //gPad->Print(what+".pdf"); return gr; }