/* this program compares the two branches of the two tree or the two branches from the same tree. */ void compareQuantities(string filename1, string filename2, string var1, string var2, string var3, int nbins, float min, float max, string cut=""){ //"abs(jgenEta[0])<5.0,jgenPt[0]>25" ){ if (filename2 == "") filename2 = filename1; if (var2 == "") var2 = var1; gStyle->SetOptStat(0); gROOT->SetStyle("Plain"); // gPad->SetLeftMargin(0.15); TFile *inputFile1 = new TFile(filename1.c_str()); TFile *inputFile2 = new TFile(filename2.c_str()); TTree *jetTree1 = (TTree *) inputFile1->Get("demo/tree"); TTree *jetTree2 = (TTree *) inputFile2->Get("demo/tree"); TH1F *var1H = new TH1F("var1H", "var1H", nbins, min, max); TH1F *var2H = new TH1F("var2H", "var2H", nbins, min, max); // cout << var1 << " " << var2 << endl; jetTree1->Draw(Form("%s>>var1H",var1.c_str()), cut.c_str(), "goff"); jetTree2->Draw(Form("%s>>var2H",var2.c_str()), cut.c_str(), "goff"); cout << var1H->GetEntries() << " " << var2H->GetEntries() << endl; var1H->SetLineWidth(2); var2H->SetLineWidth(2); var1H->SetLineColor(kRed); var2H->SetLineColor(kBlue); var1H->SetMaximum( TMath::Max(var1H->GetMaximum(), var2H->GetMaximum()) * 1.10 ); var1H->GetXaxis()->SetTitle(TString(var3)); // var1H->GetYaxis()->SetLabelOffset(0.5); var1H->GetYaxis()->SetTitle("Fraction of Events"); var1H->GetYaxis()->SetTitleOffset(1.5); // var1H->GetYaxis()->SetNoExponent(); if (var1==var2) { var1H->GetXaxis()->SetTitle(var1.c_str()); var1 = filename1; var2 = filename2; } var1H->Draw(); gPad->Update(); // TPaveStats *statsbox1 = (TPaveStats*)gPad->GetPrimitive("stats"); TPaveStats *statsbox1 = (TPaveStats*)var1H->GetListOfFunctions()->FindObject("stats"); statsbox1->SetX1NDC(0.50); //set new y start position statsbox1->SetX2NDC(0.70); //set new y end position statsbox1->SetY1NDC(0.90); //set new y start position statsbox1->SetY2NDC(0.99); //set new y end position statsbox1->SetTextColor(kRed); var2H->Draw("sames"); gPad->Update(); // TPaveStats *statsbox2 = (TPaveStats*)gPad->GetPrimitive("stats"); TPaveStats *statsbox2 = (TPaveStats*)var2H->GetListOfFunctions()->FindObject("stats"); statsbox2->SetX1NDC(0.70); //set new y start position statsbox2->SetX2NDC(0.9); //set new y end position statsbox2->SetY1NDC(0.90); //set new y start position statsbox2->SetY2NDC(0.99); //set new y end position statsbox2->SetTextColor(kBlue); // var1H->Draw(); // var2H->Draw("sames"); TLegend *leg = new TLegend(0.1,0.9,0.5,0.99); leg->SetFillColor(0); //leg->SetNColumns(2); leg->AddEntry(var1H, var1.c_str(), "l"); leg->AddEntry(var2H, var2.c_str(), "l"); leg->Draw("same"); }