void JsonPrettify::formatValue (web::json::value &val, utility::ostream_t &stream) { if ( val.is_array () ) formatArray (val.as_array (), stream) ; else if ( val.is_object () ) formatObject (val.as_object (), stream) ; else if ( val.is_string () ) format_string (val.as_string (), stream) ; else if ( val.is_boolean () ) format_boolean (val.as_bool (), stream) ; else if ( val.is_integer () ) format_integer (val.as_integer (), stream) ; else if ( val.is_double () ) format_double (val.as_double (), stream) ; else if ( val.is_null () ) format_null (stream) ; }
void makeSetOfPlots(TFile *f, TString postfix,TString var ,float min,float max,bool log,TString canvasName="",TString xtitle = " ref object p_{T}" , TString ytitle = "Efficiency") { TCanvas *c = new TCanvas("c_"+postfix+canvasName,"a",400,400); c->cd(); TString var2; if(var=="pt") var2 = "Pt"; if(var=="vertices") var2 = "Vertices"; TH1F *denom = f->Get("tauFakeRateMC"+postfix+"/ref"+var2); TH1F *match = f->Get("tauFakeRateMC"+postfix+"/match"+var); TH1F *dm = f->Get("tauFakeRateMC"+postfix+"/decayModeFinding"+var); TH1F *vl = f->Get("tauFakeRateMC"+postfix+"/byVLooseIsolation"+var); TH1F *l = f->Get("tauFakeRateMC"+postfix+"/byLooseIsolation"+var); TH1F *m = f->Get("tauFakeRateMC"+postfix+"/byMediumIsolation"+var); TH1F *t = f->Get("tauFakeRateMC"+postfix+"/byTightIsolation"+var); TGraphAsymmErrors * eff_match = new TGraphAsymmErrors; eff_match->Divide(match,denom); formatObject(eff_match,kYellow,20); eff_match->Draw("AP"); eff_match->GetYaxis()->SetTitle(ytitle); eff_match->GetXaxis()->SetTitle(xtitle); eff_match->GetYaxis()->SetRangeUser(min,max); TGraphAsymmErrors * eff_dm = new TGraphAsymmErrors; eff_dm->Divide(dm,denom); formatObject(eff_dm,kRed,20); eff_dm->Draw("Psame"); eff_dm->GetYaxis()->SetTitle(ytitle); eff_dm->GetXaxis()->SetTitle(xtitle); eff_dm->GetYaxis()->SetRangeUser(min,max); TGraphAsymmErrors * eff_vl = new TGraphAsymmErrors; eff_vl->Divide(vl,denom); formatObject(eff_vl,kBlue,21); eff_vl->Draw("Psame"); TGraphAsymmErrors * eff_l = new TGraphAsymmErrors; eff_l->Divide(l,denom); formatObject(eff_l,kMagenta,22); eff_l->Draw("Psame"); TGraphAsymmErrors * eff_m = new TGraphAsymmErrors; eff_m->Divide(m,denom); formatObject(eff_m,kGreen,23); eff_m->Draw("Psame"); TGraphAsymmErrors * eff_t = new TGraphAsymmErrors; eff_t->Divide(t,denom); formatObject(eff_t,kBlack,24); eff_t->Draw("Psame"); TLegend *legend = new TLegend(0.6,0.6,0.9,0.9); legend->AddEntry(eff_match,"Matching","p"); legend->AddEntry(eff_dm,"DecayFound","p"); legend->AddEntry(eff_vl,"VLoose","p"); legend->AddEntry(eff_l,"Loose","p"); legend->AddEntry(eff_m,"Medium","p"); legend->AddEntry(eff_t,"Tight","p"); legend->Draw(); if(log) c->SetLogy(); return c; }