#include #include #include #include #include #include #include using namespace std; TCanvas* singleCanvas(TCanvas* c1, TString pt, TString det, TString id, TString algo){ TFile* f1 = new TFile("jetsAlgo_3000_3500_noPU_403.root"); //noPi TFile* f2 = new TFile("jetsAlgo_3000_3500_inTimePU_403.root"); //inTime Pu TFile* f3 = new TFile("jetsAlgo_3000_3500_fullPU_403.root"); //Full PU TString hName = "h1" + det + pt + algo + id; TString title0, title1, title, titleX; TH1F* histo1 = (TH1F*)f1->Get(hName)->Clone(hName + "A"); TH1F* histo2 = (TH1F*)f2->Get(hName)->Clone(hName + "B"); TH1F* histo3 = (TH1F*)f3->Get(hName)->Clone(hName + "C"); float m1 = histo1->GetMaximumStored(); float m2 = histo2->GetMaximumStored(); float m3 = histo3->GetMaximumStored(); float a[3] = {m1, m2, m3}; float maxY = TMath::MaxElement(3, a); float n1 = histo1->GetMinimumStored(); float n2 = histo2->GetMinimumStored(); float n3 = histo3->GetMinimumStored(); float b[3] = {n1, n2, n3}; float minY = TMath::MaxElement(3, b); cout<<" hi i am here"<GetYaxis()->SetTitle("No. of Events"); // hM0->Rebin(10); // hS0->Rebin(10); if(!strcmp(pt,"5")) histo3->GetXaxis()->SetRangeUser(0.,400.); else if(!strcmp(pt,"15")) histo3->GetXaxis()->SetRangeUser(0.,400.); else if(!strcmp(pt,"35")) histo3->GetXaxis()->SetRangeUser(0.,250.); else { histo3->GetXaxis()->SetRangeUser(0.,8000.); histo3->Rebin(200); histo1->Rebin(200); histo2->Rebin(200); } } else if (!strcmp(id, "1")){ title0 = "#Sigma E_{T} of all towers"; titleX = "#Sigma E_{T} (in GeV)"; histo3->GetXaxis()->SetRangeUser(0.,400.); histo3->GetYaxis()->SetTitle("No. of Events"); } else if (!strcmp(id, "2") || !strcmp(id, "16")){ title0 = "P_{T} of jets"; titleX = "P_{T} (in GeV)"; histo3->GetYaxis()->SetTitle("No. of Jets"); if(!strcmp(pt,"5")) histo3->GetXaxis()->SetRangeUser(0.,10.); else if(!strcmp(pt,"15")) histo3->GetXaxis()->SetRangeUser(0.,20.); else if(!strcmp(pt,"35")) histo3->GetXaxis()->SetRangeUser(0.,40.); else if(!strcmp(pt, "40")){ histo1->Rebin(20); histo2->Rebin(20); histo3->Rebin(20); cout << "Set the scale in 40" << endl; /* histo1->GetXaxis()->SetRangeUser(0.,2000.); histo2->GetXaxis()->SetRangeUser(0.,2000.); histo3->GetXaxis()->SetRangeUser(0.,2000.); */ } else cout << "Set the scale " << endl; } else if (!strcmp(id, "3") || !strcmp(id, "17")){ title0 = "#eta of jets "; titleX = "#eta"; } else if (!strcmp(id, "4") || !strcmp(id, "18")){ title0 = "#phi of jets"; titleX = "#phi"; } else if (!strcmp(id, "8") || !strcmp(id, "19")){ title0 = "nConstituents"; titleX = "No. of constutuents"; if(!strcmp(pt,"5")) histo3->GetXaxis()->SetRangeUser(0.,10.); else if(!strcmp(pt,"15")) histo3->GetXaxis()->SetRangeUser(0.,20.); else if(!strcmp(pt,"35")) histo3->GetXaxis()->SetRangeUser(0.,40.); else histo3->GetXaxis()->SetRangeUser(0.,200.); } else if (!strcmp(id, "9") || !strcmp(id, "20")){ title0 = "Tower area in jets"; titleX = "Area of towers contributing in jets"; } else if (!strcmp(id, "10")){ title0 = "#Delta R_{max} b/w jet & caloTower"; titleX = "#Delta R"; histo3->GetXaxis()->SetRangeUser(0.,2.); } else if (!strcmp(id, "11") || !strcmp(id, "21")){ title0 = "Jet Mass"; titleX = "Mass (in GeV)"; if(!strcmp(pt,"5")) histo3->GetXaxis()->SetRangeUser(0.,20.); else if(!strcmp(pt,"15")) histo3->GetXaxis()->SetRangeUser(0.,20.); else if(!strcmp(pt,"35")) histo3->GetXaxis()->SetRangeUser(0.,20.); else histo1->Rebin(20); histo2->Rebin(20); histo3->Rebin(20); histo3->GetXaxis()->SetRangeUser(0., 2000.); } else if (!strcmp(id, "12")){ title0 = "CaloTowers E_{T} not included in Jets "; titleX = "E_{T} (in GeV)"; histo3->GetXaxis()->SetRangeUser(0.,500.); histo3->Rebin(100); histo1->Rebin(100); histo2->Rebin(100); } else if (!strcmp(id, "13")){ title0 = "#Sigma E_{T} of caloTowers not included in Jets "; titleX = "#Sigma E_{T} (in GeV)"; histo3->Rebin(10); histo1->Rebin(10); histo2->Rebin(10); if( !strcmp(pt,"5") || !strcmp(pt,"15") || !strcmp(pt,"35") ) histo3->GetXaxis()->SetRangeUser(0.,1000.); else histo3->GetXaxis()->SetRangeUser(0.,2000.); } else if (!strcmp(id, "14") || !strcmp(id, "22")){ title0 = "No. of jets "; titleX = "No. of Jets"; if(!strcmp(pt,"5")) histo3->GetXaxis()->SetRangeUser(0.,200.); else if(!strcmp(pt,"15")) histo3->GetXaxis()->SetRangeUser(0.,70.); else if(!strcmp(pt,"35")) histo3->GetXaxis()->SetRangeUser(0.,20.); else histo3->GetXaxis()->SetRangeUser(0.,10.); } else cout << " Set the X axis title " << endl; if (!strcmp(id, "15") || !strcmp(id, "16") || !strcmp(id, "17") || !strcmp(id, "18") || !strcmp(id, "19") || !strcmp(id, "20") ||!strcmp(id, "21") || !strcmp(id, "22")) title1 = " in entire #eta range"; else if (!strcmp(id, "12") || !strcmp(id, "13")) title1 = ""; else title1 = " in " + det; title = title0 + title1; histo3->SetTitle(title); histo3->GetYaxis()->SetRangeUser(minY,maxY); histo3->GetYaxis()->SetTitleOffset(1.3); histo3->GetXaxis()->SetTitle(titleX); histo3->SetMarkerStyle(20); histo3->SetMarkerColor(2); histo3->SetLineColor(2); // histo3->SetStats(kFALSE); histo3->Draw(""); histo2->SetMarkerStyle(22); histo2->SetMarkerColor(4); histo2->SetLineColor(4); // histo2->SetStats(kFALSE); histo2->Draw("EPSAMES"); gStyle->SetOptStat("sames"); TPaveStats *s = (TPaveStats*)histo2->GetListOfFunctions()->FindObject("stats"); s->SetX1NDC (0.55); s->SetX2NDC (0.75); s->SetTextColor(4); TPaveStats *s = (TPaveStats*)histo3->GetListOfFunctions()->FindObject("stats"); s->SetTextColor(2); histo1->SetMarkerStyle(30); histo1->SetMarkerColor(28); histo1->SetLineColor(28); // histo1->SetStats(kFALSE); histo1->Draw("EPSAMES"); gStyle->SetOptStat("sames"); TPaveStats *s = (TPaveStats*)histo1->GetListOfFunctions()->FindObject("stats"); s->SetX1NDC (0.75); s->SetX2NDC (0.95); s->SetY1NDC (0.75); s->SetY2NDC (0.86); s->SetTextColor(28); TString legT; if(!strcmp(algo, "Mid")) legT = "MidPoint5"; else legT = "SISCone5"; if (!strcmp(pt,"5") && !strcmp(id,"4")) TPaveLabel* p = new TPaveLabel(0.65,0.2,0.95,0.3, "0.1 < P_{T}^{Jet} < 5.0", "NDC"); else if (!strcmp(pt,"5")) TPaveLabel* p = new TPaveLabel(0.65,0.62,0.95,0.72, "0.1 < P_{T}^{Jet} < 5.0", "NDC"); else if (!strcmp(pt,"15") && !strcmp(id,"4")) TPaveLabel* p = new TPaveLabel(0.65,0.2,0.95,0.3, "5 < P_{T}^{Jet} < 15.0", "NDC"); else if (!strcmp(pt,"15")) TPaveLabel* p = new TPaveLabel(0.65,0.62,0.95,0.72, "5.0 < P_{T}^{Jet} < 15.0", "NDC"); else if (!strcmp(pt,"35") && !strcmp(id,"4")) TPaveLabel* p = new TPaveLabel(0.65,0.2,0.95,0.3, "15 < P_{T}^{Jet} < 35.0", "NDC"); else if (!strcmp(pt,"35")) TPaveLabel* p = new TPaveLabel(0.65,0.62,0.95,0.72, "15 < P_{T}^{Jet} < 35", "NDC"); else if (!strcmp(pt,"40") && !strcmp(id,"4")) TPaveLabel* p = new TPaveLabel(0.65,0.2,0.95,0.3, " P_{T}^{Jet} > 35.", "NDC"); else TPaveLabel* p = new TPaveLabel(0.65,0.62,0.95,0.72, " P_{T}^{Jet} > 35", "NDC"); p->SetTextSize(0.5); p->SetTextColor(6); if (!strcmp(id, "12") || !strcmp(id, "13")) cout << "Not to Draw" << endl; else p->Draw(); if (!strcmp(id,"3") || !strcmp(id,"17")) TLegend *leg = new TLegend(0.2,0.75,0.5,0.95, legT) ; else if (!strcmp(id,"4") || !strcmp(id,"18")) TLegend *leg = new TLegend(0.2,0.1,0.5,0.3, legT) ; else TLegend *leg = new TLegend(0.65,0.4,0.95,0.6, legT) ; leg->AddEntry(histo1,"NoPileup","P"); leg->AddEntry(histo2,"InTimePU","P"); leg->AddEntry(histo3,"FullPU","L"); leg->Draw(); return c1; }//singleCanvas TCanvas* drawCanvas(TCanvas* c1, TString id, TString fourthCan, TString algo, TString pt){ TCanvas *c1 = new TCanvas("c1", "c1",3,25,999,799); c1->Divide(2,2); c1_1->SetLogy(); c1->cd(1); c1 = singleCanvas(c1, pt, "HB", id, algo); c1->cd(2); c1_2->SetLogy(); c1 = singleCanvas(c1, pt, "HE", id, algo); c1->cd(3); c1_3->SetLogy(); c1 = singleCanvas(c1, pt, "HF", id, algo); c1->cd(4); c1_4->SetLogy(); if (strcmp(id, "10")) c1 = singleCanvas(c1, pt, "HF", fourthCan, algo); c1->Print("c1.ps"); return c1; }//drawCanvas TCanvas* drawAll(TString pt){ TCanvas *c1 = new TCanvas("c1", "c1",3,25,999,799); c1 = drawCanvas(c1, "0", "15", "Mid", pt); c1 = drawCanvas(c1, "0", "15", "Sis", pt); c1 = drawCanvas(c1, "2", "16", "Mid", pt); c1 = drawCanvas(c1, "2", "16", "Sis", pt); /* c1 = drawCanvas(c1, "3", "17", "Mid", pt); c1 = drawCanvas(c1, "3", "17", "Sis", pt); c1 = drawCanvas(c1, "4", "18", "Mid", pt); c1 = drawCanvas(c1, "4", "18", "Sis", pt); c1 = drawCanvas(c1, "8", "19", "Mid", pt); c1 = drawCanvas(c1, "8", "19", "Sis", pt); c1 = drawCanvas(c1, "9", "20", "Mid", pt); c1 = drawCanvas(c1, "9", "20", "Sis", pt); c1 = drawCanvas(c1, "11", "21", "Mid", pt); c1 = drawCanvas(c1, "11", "21", "Sis", pt); c1 = drawCanvas(c1, "14", "22", "Mid", pt); c1 = drawCanvas(c1, "14", "22", "Sis", pt); c1 = drawCanvas(c1, "10", "22", "Mid", pt); c1 = drawCanvas(c1, "10", "22", "Sis", pt); */ return c1; } int Plot3000(){ TCanvas *c1 = new TCanvas("c1", "c1",3,25,999,799); c1->SetGridx(); c1->SetGridy(); /* c1->Print("c1.ps("); c1 = drawAll("5"); c1 = drawAll("15"); c1 = drawAll("35"); */ c1 = drawAll("15"); TCanvas *c1 = new TCanvas("c1", "c1",3,25,999,799); c1->SetLogy(); c1 = singleCanvas(c1, "5", "HB", "12", "Mid"); c1->Print("c1.ps"); c1->SetLogy(); c1 = singleCanvas(c1, "5", "HB", "12", "Sis"); c1->Print("c1.ps"); c1->SetLogy(); c1 = singleCanvas(c1, "5", "HB", "13", "Mid"); c1->Print("c1.ps"); c1->SetLogy(); c1 = singleCanvas(c1, "5", "HB", "13", "Sis"); c1->Print("c1.ps)"); return 0; }