void setTDRStyle() { TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); // For the canvas: tdrStyle->SetCanvasBorderMode(0); tdrStyle->SetCanvasColor(kWhite); tdrStyle->SetCanvasDefH(600); //Height of canvas tdrStyle->SetCanvasDefW(600); //Width of canvas tdrStyle->SetCanvasDefX(0); //POsition on screen tdrStyle->SetCanvasDefY(0); // For the Pad: tdrStyle->SetPadBorderMode(0); // tdrStyle->SetPadBorderSize(Width_t size = 1); tdrStyle->SetPadColor(kWhite); tdrStyle->SetPadGridX(false); tdrStyle->SetPadGridY(false); tdrStyle->SetGridColor(0); tdrStyle->SetGridStyle(3); tdrStyle->SetGridWidth(1); // For the frame: tdrStyle->SetFrameBorderMode(0); tdrStyle->SetFrameBorderSize(1); tdrStyle->SetFrameFillColor(0); tdrStyle->SetFrameFillStyle(0); tdrStyle->SetFrameLineColor(1); tdrStyle->SetFrameLineStyle(1); tdrStyle->SetFrameLineWidth(1); // For the histo: // tdrStyle->SetHistFillColor(1); // tdrStyle->SetHistFillStyle(0); tdrStyle->SetHistLineColor(1); tdrStyle->SetHistLineStyle(0); tdrStyle->SetHistLineWidth(1); // tdrStyle->SetLegoInnerR(Float_t rad = 0.5); // tdrStyle->SetNumberContours(Int_t number = 20); tdrStyle->SetEndErrorSize(2); tdrStyle->SetErrorX(0.5); tdrStyle->SetMarkerStyle(20); //For the fit/function: tdrStyle->SetOptFit(1); tdrStyle->SetFitFormat("5.4g"); tdrStyle->SetFuncColor(2); tdrStyle->SetFuncStyle(1); tdrStyle->SetFuncWidth(1); //For the date: tdrStyle->SetOptDate(0); // tdrStyle->SetDateX(Float_t x = 0.01); // tdrStyle->SetDateY(Float_t y = 0.01); // For the statistics box: tdrStyle->SetOptFile(0); tdrStyle->SetOptStat(0); // To display the mean and RMS: SetOptStat("mr"); tdrStyle->SetStatColor(kWhite); tdrStyle->SetStatFont(42); tdrStyle->SetStatFontSize(0.025); tdrStyle->SetStatTextColor(1); tdrStyle->SetStatFormat("6.4g"); tdrStyle->SetStatBorderSize(1); tdrStyle->SetStatH(0.1); tdrStyle->SetStatW(0.15); // tdrStyle->SetStatStyle(Style_t style = 1001); // tdrStyle->SetStatX(Float_t x = 0); // tdrStyle->SetStatY(Float_t y = 0); // Margins: tdrStyle->SetPadTopMargin(0.07); tdrStyle->SetPadBottomMargin(0.15); tdrStyle->SetPadLeftMargin(0.15); // tdrStyle->SetPadBottomMargin(0.22); // tdrStyle->SetPadLeftMargin(0.20); tdrStyle->SetPadRightMargin(0.05); // For the Global title: tdrStyle->SetOptTitle(1); tdrStyle->SetTitleFont(42); tdrStyle->SetTitleColor(1); tdrStyle->SetTitleTextColor(1); tdrStyle->SetTitleFillColor(10); tdrStyle->SetTitleFontSize(0.085); // tdrStyle->SetTitleH(0); // Set the height of the title box // tdrStyle->SetTitleW(0); // Set the width of the title box // tdrStyle->SetTitleX(0); // Set the position of the title box // tdrStyle->SetTitleY(0.985); // Set the position of the title box // tdrStyle->SetTitleStyle(Style_t style = 1001); // tdrStyle->SetTitleBorderSize(2); // For the axis titles: tdrStyle->SetTitleColor(1, "XYZ"); tdrStyle->SetTitleFont(42, "XYZ"); tdrStyle->SetTitleSize(0.06, "XYZ"); // tdrStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? // tdrStyle->SetTitleYSize(Float_t size = 0.02); tdrStyle->SetTitleXOffset(1.0); // tdrStyle->SetTitleYOffset(1.35); tdrStyle->SetTitleOffset(1.0, "Y"); // Another way to set the Offset // For the axis labels: tdrStyle->SetLabelColor(1, "XYZ"); tdrStyle->SetLabelFont(42, "XYZ"); tdrStyle->SetLabelOffset(0.007, "XYZ"); tdrStyle->SetLabelSize(0.05, "XYZ"); // For the axis: tdrStyle->SetAxisColor(1, "XYZ"); tdrStyle->SetStripDecimals(kTRUE); tdrStyle->SetTickLength(0.03, "XYZ"); tdrStyle->SetNdivisions(510, "XYZ"); tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame tdrStyle->SetPadTickY(1); // Change for log plots: tdrStyle->SetOptLogx(0); tdrStyle->SetOptLogy(0); tdrStyle->SetOptLogz(0); // Postscript options: tdrStyle->SetPaperSize(20.,20.); // tdrStyle->SetLineScalePS(Float_t scale = 3); // tdrStyle->SetLineStyleString(Int_t i, const char* text); // tdrStyle->SetHeaderPS(const char* header); // tdrStyle->SetTitlePS(const char* pstitle); // tdrStyle->SetBarOffset(Float_t baroff = 0.5); // tdrStyle->SetBarWidth(Float_t barwidth = 0.5); // tdrStyle->SetPaintTextFormat("f"); // tdrStyle->SetTextSize(0.07); Int_t * colors = 0; Int_t ncolors = 1; tdrStyle->SetPalette( ncolors, colors ); // tdrStyle->SetTimeOffset(Double_t toffset); // tdrStyle->SetHistMinimumZero(kTRUE); tdrStyle->cd(); }
void setTDRStyle() { TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); // For the canvas: tdrStyle->SetCanvasBorderMode(0); tdrStyle->SetCanvasColor(kWhite); tdrStyle->SetCanvasDefH(600); //Height of canvas tdrStyle->SetCanvasDefW(600); //Width of canvas tdrStyle->SetCanvasDefX(0); //POsition on screen tdrStyle->SetCanvasDefY(0); // For the Pad: tdrStyle->SetPadBorderMode(0); tdrStyle->SetPadColor(kWhite); tdrStyle->SetPadGridX(true); tdrStyle->SetPadGridY(true); tdrStyle->SetGridColor(0); tdrStyle->SetGridStyle(3); tdrStyle->SetGridWidth(1); // For the frame: tdrStyle->SetFrameBorderMode(0); tdrStyle->SetFrameBorderSize(1); tdrStyle->SetFrameFillColor(0); tdrStyle->SetFrameFillStyle(0); tdrStyle->SetFrameLineColor(1); tdrStyle->SetFrameLineStyle(1); tdrStyle->SetFrameLineWidth(1); // For the histo: tdrStyle->SetHistLineColor(1); tdrStyle->SetHistLineStyle(0); tdrStyle->SetHistLineWidth(1); tdrStyle->SetEndErrorSize(2); tdrStyle->SetErrorX(0.); tdrStyle->SetMarkerStyle(20); //For the fit/function: tdrStyle->SetOptFit(1); tdrStyle->SetFitFormat("5.4g"); tdrStyle->SetFuncColor(2); tdrStyle->SetFuncStyle(1); tdrStyle->SetFuncWidth(1); //For the date: tdrStyle->SetOptDate(0); // For the statistics box: tdrStyle->SetOptFile(0); tdrStyle->SetOptStat(0); // To display the mean and RMS: SetOptStat("mr"); tdrStyle->SetStatColor(kWhite); tdrStyle->SetStatFont(42); tdrStyle->SetStatFontSize(0.025); tdrStyle->SetStatTextColor(1); tdrStyle->SetStatFormat("6.4g"); tdrStyle->SetStatBorderSize(1); tdrStyle->SetStatH(0.1); tdrStyle->SetStatW(0.15); // Margins: tdrStyle->SetPadTopMargin(0.05); tdrStyle->SetPadBottomMargin(0.13); tdrStyle->SetPadLeftMargin(0.16); tdrStyle->SetPadRightMargin(0.05); // For the Global title: tdrStyle->SetOptTitle(0); tdrStyle->SetTitleFont(42); tdrStyle->SetTitleColor(1); tdrStyle->SetTitleTextColor(1); tdrStyle->SetTitleFillColor(10); tdrStyle->SetTitleFontSize(0.05); // For the axis titles: tdrStyle->SetTitleColor(1, "XYZ"); tdrStyle->SetTitleFont(42, "XYZ"); tdrStyle->SetTitleSize(0.06, "XYZ"); tdrStyle->SetTitleXOffset(0.9); tdrStyle->SetTitleYOffset(1.25); // For the axis labels: tdrStyle->SetLabelColor(1, "XYZ"); tdrStyle->SetLabelFont(42, "XYZ"); tdrStyle->SetLabelOffset(0.007, "XYZ"); tdrStyle->SetLabelSize(0.05, "XYZ"); // For the axis: tdrStyle->SetAxisColor(1, "XYZ"); tdrStyle->SetStripDecimals(kTRUE); tdrStyle->SetTickLength(0.03, "XYZ"); tdrStyle->SetNdivisions(510, "XYZ"); tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame tdrStyle->SetPadTickY(1); // Change for log plots: tdrStyle->SetOptLogx(0); tdrStyle->SetOptLogy(0); tdrStyle->SetOptLogz(0); // Postscript options: tdrStyle->SetPaperSize(20.,20.); // Turn off the grid line tdrStyle->SetPadGridX(false); tdrStyle->SetPadGridY(false); tdrStyle->cd(); }
void FakeRate() { TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); // For the canvas: tdrStyle->SetCanvasBorderMode(0); tdrStyle->SetCanvasColor(kWhite); tdrStyle->SetCanvasDefH(600); //Height of canvas tdrStyle->SetCanvasDefW(600); //Width of canvas tdrStyle->SetCanvasDefX(0); //POsition on screen tdrStyle->SetCanvasDefY(0); // For the Pad: tdrStyle->SetPadBorderMode(0); tdrStyle->SetPadColor(kWhite); tdrStyle->SetPadGridX(true); tdrStyle->SetPadGridY(true); tdrStyle->SetGridColor(0); tdrStyle->SetGridStyle(3); tdrStyle->SetGridWidth(1); // For the frame: tdrStyle->SetFrameBorderMode(0); tdrStyle->SetFrameBorderSize(1); tdrStyle->SetFrameFillColor(0); tdrStyle->SetFrameFillStyle(0); tdrStyle->SetFrameLineColor(1); tdrStyle->SetFrameLineStyle(1); tdrStyle->SetFrameLineWidth(1); // For the histo: tdrStyle->SetHistLineColor(1); tdrStyle->SetHistLineStyle(0); tdrStyle->SetHistLineWidth(1); tdrStyle->SetEndErrorSize(2); tdrStyle->SetErrorX(0.); tdrStyle->SetMarkerStyle(20); //For the fit/function: tdrStyle->SetOptFit(1); tdrStyle->SetFitFormat("5.4g"); tdrStyle->SetFuncColor(2); tdrStyle->SetFuncStyle(1); tdrStyle->SetFuncWidth(1); //For the date: tdrStyle->SetOptDate(0); // For the statistics box: tdrStyle->SetOptFile(0); tdrStyle->SetOptStat("emr"); // To display the mean and RMS: SetOptStat("mr"); tdrStyle->SetStatColor(kWhite); tdrStyle->SetStatFont(42); tdrStyle->SetStatFontSize(0.025); tdrStyle->SetStatTextColor(1); tdrStyle->SetStatFormat("6.4g"); tdrStyle->SetStatBorderSize(1); tdrStyle->SetStatH(0.1); tdrStyle->SetStatW(0.15); // Margins: tdrStyle->SetPadTopMargin(0.07); tdrStyle->SetPadBottomMargin(0.13); tdrStyle->SetPadLeftMargin(0.13); tdrStyle->SetPadRightMargin(0.05); // For the Global title: tdrStyle->SetTitleFont(35); tdrStyle->SetTitleColor(1); tdrStyle->SetTitleTextColor(1); tdrStyle->SetTitleFillColor(10); tdrStyle->SetTitleFontSize(0.045); tdrStyle->SetTitleX(0.15); // Set the position of the title box tdrStyle->SetTitleBorderSize(0); // For the axis titles: tdrStyle->SetTitleColor(1, "XYZ"); tdrStyle->SetTitleFont(42, "XYZ"); tdrStyle->SetTitleSize(0.04, "XYZ"); tdrStyle->SetTitleXOffset(0.9); tdrStyle->SetTitleYOffset(1.5); // For the axis labels: tdrStyle->SetLabelColor(1, "XYZ"); tdrStyle->SetLabelFont(42, "XYZ"); tdrStyle->SetLabelOffset(0.007, "XYZ"); tdrStyle->SetLabelSize(0.03, "XYZ"); // For the axis: tdrStyle->SetAxisColor(1, "XYZ"); tdrStyle->SetStripDecimals(kTRUE); tdrStyle->SetTickLength(0.03, "XYZ"); tdrStyle->SetNdivisions(510, "XYZ"); tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame tdrStyle->SetPadTickY(1); // Change for log plots: tdrStyle->SetOptLogx(0); tdrStyle->SetOptLogy(0); tdrStyle->SetOptLogz(0); // Postscript options: tdrStyle->SetPaperSize(20.,20.); tdrStyle->SetPalette(1); const Int_t NRGBs = 5; const Int_t NCont = 255; Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 }; Double_t red[NRGBs] = { 0.00, 0.00, 0.87, 1.00, 0.51 }; Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 }; Double_t blue[NRGBs] = { 0.51, 1.00, 0.12, 0.00, 0.00 }; TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont); TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont); tdrStyle->SetNumberContours(NCont); gROOT -> ForceStyle(); tdrStyle->cd(); int binsize = 10; int binlow = 30; int binup = 130; TString cut_Iasonas_n = "pfmet_pt < 40. && ph_N_Pt > 0. && ph_N_sinin < 0.011"; TString cut_Iasonas_d = "pfmet_pt < 40. && ph_DLU_Pt > 0. "; TString cut_Zeynep_n = "Num_Pho_Pt > 0. && Num_Pho_SigmaIEtaIEta < 0.011"; TString cut_Zeynep_d = "Den_Pho_Pt > 0."; TString cut_Zeynep_n_new = "passedNum && Pho_Pt > 0. && Pho_SigmaIEtaIEta < 0.011 && muVeto0==0"; TString cut_Zeynep_d_new = "passedDen && Pho_Pt > 0. && muVeto0==0"; TFile *f_Iasonas = new TFile("old_results/dataAll.root","READ"); f_Iasonas->cd("Analyzer"); TH1F *h_num_I = new TH1F("h_num_I","h_num_I" ,binsize ,binlow ,binup); TH1F *h_den_I = new TH1F("h_den_I","h_den_I" ,binsize ,binlow ,binup); AnalyzerTree->Draw("ph_N_Pt>>h_num_I",cut_Iasonas_n,"goff"); AnalyzerTree->Draw("ph_DLU_Pt>>h_den_I",cut_Iasonas_d,"goff"); TH1F *h_raw_I = (TH1F*)h_num_I->Clone("h_raw_I"); h_raw_I->Divide(h_den_I); //TFile *f_Zeynep = new TFile("higgsHistograms_QCD.root","READ"); //TFile *f_Zeynep = new TFile("higgsHistograms_QCD_newHoE.root","READ"); TFile *f_Zeynep = new TFile("n_jetTest2.root","READ"); f_Zeynep->cd("Analyzer"); h_num_Z = new TH1F("h_num_Z","h_num_Z" ,binsize ,binlow ,binup); h_den_Z = new TH1F("h_den_Z","h_den_Z" ,binsize ,binlow ,binup); AnalyzerTree->Draw("Pho_Pt>>h_num_Z",cut_Zeynep_n_new,"goff"); AnalyzerTree->Draw("Pho_Pt>>h_den_Z",cut_Zeynep_d_new,"goff"); TH1F *h_raw_Z = (TH1F*)h_num_Z->Clone("h_raw_Z"); h_raw_Z->Divide(h_den_Z); TFile *f_Zeynep_o = new TFile("old_results/compareDen_Num/ifStatements/testing_simple_1fake.root","READ"); //TFile *f_Zeynep_o = new TFile("higgsHistograms_QCD_newHoE.root","READ"); f_Zeynep_o->cd("Analyzer"); h_num_Z_o = new TH1F("h_num_Z_o","h_num_Z_o" ,binsize ,binlow ,binup); h_den_Z_o = new TH1F("h_den_Z_o","h_den_Z_o" ,binsize ,binlow ,binup); AnalyzerTree->Draw("Num_Pho_Pt>>h_num_Z_o",cut_Zeynep_n,"goff"); AnalyzerTree->Draw("Den_Pho_Pt>>h_den_Z_o",cut_Zeynep_d,"goff"); TH1F *h_raw_Z_o = (TH1F*)h_num_Z_o->Clone("h_raw_Z_o"); h_raw_Z_o->Divide(h_den_Z_o); TCanvas* c1 = new TCanvas("c1","c1",700,600); c1->cd(); h_raw_I->SetTitle("Raw Fake Rate"); h_raw_I->GetYaxis()->SetTitle("Raw Fake Rate"); h_raw_I->GetXaxis()->SetTitle("Offline Photon Pt [GeV]"); h_raw_I->Draw(); h_raw_I->GetYaxis()->SetRangeUser(0.0,15); h_raw_Z->SetLineColor(2); h_raw_Z->Draw("same"); h_raw_Z_o->SetLineColor(4); h_raw_Z_o->Draw("same"); gStyle->SetOptStat(kFALSE); TLegend *leg = new TLegend(0.6879195,0.7482517,0.9496644,0.9300699,NULL,"brNDC"); leg->AddEntry(h_raw_I, "Iasonas Raw Fake Rate" ,"l"); leg->AddEntry(h_raw_Z, "Zeynep Raw Fake Rate" ,"l"); leg->AddEntry(h_raw_Z_o, "Zeynep old Raw Fake Rate" ,"l"); leg->SetFillColor(0); leg->SetShadowColor(0); leg->Draw(); }
void met(){ TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); // For the canvas: tdrStyle->SetCanvasBorderMode(0); tdrStyle->SetCanvasColor(kWhite); tdrStyle->SetCanvasDefH(600); //Height of canvas tdrStyle->SetCanvasDefW(600); //Width of canvas tdrStyle->SetCanvasDefX(0); //POsition on screen tdrStyle->SetCanvasDefY(0); // For the Pad: tdrStyle->SetPadBorderMode(0); // tdrStyle->SetPadBorderSize(Width_t size = 1); tdrStyle->SetPadColor(kWhite); tdrStyle->SetPadGridX(true); tdrStyle->SetPadGridY(true); tdrStyle->SetGridColor(0); tdrStyle->SetGridStyle(3); tdrStyle->SetGridWidth(1); // For the frame: tdrStyle->SetFrameBorderMode(0); tdrStyle->SetFrameBorderSize(1); tdrStyle->SetFrameFillColor(0); tdrStyle->SetFrameFillStyle(0); tdrStyle->SetFrameLineColor(1); tdrStyle->SetFrameLineStyle(1); tdrStyle->SetFrameLineWidth(1); // For the histo: // tdrStyle->SetHistFillColor(1); // tdrStyle->SetHistFillStyle(0); tdrStyle->SetHistLineColor(1); tdrStyle->SetHistLineStyle(0); tdrStyle->SetHistLineWidth(1); // tdrStyle->SetLegoInnerR(Float_t rad = 0.5); // tdrStyle->SetNumberContours(Int_t number = 20); tdrStyle->SetEndErrorSize(2); // tdrStyle->SetErrorMarker(20); tdrStyle->SetErrorX(0.); tdrStyle->SetMarkerStyle(20); //For the fit/function: tdrStyle->SetOptFit(1); tdrStyle->SetFitFormat("5.4g"); tdrStyle->SetFuncColor(2); tdrStyle->SetFuncStyle(1); tdrStyle->SetFuncWidth(1); //For the date: tdrStyle->SetOptDate(0); // tdrStyle->SetDateX(Float_t x = 0.01); // tdrStyle->SetDateY(Float_t y = 0.01); // For the statistics box: tdrStyle->SetOptFile(0); tdrStyle->SetOptStat("emr"); // To display the mean and RMS: SetOptStat("mr"); tdrStyle->SetStatColor(kWhite); tdrStyle->SetStatFont(42); tdrStyle->SetStatFontSize(0.025); tdrStyle->SetStatTextColor(1); tdrStyle->SetStatFormat("6.4g"); tdrStyle->SetStatBorderSize(1); tdrStyle->SetStatH(0.1); tdrStyle->SetStatW(0.15); // tdrStyle->SetStatStyle(Style_t style = 1001); // tdrStyle->SetStatX(Float_t x = 0); // tdrStyle->SetStatY(Float_t y = 0); // Margins: tdrStyle->SetPadTopMargin(0.07); tdrStyle->SetPadBottomMargin(0.13); tdrStyle->SetPadLeftMargin(0.13); tdrStyle->SetPadRightMargin(0.05); // For the Global title: //tdrStyle->SetOptTitle(0); tdrStyle->SetTitleFont(35); tdrStyle->SetTitleColor(1); tdrStyle->SetTitleTextColor(1); tdrStyle->SetTitleFillColor(10); tdrStyle->SetTitleFontSize(0.045); // tdrStyle->SetTitleH(0); // Set the height of the title box // tdrStyle->SetTitleW(0); // Set the width of the title box tdrStyle->SetTitleX(0.15); // Set the position of the title box // tdrStyle->SetTitleY(0.985); // Set the position of the title box // tdrStyle->SetTitleStyle(Style_t style = 1001); tdrStyle->SetTitleBorderSize(0); // For the axis titles: tdrStyle->SetTitleColor(1, "XYZ"); tdrStyle->SetTitleFont(42, "XYZ"); tdrStyle->SetTitleSize(0.04, "XYZ"); // tdrStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? // tdrStyle->SetTitleYSize(Float_t size = 0.02); tdrStyle->SetTitleXOffset(1.05); tdrStyle->SetTitleYOffset(1.45); // tdrStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset // For the axis labels: tdrStyle->SetLabelColor(1, "XYZ"); tdrStyle->SetLabelFont(42, "XYZ"); tdrStyle->SetLabelOffset(0.007, "XYZ"); tdrStyle->SetLabelSize(0.03, "XYZ"); // For the axis: tdrStyle->SetAxisColor(1, "XYZ"); tdrStyle->SetStripDecimals(kTRUE); tdrStyle->SetTickLength(0.03, "XYZ"); tdrStyle->SetNdivisions(510, "XYZ"); tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame tdrStyle->SetPadTickY(1); // Change for log plots: tdrStyle->SetOptLogx(0); tdrStyle->SetOptLogy(0); tdrStyle->SetOptLogz(0); // Postscript options: tdrStyle->SetPaperSize(20.,20.); // tdrStyle->SetLineScalePS(Float_t scale = 3); // tdrStyle->SetLineStyleString(Int_t i, const char* text); // tdrStyle->SetHeaderPS(const char* header); // tdrStyle->SetTitlePS(const char* pstitle); //tdrStyle->SetBarOffset(Float_t baroff = 0.5); //tdrStyle->SetBarWidth(Float_t barwidth = 0.5); //tdrStyle->SetPaintTextFormat(const char* format = "g"); tdrStyle->SetPalette(1); //tdrStyle->SetTimeOffset(Double_t toffset); //tdrStyle->SetHistMinimumZero(kTRUE); const Int_t NRGBs = 5; const Int_t NCont = 255; Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 }; Double_t red[NRGBs] = { 0.00, 0.00, 0.87, 1.00, 0.51 }; Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 }; Double_t blue[NRGBs] = { 0.51, 1.00, 0.12, 0.00, 0.00 }; TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont); TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont); tdrStyle->SetNumberContours(NCont); gROOT -> ForceStyle(); tdrStyle->cd(); gStyle->SetOptStat(kFALSE); TFile *f_sig = new TFile("../../rootFiles/higgsHistograms_susyHiggs.root","READ"); f_sig->cd("Analyzer"); TH1F *h_sig_pf = new TH1F("h_sig_pf","h_sig_pf;Events;MET [GeV]",200,0,200); TH1F *h_sig_gen = new TH1F("h_sig_gen","h_sig_gen;MET [GeV]; Events",200,0,200); TH1F *h_sig_min = new TH1F("h_sig_min","h_sig_min",200,0,200); AnalyzerTree->Draw("sum_genPt>>h_sig_gen","",""); h_sig_gen->SetTitle(""); h_sig_gen->SetLineColor(1); h_sig_gen->SetLineWidth(2); AnalyzerTree->Draw("MET>>h_sig_pf","",""); h_sig_pf->SetLineColor(4); h_sig_pf->SetLineWidth(2); AnalyzerTree->Draw("minMET>>h_sig_min","",""); h_sig_min->SetLineColor(2); h_sig_min->SetLineWidth(2); h_sig_gen->Draw(); h_sig_pf->Draw("sames"); h_sig_min->Draw("sames"); TLegend *leg = new TLegend(0.6879195,0.7482517,0.9496644,0.9300699,NULL,"brNDC"); leg->AddEntry(h_sig_gen,"Generated MET","l"); leg->AddEntry(h_sig_pf,"PFMET","l");//"DM_M10_V x 10000","l"); leg->AddEntry(h_sig_min,"Minimized MET","l"); leg->SetFillColor(0); leg->SetShadowColor(0); leg->Draw(); }
void setHHStyle(TStyle& HHStyle) { const int fontstyle=42; HHStyle.SetPalette(1); // ============== // Canvas // ============== HHStyle.SetCanvasBorderMode(0); HHStyle.SetCanvasColor(kWhite); HHStyle.SetCanvasDefH(600); //Height of canvas HHStyle.SetCanvasDefW(600); //Width of canvas HHStyle.SetCanvasDefX(0); //Position on screen HHStyle.SetCanvasDefY(0); // ============== // Pad // ============== HHStyle.SetPadBorderMode(0); // HHStyle.SetPadBorderSize(Width_t size = 1); HHStyle.SetPadColor(kWhite); HHStyle.SetPadGridX(false); HHStyle.SetPadGridY(false); HHStyle.SetGridColor(kGray); HHStyle.SetGridStyle(3); HHStyle.SetGridWidth(1); // ============== // Frame // ============== HHStyle.SetFrameBorderMode(0); HHStyle.SetFrameBorderSize(1); HHStyle.SetFrameFillColor(0); HHStyle.SetFrameFillStyle(0); HHStyle.SetFrameLineColor(1); HHStyle.SetFrameLineStyle(1); HHStyle.SetFrameLineWidth(1); // ============== // Histo // ============== HHStyle.SetErrorX(0.0); HHStyle.SetEndErrorSize(8); // HHStyle.SetHistFillColor(1); // HHStyle.SetHistFillStyle(0); // HHStyle.SetHistLineColor(1); HHStyle.SetHistLineStyle(0); HHStyle.SetHistLineWidth(1); // HHStyle.SetLegoInnerR(Float_t rad = 0.5); // HHStyle.SetNumberContours(Int_t number = 20); // HHStyle.SetErrorMarker(20); HHStyle.SetMarkerStyle(20); // ============== // Fit/function // ============== HHStyle.SetOptFit(0); HHStyle.SetFitFormat("5.4g"); HHStyle.SetFuncColor(2); HHStyle.SetFuncStyle(1); HHStyle.SetFuncWidth(1); // ============== // Date // ============== HHStyle.SetOptDate(0); // HHStyle.SetDateX(Float_t x = 0.01); // HHStyle.SetDateY(Float_t y = 0.01); // ===================== // Statistics Box // ===================== HHStyle.SetOptFile(0); HHStyle.SetOptStat(0); // To display the mean and RMS: SetOptStat("mr"); HHStyle.SetStatColor(kWhite); HHStyle.SetStatFont(fontstyle); HHStyle.SetStatFontSize(0.025); HHStyle.SetStatTextColor(1); HHStyle.SetStatFormat("6.4g"); HHStyle.SetStatBorderSize(1); HHStyle.SetStatH(0.1); HHStyle.SetStatW(0.15); // HHStyle.SetStatStyle(Style_t style = 1001); // HHStyle.SetStatX(Float_t x = 0); // HHStyle.SetStatY(Float_t y = 0); // ============== // Margins // ============== HHStyle.SetPadTopMargin(0.1); HHStyle.SetPadBottomMargin(0.15); HHStyle.SetPadLeftMargin(0.20); HHStyle.SetPadRightMargin(0.05); // ============== // Global Title // ============== HHStyle.SetOptTitle(0); HHStyle.SetTitleFont(fontstyle); HHStyle.SetTitleColor(1); HHStyle.SetTitleTextColor(1); HHStyle.SetTitleFillColor(10); HHStyle.SetTitleFontSize(0.05); // HHStyle.SetTitleH(0); // Set the height of the title box // HHStyle.SetTitleW(0); // Set the width of the title box // HHStyle.SetTitleX(0); // Set the position of the title box // HHStyle.SetTitleY(0.985); // Set the position of the title box // HHStyle.SetTitleStyle(Style_t style = 1001); // HHStyle.SetTitleBorderSize(2); // ============== // Axis titles // ============== HHStyle.SetTitleColor(1, "XYZ"); HHStyle.SetTitleFont(fontstyle, "XYZ"); HHStyle.SetTitleSize(0.04, "XYZ"); // HHStyle.SetTitleXSize(Float_t size = 0.02); // Another way to set the size? // HHStyle.SetTitleYSize(Float_t size = 0.02); HHStyle.SetTitleXOffset(1.0); HHStyle.SetTitleYOffset(1.7); // HHStyle.SetTitleOffset(1.1, "Y"); // Another way to set the Offset // ============== // Axis Label // ============== //HHStyle.SetLabelColor(1, "XYZ"); HHStyle.SetLabelFont(fontstyle, "XYZ"); HHStyle.SetLabelOffset(0.007, "XYZ"); HHStyle.SetLabelSize(0.04, "XYZ"); // ============== // Axis // ============== HHStyle.SetAxisColor(1, "XYZ"); HHStyle.SetStripDecimals(kTRUE); HHStyle.SetTickLength(0.03, "XYZ"); HHStyle.SetNdivisions(510, "XYZ"); HHStyle.SetPadTickX(1); // To get tick marks on the opposite side of the frame HHStyle.SetPadTickY(1); // Change for log plots: HHStyle.SetOptLogx(0); HHStyle.SetOptLogy(0); HHStyle.SetOptLogz(0); // ============== // Text // ============== HHStyle.SetTextAlign(11); HHStyle.SetTextAngle(0); HHStyle.SetTextColor(1); HHStyle.SetTextFont(fontstyle); HHStyle.SetTextSize(0.04); // ===================== // Postscript options: // ===================== HHStyle.SetPaperSize(20.,20.); // HHStyle.SetLineScalePS(Float_t scale = 3); // HHStyle.SetLineStyleString(Int_t i, const char* text); // HHStyle.SetHeaderPS(const char* header); // HHStyle.SetTitlePS(const char* pstitle); // HHStyle.SetBarOffset(Float_t baroff = 0.5); // HHStyle.SetBarWidth(Float_t barwidth = 0.5); // HHStyle.SetPaintTextFormat(const char* format = "g"); // HHStyle.SetPalette(Int_t ncolors = 0, Int_t* colors = 0); // HHStyle.SetTimeOffset(Double_t toffset); // HHStyle.SetHistMinimumZero(kTRUE); }
void setTDRStyle() { TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); // For the canvas: // tdrStyle->SetCanvasBorderMode(0); // tdrStyle->SetCanvasColor(kWhite); // tdrStyle->SetCanvasDefH(600); //Height of canvas // tdrStyle->SetCanvasDefW(600); //Width of canvas // tdrStyle->SetCanvasDefX(0); //POsition on screen // tdrStyle->SetCanvasDefY(0); // For the Pad: tdrStyle->SetPadBorderMode(0); // tdrStyle->SetPadBorderSize(Width_t size = 1); tdrStyle->SetPadColor(kWhite); tdrStyle->SetPadGridX(false); tdrStyle->SetPadGridY(false); tdrStyle->SetGridColor(0); tdrStyle->SetGridStyle(3); tdrStyle->SetGridWidth(1); // For the frame: tdrStyle->SetFrameBorderMode(0); tdrStyle->SetFrameBorderSize(1); tdrStyle->SetFrameFillColor(0); tdrStyle->SetFrameFillStyle(0); tdrStyle->SetFrameLineColor(1); tdrStyle->SetFrameLineStyle(1); tdrStyle->SetFrameLineWidth(1); // For the histo: // tdrStyle->SetHistFillColor(1); // tdrStyle->SetHistFillStyle(0); tdrStyle->SetHistLineColor(1); tdrStyle->SetHistLineStyle(0); tdrStyle->SetHistLineWidth(1); // tdrStyle->SetLegoInnerR(Float_t rad = 0.5); // tdrStyle->SetNumberContours(Int_t number = 20); tdrStyle->SetEndErrorSize(2); //tdrStyle->SetErrorMarker(20); tdrStyle->SetErrorX(0.); tdrStyle->SetMarkerStyle(20); tdrStyle->SetMarkerSize(1.2); //For the fit/function: tdrStyle->SetOptFit(1); tdrStyle->SetFitFormat("5.4g"); tdrStyle->SetFuncColor(2); tdrStyle->SetFuncStyle(1); tdrStyle->SetFuncWidth(1); //For the date: tdrStyle->SetOptDate(0); // tdrStyle->SetDateX(Float_t x = 0.01); // tdrStyle->SetDateY(Float_t y = 0.01); // For the statistics box: tdrStyle->SetOptFile(0); tdrStyle->SetOptStat(0); // To display the mean and RMS: SetOptStat("mr"); tdrStyle->SetStatColor(kWhite); tdrStyle->SetStatFont(42); tdrStyle->SetStatFontSize(0.025); tdrStyle->SetStatTextColor(1); tdrStyle->SetStatFormat("6.4g"); tdrStyle->SetStatBorderSize(1); tdrStyle->SetStatH(0.1); tdrStyle->SetStatW(0.15); // tdrStyle->SetStatStyle(Style_t style = 1001); // tdrStyle->SetStatX(Float_t x = 0); // tdrStyle->SetStatY(Float_t y = 0); // Margins: tdrStyle->SetPadTopMargin(1.05); tdrStyle->SetPadBottomMargin(0.13); tdrStyle->SetPadLeftMargin(0.11); tdrStyle->SetPadRightMargin(0.08); // For the Global title: // tdrStyle->SetOptTitle(0); tdrStyle->SetTitleFont(42); tdrStyle->SetTitleColor(1); tdrStyle->SetTitleTextColor(1); tdrStyle->SetTitleFillColor(10); tdrStyle->SetTitleFontSize(0.05); // tdrStyle->SetTitleH(0); // Set the height of the title box // tdrStyle->SetTitleW(0); // Set the width of the title box // tdrStyle->SetTitleX(0); // Set the position of the title box // tdrStyle->SetTitleY(0.985); // Set the position of the title box // tdrStyle->SetTitleStyle(Style_t style = 1001); // tdrStyle->SetTitleBorderSize(2); // For the axis titles: tdrStyle->SetTitleColor(1, "XYZ"); tdrStyle->SetTitleFont(42, "XYZ"); tdrStyle->SetTitleSize(0.06, "XYZ"); // tdrStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? // tdrStyle->SetTitleYSize(Float_t size = 0.02); tdrStyle->SetTitleXOffset(0.9); tdrStyle->SetTitleYOffset(0.75); // tdrStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset // For the axis labels: tdrStyle->SetLabelColor(1, "XYZ"); tdrStyle->SetLabelFont(42, "XYZ"); tdrStyle->SetLabelOffset(0.007, "XYZ"); tdrStyle->SetLabelSize(0.05, "XYZ"); // For the axis: tdrStyle->SetAxisColor(1, "XYZ"); tdrStyle->SetStripDecimals(kTRUE); tdrStyle->SetTickLength(0.03, "XYZ"); tdrStyle->SetNdivisions(510, "XYZ"); tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame tdrStyle->SetPadTickY(1); // Change for log plots: tdrStyle->SetOptLogx(0); tdrStyle->SetOptLogy(0); tdrStyle->SetOptLogz(0); // Postscript options: // tdrStyle->SetPaperSize(15.,15.); // tdrStyle->SetLineScalePS(Float_t scale = 3); // tdrStyle->SetLineStyleString(Int_t i, const char* text); // tdrStyle->SetHeaderPS(const char* header); // tdrStyle->SetTitlePS(const char* pstitle); // tdrStyle->SetBarOffset(Float_t baroff = 0.5); // tdrStyle->SetBarWidth(Float_t barwidth = 0.5); // tdrStyle->SetPaintTextFormat(const char* format = "g"); // tdrStyle->SetPalette(Int_t ncolors = 0, Int_t* colors = 0); // tdrStyle->SetTimeOffset(Double_t toffset); // tdrStyle->SetHistMinimumZero(kTRUE); tdrStyle->cd(); // --- set nice colors in 2D const Int_t NRGBs = 5; const Int_t NCont = 255; Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 }; Double_t red[NRGBs] = { 0.00, 0.00, 0.87, 1.00, 0.51 }; Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 }; Double_t blue[NRGBs] = { 0.51, 1.00, 0.12, 0.00, 0.00 }; TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont); gStyle->SetNumberContours(NCont); // --- set default Sumw2 TH1::SetDefaultSumw2(true); }
int electronCompare() { TString CMP_DIR = gSystem->Getenv( "CMP_DIR" ) ; TString CMP_URL = gSystem->Getenv( "CMP_URL" ) ; TString CMP_TITLE = gSystem->Getenv( "CMP_TITLE" ) ; TString CMP_RED_FILE = gSystem->Getenv( "CMP_RED_FILE" ) ; TString CMP_BLUE_FILE = gSystem->Getenv( "CMP_BLUE_FILE" ) ; TString CMP_RED_NAME = gSystem->Getenv( "CMP_RED_NAME" ) ; TString CMP_BLUE_NAME = gSystem->Getenv( "CMP_BLUE_NAME" ) ; TString CMP_RED_COMMENT = gSystem->Getenv( "CMP_RED_COMMENT" ) ; TString CMP_BLUE_COMMENT = gSystem->Getenv( "CMP_BLUE_COMMENT" ) ; TString CMP_CONFIG = gSystem->Getenv( "CMP_CONFIG" ) ; TString CMP_RED_RELEASE = gSystem->Getenv( "CMP_RED_RELEASE" ) ; TString CMP_BLUE_RELEASE = gSystem->Getenv( "CMP_BLUE_RELEASE" ) ; //----- // AC // std::cout << "red_file : C : " << CMP_RED_FILE << std::endl; // std::cout << "blue_file : C : " << CMP_BLUE_FILE << std::endl; std::cout << "red_release : C : " << CMP_RED_RELEASE << std::endl; std::cout << "blue_release : C : " << CMP_BLUE_RELEASE << std::endl; std::cout << "CMP_RED_NAME : " << CMP_RED_NAME << std::endl; std::cout << "CMP_BLUE_NAME : " << CMP_BLUE_NAME << std::endl; //----- // style: TStyle *eleStyle = new TStyle("eleStyle","Style for electron validation"); eleStyle->SetCanvasBorderMode(0); eleStyle->SetCanvasColor(kWhite); eleStyle->SetCanvasDefH(600); eleStyle->SetCanvasDefW(800); eleStyle->SetCanvasDefX(0); eleStyle->SetCanvasDefY(0); eleStyle->SetPadBorderMode(0); eleStyle->SetPadColor(kWhite); eleStyle->SetPadGridX(false); eleStyle->SetPadGridY(false); eleStyle->SetGridColor(0); eleStyle->SetGridStyle(3); eleStyle->SetGridWidth(1); eleStyle->SetOptStat(1); eleStyle->SetPadTickX(1); eleStyle->SetPadTickY(1); eleStyle->SetHistLineColor(1); eleStyle->SetHistLineStyle(0); eleStyle->SetHistLineWidth(2); eleStyle->SetEndErrorSize(2); eleStyle->SetErrorX(0.); eleStyle->SetOptStat(1); eleStyle->SetTitleColor(1, "XYZ"); eleStyle->SetTitleFont(42, "XYZ"); eleStyle->SetTitleXOffset(1.0); eleStyle->SetTitleYOffset(1.0); eleStyle->SetLabelOffset(0.005, "XYZ"); eleStyle->SetTitleSize(0.05, "XYZ"); eleStyle->SetTitleFont(22,"X"); eleStyle->SetTitleFont(22,"Y"); eleStyle->SetHistLineWidth(2); eleStyle->SetPadBottomMargin(0.13); eleStyle->SetPadLeftMargin(0.15); eleStyle->SetMarkerStyle(21); eleStyle->SetMarkerSize(0.8); //-- AC -- eleStyle->SetPadRightMargin(0.2) ; eleStyle->cd(); gROOT->ForceStyle(); TString internal_path("DQMData/Run 1/EgammaV/Run summary/") ; TString old_internal_path("DQMData/EgammaV/") ; // TString new_internal_path("DQMData/Run 1/EgammaV/Run summary/") ; TString file_ref_dir ; TFile * file_ref = 0 ; if ( CMP_BLUE_FILE != "" ) { file_ref = TFile::Open(CMP_BLUE_FILE) ; if (file_ref!=0) { std::cout<<"open "<<CMP_BLUE_FILE<<std::endl ; if (file_ref->cd(internal_path)==kTRUE) { std::cerr<<"cd "<<internal_path<<std::endl ; file_ref_dir = internal_path ; file_ref->cd() ; } else if (file_ref->cd(old_internal_path)==kTRUE) { std::cerr<<"cd "<<old_internal_path<<std::endl ; file_ref_dir = old_internal_path ; file_ref->cd() ; } else { std::cerr<<"Failed move to: "<<internal_path<<" and "<<old_internal_path<<std::endl ; file_ref_dir = "" ; } } else { std::cerr<<"Failed to open: "<<CMP_BLUE_FILE<<std::endl ; } } TString file_new_dir = internal_path ; TFile * file_new = 0 ; if ( CMP_RED_FILE != "" ) { file_new = TFile::Open(CMP_RED_FILE) ; if (file_new!=0) { std::cout<<"open "<<CMP_RED_FILE<<std::endl ; if (file_new->cd(internal_path)==kTRUE) { std::cerr<<"cd "<<internal_path<<std::endl ; file_new_dir = internal_path ; file_new->cd() ; } else if (file_new->cd(old_internal_path)==kTRUE) { std::cerr<<"cd "<<old_internal_path<<std::endl ; file_new_dir = old_internal_path ; file_new->cd() ; } else { std::cerr<<"Failed move to: "<<internal_path<<" and "<<old_internal_path<<std::endl ; file_new_dir = "" ; } } else { std::cerr<<"Failed to open: "<<CMP_RED_FILE<<std::endl ; } } TCanvas * canvas ; TH1 * histo_ref, * histo_new ; TPaveStats * st_ref, * st_new ; std::ofstream web_page(CMP_DIR+"/index.html") ; web_page <<"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n" <<"<html>\n" <<"<head>\n" <<"<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />\n" <<"<title>"<<CMP_TITLE<<"</title>\n" <<"</head>\n" <<"<h1><a href=\"../\"><img border=0 width=\"22\" height=\"22\" src=\"../../../../img/up.gif\" alt=\"Up\"/></a> "<<CMP_TITLE<<"</h1>\n" ; if (file_ref==0) { web_page <<"<p>In all plots below" <<", there was no reference histograms to compare with" <<", and the "<<CMP_RED_NAME<<" histograms are in red." ; } else { /* web_page <<"<p>In all plots below" <<", the "<<CMP_RED_NAME<<" histograms are in red" <<", and the "<<CMP_BLUE_NAME<<" histograms are in blue." ;*/ web_page <<"<p>In all plots below" <<", the <b><font color='red'>"<<CMP_RED_RELEASE<<"</font></b> histograms are in red" <<", and the <b><font color='blue'>"<<CMP_BLUE_RELEASE<<"</font></b> histograms are in blue." ; /* std::cout <<"<p>In all plots below " <<", the "<<CMP_RED_RELEASE<<" histograms are in red" <<", and the "<<CMP_BLUE_RELEASE<<" histograms are in blue." << std::endl ;*/ } std::ifstream red_comment_file(CMP_RED_COMMENT) ; std::string red_comment ; std::getline(red_comment_file,red_comment) ; red_comment_file.close() ; std::ifstream blue_comment_file(CMP_BLUE_COMMENT) ; std::string blue_comment ; std::getline(blue_comment_file,blue_comment) ; blue_comment_file.close() ; web_page<<" "<<red_comment<<" "<<blue_comment <<" Some more details" <<": <a href=\"electronCompare.C\">script</a> used to make the plots" <<", <a href=\""<<CMP_CONFIG<<"\">specification</a> of histograms" <<", <a href=\"gifs/\">images</a> of histograms" <<"." ; web_page<<"</p>\n" ; // canvas_name std::string => TString TString canvas_name, histo_name, histo_full_path, gif_name, gif_path ; TString Pt1000_path_extension ; Pt1000_path_extension = "ElectronMcSignalValidator/" ; // needed for comparison between new >= 740pre8 and old < 740pre8 for Pt1000 TString histo_full_path_Pt1000 ; TString short_histo_name ; TString first_short_histo_name, first_histo_name ; TString dl_short_histo_name, dl_histo_name ; TString num_ref, denom_ref, num_full, denom_full ; Int_t n_ele_charge ; int scaled, err ; int divide; std::string cat, line, histo_path, num, denom ; int eol ; // end of line int eoc ; // enf of category double rescale_factor = 0. ; std::ifstream histo_file1(CMP_CONFIG) ; web_page <<"<br><table border=\"1\" cellpadding=\"5\" width=\"100%\">" <<"<tr valign=\"top\"><td width=\"20%\">\n" ; int cat_num = 0 ; cat = "" ; do { std::getline(histo_file1,cat) ; } while (cat.find_first_not_of(" \t")==std::string::npos) ; web_page<<"<b>"<<cat<<"</b><br><br>" ; while (std::getline(histo_file1,line)) { if (line.empty()) continue ; std::size_t first = line.find_first_not_of(" \t") ; if (first==std::string::npos) continue ; if (line[first]=='#') continue ; std::istringstream linestream(line) ; divide = 0 ; num = denom = "" ; linestream >> histo_path >> scaled >> err >> eol >> eoc >> divide >> num >> denom ; histo_name = histo_path ; Ssiz_t pos = histo_name.Last('/') ; if (pos!=kNPOS) histo_name.Remove(0,pos+1) ; short_histo_name = histo_name ; short_histo_name.Remove(0,2) ; if (short_histo_name.BeginsWith("ele_")) { short_histo_name.Remove(0,4) ; } if (first_histo_name.IsNull()) { first_short_histo_name = short_histo_name ; first_histo_name = histo_name ; dl_short_histo_name = short_histo_name ; dl_histo_name = histo_name ; } else { TString common ; TString first_specific ; TString second_specific ; CompareHistoNames(first_short_histo_name,short_histo_name,common,first_specific,second_specific) ; if (!dl_histo_name.IsNull()) { if (first_specific.IsNull()) { web_page<<"<a href=\"#"<<first_histo_name<<"\">"<<first_short_histo_name<<"</a>" ; } else { web_page<<common<<" | <a href=\"#"<<first_histo_name<<"\">"<<first_specific<<"</a>" ; } dl_short_histo_name = dl_histo_name = "" ; } web_page<<" | <a href=\"#"<<histo_name<<"\">"<<second_specific<<"</a>" ; } if ((eol)||(eoc)) { if (!dl_histo_name.IsNull()) { web_page<<"<a href=\"#"<<dl_histo_name<<"\">"<<dl_short_histo_name<<"</a>" ; } web_page<<"<br>\n" ; first_histo_name = first_short_histo_name = "" ; } if (eoc) { cat_num++ ; if ((cat_num%5)==0) { web_page<<"<br></td></tr>\n<tr valign=\"top\"><td width=\"20%\">" ; } else { web_page<<"<br></td><td width=\"20%\">\n" ; } cat = "" ; do { std::getline(histo_file1,cat) ; } while (cat.find_first_not_of(" \t")==std::string::npos) ; web_page<<"<b>"<<cat<<"</b><br><br>" ; } } web_page<<"<br></td></tr></table>\n" ; histo_file1.close() ; web_page<<"<br><br><table cellpadding=\"5\"><tr valign=\"top\"><td><a href=\""<<CMP_URL<<"/\"><img width=\"18\" height=\"18\" border=\"0\" align=\"middle\" src=\"../../../../img/up.gif\" alt=\"Top\"/></a></td><td>\n" ; std::ifstream histo_file2(CMP_CONFIG) ; n_ele_charge = 0 ; cat = "" ; do { std::getline(histo_file2,cat) ; } while (cat.empty()) ; while (std::getline(histo_file2,line)) { if (line.empty()) continue ; std::size_t first = line.find_first_not_of(" \t") ; if (first==std::string::npos) continue ; if (line[first]=='#') continue ; // std::istrstream linestream(line) ; // istringstream linestream(line) ; std::basic_istringstream<char> linestream(line) ; divide = 0 ; num = denom = "" ; linestream >> histo_path >> scaled >> err >> eol >> eoc >> divide >> num >> denom ; histo_name = histo_path.c_str() ; histo_ref = 0 ; histo_new = 0 ; st_ref = 0 ; st_new = 0 ; Ssiz_t pos = histo_name.Last('/') ; if (pos!=kNPOS) histo_name.Remove(0,pos+1) ; short_histo_name = histo_name ; short_histo_name.Remove(0,2) ; gif_name = "gifs/" ; gif_name += histo_name ; gif_name += ".gif" ; gif_path = CMP_DIR ; gif_path += "/" ; gif_path += gif_name ; canvas_name = "c" ; canvas_name += histo_name ; canvas = new TCanvas(canvas_name) ; canvas->SetFillColor(10) ; web_page<<"<a id=\""<<histo_name<<"\" name=\""<<short_histo_name<<"\"></a>" ; // search histo_ref if ( file_ref != 0 ) { if (file_ref_dir.IsNull()) { histo_full_path = histo_name ; /*std::cout << "file_ref_dir.IsNull()" << std::endl ;*/ } else { histo_full_path = file_ref_dir ; histo_full_path += histo_path.c_str() ; /*std::cout << "file_ref_dir.NotNull()" << std::endl ;*/ } // WARNING // the line below have to be unmasked if the reference release is prior to 740pre8 and for Pt1000 // before 740pre8 : DQMData/Run 1/EgammaV/Run summary/ ElectronMcSignalValidator/ histo name (same as Pt35, Pt10, ....) // after 740pre8 : DQMData/Run 1/EgammaV/Run summary/ ElectronMcSignalValidatorPt1000/ histo name histo_full_path_Pt1000 = file_ref_dir ; histo_full_path_Pt1000 += Pt1000_path_extension; histo_full_path_Pt1000 += histo_name ; // for Pt1000 // END WARNING // std::cout << "histo_full_path ref : " << histo_full_path << std::endl ; histo_ref = (TH1 *)file_ref->Get(histo_full_path) ; if (histo_ref!=0) { // renaming those histograms avoid very strange bugs because they // have the same names as the ones loaded from the new file histo_ref->SetName(TString(histo_ref->GetName())+"_ref") ; // std::cout << "histo_ref Name : " << histo_ref->GetName() << " - histo_new Name : " << histo_name << std::endl ; // A.C. to be removed } else // no histo { histo_ref = (TH1 *)file_ref->Get(histo_full_path_Pt1000) ; if (histo_ref!=0) { // renaming those histograms avoid very strange bugs because they // have the same names as the ones loaded from the new file histo_ref->SetName(TString(histo_ref->GetName())+"_ref") ; } else { web_page<<"No <b>"<<histo_path<<"</b> for "<<CMP_BLUE_NAME<<".<br>" ; } } } // search histo_new histo_full_path = file_new_dir ; histo_full_path += histo_path.c_str() ; histo_new = (TH1 *)file_new->Get(histo_full_path) ; // std::cout << "histo_new Name : " << histo_new->GetName() << std::endl ; // A.C. to be removed // std::cout << "histo_full_path new : " << histo_full_path << std::endl ; // std::cout << "histo_path.cstr new : " << histo_path.c_str() << std::endl ; // special treatments if ((scaled==1)&&(histo_new!=0)&&(histo_ref!=0)&&(histo_ref->GetEntries()!=0)) { Int_t new_entries = histo_new->GetEntries() ; if (new_entries==0) { new_entries = n_ele_charge ; } if (new_entries==0) { std::cerr<<"DO NOT KNOW HOW TO RESCALE "<<histo_name<<std::endl ; } else { // we want to reuse the rescale factor of the first histogram // for all the subsequent histograms. if (rescale_factor==0.) { rescale_factor = new_entries/histo_ref->GetEntries() ; } histo_ref->Scale(rescale_factor) ; } } // std::cout << "histo_ref get Min : " << histo_ref->GetMinimum() << " - histo_ref get Max : " << histo_ref->GetMaximum() << std::endl ; // // std::cout << "histo_new get Min : " << histo_new->GetMinimum() << " - histo_new get Max : " << histo_new->GetMaximum() << std::endl ; // if ((histo_new!=0)&&(histo_ref!=0)&&(histo_ref->GetMaximum()>histo_new->GetMaximum())) { histo_new->SetMaximum(histo_ref->GetMaximum()*1.1) ; } if (histo_new==0) { web_page<<"No <b>"<<histo_path<<"</b> for "<<CMP_RED_NAME<<".<br>" ; } else { // catch n_ele_charge if (histo_name=="h_ele_charge") { n_ele_charge = histo_new->GetEntries() ; } // draw histo_new // std::cout << histo_name << " drawing histos new" << std::endl ; // TString newDrawOptions(err==1?"E1 P":"hist") ; gErrorIgnoreLevel = kWarning ; if (divide!=0) { num_full = file_new_dir ; num_full += num.c_str() ; denom_full = file_new_dir ; denom_full += denom.c_str() ; histo_new = DivideHistos(file_new,histo_new,num_full,denom_full) ; } histo_new->SetLineColor(kRed) ; histo_new->SetMarkerColor(2) ; histo_new->SetLineWidth(3) ; RenderHisto(histo_new,canvas) ; histo_new->Draw(newDrawOptions) ; // std::cout << "SIZE : " << canvas->GetWw() << std::endl ; // 796 default // std::cout << "SIZE : " << canvas->GetWh() << std::endl ; // 572 default canvas->SetCanvasSize(960, 600); canvas->Update() ; st_new = (TPaveStats*)histo_new->FindObject("stats"); st_new->SetTextColor(kRed) ; // draw histo_ref // std::cout << histo_name << " drawing histos ref" << std::endl ; // if (histo_ref!=0) { if (divide!=0) { num_ref = num ; denom_ref = denom ; if (file_ref_dir.IsNull()) { pos = num_ref.Last('/') ; if (pos!=kNPOS) num_ref.Remove(0,pos+1) ; pos = denom_ref.Last('/') ; if (pos!=kNPOS) denom_ref.Remove(0,pos+1) ; } histo_ref = DivideHistos(file_ref,histo_ref,file_ref_dir+num_ref,file_ref_dir+denom_ref) ; } RenderHisto(histo_ref,canvas) ; histo_ref->SetLineColor(kBlue) ; histo_ref->SetLineWidth(3) ; histo_ref->Draw("sames hist") ; canvas->Update() ; st_ref = (TPaveStats*)histo_ref->FindObject("stats"); st_ref->SetTextColor(kBlue) ; Double_t y1 = st_ref->GetY1NDC() ; Double_t y2 = st_ref->GetY2NDC() ; st_ref->SetY1NDC(2*y1-y2) ; st_ref->SetY2NDC(y1) ; //Double_t x1 = st_ref->GetX1NDC() ; //Double_t x2 = st_ref->GetX2NDC() ; //std::cout << "position s x1 = " << x1 << std::endl ; // 0.78 par defaut //std::cout << "position s x2 = " << x2 << std::endl ; // 0.98 par defaut //std::cout << "position s y1 = " << y1 << std::endl ; // 0.755 ou 0.835 par defaut //std::cout << "position s y2 = " << y2 << std::endl ; // 0.995 par defaut } // Redraws newDrawOptions = "sames " ; newDrawOptions += (err==1?"E1 P":"hist") ; histo_new->Draw(newDrawOptions) ; if (st_ref!=0) st_ref->Draw() ; if (st_new!=0) st_new->Draw() ; // eventual log scale //if ( (log==1) && ( (histo_new->GetEntries()>0) || ( (histo_ref!=0) && (histo_ref->GetEntries()!=0) ) ) ) // { canvas->SetLogy(1) ; } // ne pas oublier de decommenter les 4 lignes suivantes // std::cout << "histo_new get Min : " << histo_new->GetMinimum() << " - histo_new get Max : " << histo_new->GetMaximum() << std::endl ; // // std::cout << histo_name << " getEffectiveEntries : " << histo_new->GetEffectiveEntries() << std::endl ; /* std::cout << histo_name << " GetMean : " << histo_new->GetMean() << std::endl ;*/ std::cout<<histo_name <<" has "<<histo_new->GetEffectiveEntries()<<" entries" // <<" of mean value "<<histo_new->GetMean() <<std::endl ; // std::cout << histo_name << " appel canvas->SaveAs" << std::endl ; canvas->SaveAs(gif_path.Data()) ; web_page<<"<a href=\""<<gif_name<<"\"><img border=\"0\" class=\"image\" width=\"440\" src=\""<<gif_name<<"\"></a><br>" ; // std::cout << histo_name << " fin boucle else \n" << std::endl ; } // else if ((file_ref!=0)&&(histo_ref!=0)) // { // std::cout<<histo_path<<" NOT FOUND"<<std::endl ; // web_page<<"<br>(no such histo)" ; // canvas->SaveAs(gif_path.Data()) ; // web_page<<"<a href=\""<<gif_name<<"\"><img border=\"0\" class=\"image\" width=\"440\" src=\""<<gif_name<<"\"></a><br>" ; // } if (eol) { web_page<<"</td></tr>\n<tr valign=\"top\"><td><a href=\""<<CMP_URL<<"/\"><img width=\"18\" height=\"18\" border=\"0\" align=\"middle\" src=\"../../../../img/up.gif\" alt=\"Top\"/></a></td><td>" ; } else { web_page<<"</td><td>" ; } if (eoc) { cat = "" ; do { std::getline(histo_file2,cat) ; } while (cat.empty()) ; } } std::cout << "on ferme le fichier" << std::endl; histo_file2.close() ; web_page<<"</td></tr></table>\n" ; web_page<<"\n</html>"<<std::endl ; std::cout << "on ferme la page" << std::endl; web_page.close() ; std::cout << "page fermee" << std::endl; return 0; }
void teenyWeenyBtagEffCalculation(){ // TDR style crap - include from Utilities.cc TStyle *tdrStyle = new TStyle("tdrStyle","Style for P-TDR"); // For the canvas: tdrStyle->SetCanvasBorderMode(0); tdrStyle->SetCanvasColor(kWhite); tdrStyle->SetCanvasDefH(600); //Height of canvas tdrStyle->SetCanvasDefW(600); //Width of canvas tdrStyle->SetCanvasDefX(0); //Position on screen tdrStyle->SetCanvasDefY(0); // For the Pad: tdrStyle->SetPadBorderMode(0); // tdrStyle->SetPadBorderSize(Width_t size = 1); tdrStyle->SetPadColor(kWhite); tdrStyle->SetPadGridX(false); tdrStyle->SetPadGridY(false); tdrStyle->SetGridColor(0); tdrStyle->SetGridStyle(3); tdrStyle->SetGridWidth(1); // For the frame: tdrStyle->SetFrameBorderMode(0); tdrStyle->SetFrameBorderSize(1); tdrStyle->SetFrameFillColor(0); tdrStyle->SetFrameFillStyle(0); tdrStyle->SetFrameLineColor(1); tdrStyle->SetFrameLineStyle(1); tdrStyle->SetFrameLineWidth(1); // For the histo: // tdrStyle->SetHistFillColor(1); // tdrStyle->SetHistFillStyle(0); tdrStyle->SetHistLineColor(1); tdrStyle->SetHistLineStyle(0); tdrStyle->SetHistLineWidth(1); // tdrStyle->SetLegoInnerR(Float_t rad = 0.5); // tdrStyle->SetNumberContours(Int_t number = 20); tdrStyle->SetEndErrorSize(2); //tdrStyle->SetErrorMarker(20); tdrStyle->SetErrorX(0.); tdrStyle->SetMarkerStyle(20); //For the fit/function: tdrStyle->SetOptFit(1); tdrStyle->SetFitFormat("5.4g"); tdrStyle->SetFuncColor(2); tdrStyle->SetFuncStyle(1); tdrStyle->SetFuncWidth(1); //For the date: tdrStyle->SetOptDate(0); // tdrStyle->SetDateX(Float_t x = 0.01); // tdrStyle->SetDateY(Float_t y = 0.01); // For the statistics box: tdrStyle->SetOptFile(0); tdrStyle->SetOptStat(0); // To display the mean and RMS: SetOptStat("mr"); tdrStyle->SetStatColor(kWhite); tdrStyle->SetStatFont(42); tdrStyle->SetStatFontSize(0.025); tdrStyle->SetStatTextColor(1); tdrStyle->SetStatFormat("6.4g"); tdrStyle->SetStatBorderSize(1); tdrStyle->SetStatH(0.1); tdrStyle->SetStatW(0.15); // tdrStyle->SetStatStyle(Style_t style = 1001); // tdrStyle->SetStatX(Float_t x = 0); // tdrStyle->SetStatY(Float_t y = 0); // Margins: tdrStyle->SetPadTopMargin(0.05); tdrStyle->SetPadBottomMargin(0.13); tdrStyle->SetPadLeftMargin(0.16); tdrStyle->SetPadRightMargin(0.04); // For the Global title: tdrStyle->SetOptTitle(0); tdrStyle->SetTitleFont(42); tdrStyle->SetTitleColor(1); tdrStyle->SetTitleTextColor(1); tdrStyle->SetTitleFillColor(10); tdrStyle->SetTitleFontSize(0.05); // tdrStyle->SetTitleH(0); // Set the height of the title box // tdrStyle->SetTitleW(0); // Set the width of the title box // tdrStyle->SetTitleX(0); // Set the position of the title box // tdrStyle->SetTitleY(0.985); // Set the position of the title box // tdrStyle->SetTitleStyle(Style_t style = 1001); // tdrStyle->SetTitleBorderSize(2); // For the axis titles: tdrStyle->SetTitleColor(1, "XYZ"); tdrStyle->SetTitleFont(42, "XYZ"); tdrStyle->SetTitleSize(0.05, "XYZ"); // tdrStyle->SetTitleXSize(Float_t size = 0.02); // Another way to set the size? // tdrStyle->SetTitleYSize(Float_t size = 0.02); tdrStyle->SetTitleXOffset(0.9); tdrStyle->SetTitleYOffset(1.25); // tdrStyle->SetTitleOffset(1.1, "Y"); // Another way to set the Offset // tdrStyle->SetTitleOffset(.3, "X"); // Another way to set the Offset // tdrStyle->SetTitleOffset(1., "Y"); // Another way to set the Offset // // For the axis labels: tdrStyle->SetLabelColor(1, "XYZ"); tdrStyle->SetLabelFont(42, "XYZ"); tdrStyle->SetLabelOffset(0.007, "XYZ"); tdrStyle->SetLabelSize(0.05, "XYZ"); // For the axis: tdrStyle->SetAxisColor(1, "XYZ"); tdrStyle->SetStripDecimals(kTRUE); tdrStyle->SetTickLength(0.03, "XYZ"); tdrStyle->SetNdivisions(510, "XYZ"); tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame tdrStyle->SetPadTickY(1); // Change for log plots: tdrStyle->SetOptLogx(0); tdrStyle->SetOptLogy(0); tdrStyle->SetOptLogz(0); // Postscript options: tdrStyle->SetPaperSize(20.,20.); // tdrStyle->SetLineScalePS(Float_t scale = 3); // tdrStyle->SetLineStyleString(Int_t i, const char* text); // tdrStyle->SetHeaderPS(const char* header); // tdrStyle->SetTitlePS(const char* pstitle); // tdrStyle->SetBarOffset(Float_t baroff = 0.5); // tdrStyle->SetBarWidth(Float_t barwidth = 0.5); // tdrStyle->SetPaintTextFormat(const char* format = "g"); // tdrStyle->SetPalette(Int_t ncolors = 0, Int_t* colors = 0); // tdrStyle->SetTimeOffset(Double_t toffset); // tdrStyle->SetHistMinimumZero(kTRUE); tdrStyle->cd(); // Meat of the stuff // // ned in current scope (tmpfile):1: // (const int)0 //*** Interpreter error recovered *** //root [4] .ls // TFile**/lustre/ncg.ingrid.pt/cmslocal/samples/CMSSW_5_3_7_patch4/chiggs/fakerate_fractionsEstimate/trees/TauFRWMuMCFailing_PFlow.root // TFile*/lustre/ncg.ingrid.pt/cmslocal/samples/CMSSW_5_3_7_patch4/chiggs/fakerate_fractionsEstimate/trees/TauFRWMuMCFailing_PFlow.root //root [5] .q //[vischia@ui-cms01 TopTaus]$ ls /lustre/ncg.ingrid.pt/ //cmslocal/ cmst3/ data1/ data2/ data3/ //[vischia@ui-cms01 TopTaus]$ ls /lustre/ncg.ingrid.pt/cmslocal/vischia/ //MyTMVA_temporaneo/ backupFirstFullRun2012/ myt // // // TFile* ttmutau = new TFile("/lustre/ncg.ingrid.pt/cmslocal/vischia/store/tau/Jan13ReReco/dataRedo/test_preapp2/nomt-2012-V1-mc-MU-20GeV/out-ttbar-mutau.root"); TH1F* btag_eff_fakebs_num = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_fakebs_num_27" ); TH1F* btag_eff_fakebs_den = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_fakebs_den_27" ); TH1F* btag_eff_nomatch_num = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_nomatch_num_27"); TH1F* btag_eff_nomatch_den = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_nomatch_den_27"); TH1F* btag_eff_fakebs2_num = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_fakebs2_num_27"); TH1F* btag_eff_fakebs2_den = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_fakebs2_den_27"); TH1F* btag_eff_realbs_num = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_realbs_num_27" ); TH1F* btag_eff_realbs_den = (TH1F*) ttmutau->Get("PFlow/RecoSteps/m_tau/MET/btag_eff_realbs_den_27" ); // num= passing // den = non passing double fakesWNonMatchedPassing_over_fakesWNonMatchedNonPassing = ( btag_eff_fakebs_num->Integral()+ btag_eff_nomatch_num->Integral() ) / ( btag_eff_fakebs_den->Integral() + btag_eff_nomatch_den->Integral() ); double fakesWoutNonMatchedPassing_over_fakesWoutNonMatchedNonPassing = btag_eff_fakebs_num->Integral() / btag_eff_fakebs_den->Integral(); double fakesAllNonBsPassing_over_fakesAllNonBsNonPassing = btag_eff_fakebs2_num->Integral() / btag_eff_fakebs2_den->Integral(); double realBsNonPassing_over_fakeAndRealbsNonPassing = btag_eff_realbs_den->Integral() / ( btag_eff_fakebs_den->Integral() +btag_eff_realbs_den->Integral()); double realBsPassing_over_realBsNonPassing = btag_eff_realbs_num->Integral() / btag_eff_realbs_den->Integral(); double realBsPassing_over_realBs = btag_eff_realbs_num->Integral() / ( btag_eff_realbs_num->Integral() + btag_eff_realbs_den->Integral() ); double fakeBsPassing_over_fakeBs = btag_eff_fakebs_num->Integral() / ( btag_eff_fakebs_num->Integral() + btag_eff_fakebs_den->Integral() ); double fakeBsPassing_over_fakeBs_includeNonMatched = btag_eff_fakebs2_num->Integral() / ( btag_eff_fakebs2_num->Integral() + btag_eff_fakebs2_den->Integral() ); cout << "fakesWNonMatchedPassing_over_fakesWNonMatchedNonPassing: " << fakesWNonMatchedPassing_over_fakesWNonMatchedNonPassing <<endl; cout << "fakesWoutNonMatchedPassing_over_fakesWoutNonMatchedNonPassing: " << fakesWoutNonMatchedPassing_over_fakesWoutNonMatchedNonPassing <<endl; cout << "fakesAllNonBsPassing_over_fakesAllNonBsNonPassing: " << fakesAllNonBsPassing_over_fakesAllNonBsNonPassing <<endl; cout << "realBsNonPassing_over_fakeAndRealbsNonPassing: " << realBsNonPassing_over_fakeAndRealbsNonPassing <<endl; cout << "realBsPassing_over_realBsNonPassing: " << realBsPassing_over_realBsNonPassing <<endl; cout << "realBsPassing_over_realBs: " << realBsPassing_over_realBs <<endl; cout << "fakeBsPassing_over_fakeBs: " << fakeBsPassing_over_fakeBs <<endl; cout << "fakeBsPassing_over_fakeBs_includeNonMatched: " << fakeBsPassing_over_fakeBs_includeNonMatched <<endl; // // httllq->Sumw2(); // httllg->Sumw2(); // // httllq->Add(hwjetq,1.); // httllg->Add(hwjetg,1.); // httlla->Add(hwjeta,1.); // // double fqf= httllq->Integral() / (httllq->Integral() + httllg->Integral()); // double fgf= httllg->Integral() / (httllq->Integral() + httllg->Integral()); // // // cout << "Fractions in ttll sample: quarks " << ttllfq << ", gluons " << ttllfg << endl; // cout << "Fractions in wjet sample: quarks " << wjetfq << ", gluons " << wjetfg << endl; // cout << "Combination: quarks " << 0.5*ttllfq + 0.5*wjetfq << ", gluons " << 0.5*ttllfg+0.5*wjetfg << endl; // cout << "Fractions in main anal. sample: quarks " << fqf << ", gluons " << fgf << endl; // cout << "-------------------------------" << endl; // // TFile* wmuP = new TFile("/lustre/ncg.ingrid.pt/cmslocal/samples/CMSSW_5_3_7_patch4/chiggs/fakerate_testPOG/trees/TauFRWMuMCPassing_PFlow.root"); // TFile* wmuF = new TFile("/lustre/ncg.ingrid.pt/cmslocal/samples/CMSSW_5_3_7_patch4/chiggs/fakerate_testPOG/trees/TauFRWMuMCFailing_PFlow.root"); // TFile* qcdP = new TFile("/lustre/ncg.ingrid.pt/cmslocal/samples/CMSSW_5_3_7_patch4/chiggs/fakerate_testPOG/trees/TauFRQCDMCPassing_PFlow.root"); // TFile* qcdF = new TFile("/lustre/ncg.ingrid.pt/cmslocal/samples/CMSSW_5_3_7_patch4/chiggs/fakerate_testPOG/trees/TauFRQCDMCFailing_PFlow.root"); // // std::vector<TH1F*> v_wplusjets_pt; // std::vector<TH1F*> v_wplusjets_pt_unknown; // std::vector<TH1F*> v_wplusjets_pt_quark; // std::vector<TH1F*> v_wplusjets_pt_bquark; // std::vector<TH1F*> v_wplusjets_pt_gluon; // std::vector<TH1F*> v_wplusjets_pt_allquark; // // std::vector<TH1F*> v_qf; // std::vector<TH1F*> v_gf; // // // v_wplusjets_pt .push_back( (TH1F*) ((TH1F*) wmuP->Get("wplusjets_pt") )->Clone("wmuP_wplusjets_pt") ); // v_wplusjets_pt_unknown .push_back( (TH1F*) ((TH1F*) wmuP->Get("wplusjets_pt_unknown") )->Clone("wmuP_wplusjets_pt_unknown") ); // v_wplusjets_pt_quark .push_back( (TH1F*) ((TH1F*) wmuP->Get("wplusjets_pt_quark") )->Clone("wmuP_wplusjets_pt_quark") ); // v_wplusjets_pt_bquark .push_back( (TH1F*) ((TH1F*) wmuP->Get("wplusjets_pt_bquark") )->Clone("wmuP_wplusjets_pt_bquark") ); // v_wplusjets_pt_gluon .push_back( (TH1F*) ((TH1F*) wmuP->Get("wplusjets_pt_gluon") )->Clone("wmuP_wplusjets_pt_gluon") ); // v_wplusjets_pt_allquark.push_back( (TH1F*) ((TH1F*) wmuP->Get("wplusjets_pt_allquark"))->Clone("wmuP_wplusjets_pt_allquark") ); // // v_wplusjets_pt .push_back( (TH1F*) ((TH1F*) wmuF->Get("wplusjets_pt") )->Clone("wmuF_wplusjets_pt") ); // v_wplusjets_pt_unknown .push_back( (TH1F*) ((TH1F*) wmuF->Get("wplusjets_pt_unknown") )->Clone("wmuF_wplusjets_pt_unknown") ); // v_wplusjets_pt_quark .push_back( (TH1F*) ((TH1F*) wmuF->Get("wplusjets_pt_quark") )->Clone("wmuF_wplusjets_pt_quark") ); // v_wplusjets_pt_bquark .push_back( (TH1F*) ((TH1F*) wmuF->Get("wplusjets_pt_bquark") )->Clone("wmuF_wplusjets_pt_bquark") ); // v_wplusjets_pt_gluon .push_back( (TH1F*) ((TH1F*) wmuF->Get("wplusjets_pt_gluon") )->Clone("wmuF_wplusjets_pt_gluon") ); // v_wplusjets_pt_allquark.push_back( (TH1F*) ((TH1F*) wmuF->Get("wplusjets_pt_allquark"))->Clone("wmuF_wplusjets_pt_allquark") ); // // v_wplusjets_pt .push_back( (TH1F*) ((TH1F*) qcdP->Get("wplusjets_pt") )->Clone("qcdP_wplusjets_pt") ); // v_wplusjets_pt_unknown .push_back( (TH1F*) ((TH1F*) qcdP->Get("wplusjets_pt_unknown") )->Clone("qcdP_wplusjets_pt_unknown") ); // v_wplusjets_pt_quark .push_back( (TH1F*) ((TH1F*) qcdP->Get("wplusjets_pt_quark") )->Clone("qcdP_wplusjets_pt_quark") ); // v_wplusjets_pt_bquark .push_back( (TH1F*) ((TH1F*) qcdP->Get("wplusjets_pt_bquark") )->Clone("qcdP_wplusjets_pt_bquark") ); // v_wplusjets_pt_gluon .push_back( (TH1F*) ((TH1F*) qcdP->Get("wplusjets_pt_gluon") )->Clone("qcdP_wplusjets_pt_gluon") ); // v_wplusjets_pt_allquark.push_back( (TH1F*) ((TH1F*) qcdP->Get("wplusjets_pt_allquark"))->Clone("qcdP_wplusjets_pt_allquark") ); // // v_wplusjets_pt .push_back( (TH1F*) ((TH1F*) qcdF->Get("wplusjets_pt") )->Clone("qcdF_wplusjets_pt") ); // v_wplusjets_pt_unknown .push_back( (TH1F*) ((TH1F*) qcdF->Get("wplusjets_pt_unknown") )->Clone("qcdF_wplusjets_pt_unknown") ); // v_wplusjets_pt_quark .push_back( (TH1F*) ((TH1F*) qcdF->Get("wplusjets_pt_quark") )->Clone("qcdF_wplusjets_pt_quark") ); // v_wplusjets_pt_bquark .push_back( (TH1F*) ((TH1F*) qcdF->Get("wplusjets_pt_bquark") )->Clone("qcdF_wplusjets_pt_bquark") ); // v_wplusjets_pt_gluon .push_back( (TH1F*) ((TH1F*) qcdF->Get("wplusjets_pt_gluon") )->Clone("qcdF_wplusjets_pt_gluon") ); // v_wplusjets_pt_allquark.push_back( (TH1F*) ((TH1F*) qcdF->Get("wplusjets_pt_allquark"))->Clone("qcdF_wplusjets_pt_allquark") ); // // std::vector<int> colours; // colours.push_back(1); // colours.push_back(2); // colours.push_back(4); // colours.push_back(5); // // std::vector<TString> labels; // labels.push_back("W+1jet "); // labels.push_back("W+1jet "); // labels.push_back("QCDmulti "); // labels.push_back("QCDmulti "); // // std::vector<TString> fBase; // fBase.push_back("WMu1"); // fBase.push_back("WMu2"); // fBase.push_back("QCD1"); // fBase.push_back("QCD2"); // // for(size_t i=0; i<v_wplusjets_pt.size(); ++i){ // v_wplusjets_pt [i]->SetLineColor(colours[i]); // v_wplusjets_pt_unknown [i]->SetLineColor(colours[i]); // v_wplusjets_pt_quark [i]->SetLineColor(colours[1]); // v_wplusjets_pt_bquark [i]->SetLineColor(colours[i]); // v_wplusjets_pt_gluon [i]->SetLineColor(colours[2]); // v_wplusjets_pt_allquark[i]->SetLineColor(colours[1]); // // v_wplusjets_pt [i]->SetLineWidth(3); // v_wplusjets_pt_unknown [i]->SetLineWidth(3); // v_wplusjets_pt_quark [i]->SetLineWidth(3); // v_wplusjets_pt_bquark [i]->SetLineWidth(3); // v_wplusjets_pt_gluon [i]->SetLineWidth(3); // v_wplusjets_pt_allquark[i]->SetLineWidth(3); // // // v_wplusjets_pt_gluon[i]->Add(v_wplusjets_pt_unknown[i],1.); // // TH1F* numQ = v_wplusjets_pt_allquark[i]->Clone(TString(v_wplusjets_pt_allquark[i]->GetName())+"numQ"); // TH1F* numG = v_wplusjets_pt_gluon[i]->Clone(TString(v_wplusjets_pt_gluon[i]->GetName())+"numG"); // TH1F* den = v_wplusjets_pt_allquark[i]->Clone(TString(v_wplusjets_pt_allquark[i]->GetName())+"den"); // // numQ->GetYaxis()->SetTitle("Jet content"); // numG->GetYaxis()->SetTitle("Jet content"); // // // cout << "Fractions for " << fBase[i] << ": quark " << v_wplusjets_pt_allquark[i]->Integral() / (v_wplusjets_pt_allquark[i]->Integral() + v_wplusjets_pt_gluon[i]->Integral() ) << ", gluon " << v_wplusjets_pt_gluon[i]->Integral() / (v_wplusjets_pt_allquark[i]->Integral() + v_wplusjets_pt_gluon[i]->Integral() ) << endl; // // numQ->Sumw2(); // numG->Sumw2(); // den->Sumw2(); // // den->Add(v_wplusjets_pt_gluon[i],1.); // // numQ->Divide(den); // numG->Divide(den); // cout << "I divided" << endl; // // v_qf.push_back(numQ); // v_gf.push_back(numG); // // // // TLegend* leg_ = new TLegend(0.15,0.65,0.62,0.80,NULL,"brNDC"); // TLegend* leg_ = new TLegend(0.40,0.50,0.80,0.70,NULL,"brNDC"); // leg_->SetTextFont(42); // leg_->SetBorderSize(0); // leg_->SetLineColor(1); // leg_->SetLineStyle(1); // leg_->SetLineWidth(1); // leg_->SetFillColor(0); // leg_->SetFillStyle(0); // leg_->AddEntry(numQ,/*labels[i]+*/"Quark jets fraction","lpf"); // leg_->AddEntry(numG,/*labels[i]+*/"Gluon jets fraction","lpf"); // // TPaveText *pt1 = new TPaveText(0.17,0.45,0.5,0.5, "brNDC"); // pt1->SetBorderSize(1); // pt1->SetFillColor(19); // pt1->SetFillStyle(0); // pt1->SetLineColor(0); // pt1->SetTextFont(132); // pt1->SetTextSize(0.033); // // TText *text = pt1->AddText("#splitline{m_{H^{#pm}} = 120 GeV/c^{2},}{BR(t #rightarrow H^{+}b) = 0.05}"); // TCanvas* myCanva = new TCanvas(labels[i],labels[i],2000,2000); // myCanva->cd(); // // if(i<2){ // numQ->Draw("hist"); // numG->Draw("histsame"); // } // else{ // numG->Draw("hist"); // numQ->Draw("histsame"); // } // leg_->Draw(); // // pt1->Draw("same"); // myCanva->SaveAs(fBase[i]+".pdf"); // myCanva->SaveAs(fBase[i]+".png"); // myCanva->Clear(); // delete myCanva; // delete pt1; // delete numQ; // delete numG; // delete den; // delete leg_; // } }
//------------------------------------------------------------------------------- void setIStyle() { TStyle* IStyle = new TStyle("IStyle","Ignazio Style"); gROOT->Reset(); gROOT->SetStyle("Plain"); // For the Global title: IStyle->SetOptTitle(1); // In general I want global title! IStyle->SetTitleFont(42); IStyle->SetTitleColor(1); IStyle->SetTitleTextColor(1); IStyle->SetTitleFillColor(10); IStyle->SetTitleFontSize(0.05); IStyle->SetCanvasBorderMode(0); IStyle->SetCanvasColor(kWhite); IStyle->SetCanvasDefH(400); //Height of canvas IStyle->SetCanvasDefW(600); //Width of canvas IStyle->SetPadBorderMode(0); IStyle->SetPadColor(kWhite); /* // Pad Margins: //----------------------------- IStyle->SetPadTopMargin(0.05); IStyle->SetPadBottomMargin(0.13); IStyle->SetPadLeftMargin(0.16); IStyle->SetPadRightMargin(0.02); */ // For the frame: //----------------------------- IStyle->SetFrameBorderMode(0); IStyle->SetFrameBorderSize(1); IStyle->SetFrameFillColor(kWhite); IStyle->SetFrameFillStyle(0); IStyle->SetFrameLineColor(1); IStyle->SetFrameLineStyle(1); IStyle->SetFrameLineWidth(1); // For the histo: //----------------------------- IStyle->SetHistLineWidth(1); IStyle->SetHistLineColor(kBlack); IStyle->SetEndErrorSize(2); IStyle->SetErrorX(0.); // IStyle->SetMarkerStyle(kFullDotSmall); // IStyle->SetMarkerStyle(kFullDotMedium); IStyle->SetMarkerStyle(kFullDotLarge); // IStyle->SetMarkerStyle(kFullCircle); // For the statistics box: //----------------------------- /* gStyle->SetOptStat("option-string"); Where option string can contain:- n ; name of histogram is printed e ; number of entries printed m ; mean value printed r ; rms printed u ; number of underflows printed o ; number of overflows printed i ; integral of bins printed Example: gStyle->SetOptStat("ne"); print only name of histogram and number of entries. To remove it altogther:- gStyle->SetOptStat(""); */ // IStyle->SetOptStat("emr"); /* The parameter mode can be = ksiourmen (default = 000001111) k = 1; kurtosis printed k = 2; kurtosis and kurtosis error printed s = 1; skewness printed s = 2; skewness and skewness error printed i = 1; integral of bins printed o = 1; number of overflows printed u = 1; number of underflows printed r = 1; rms printed r = 2; rms and rms error printed m = 1; mean value printed m = 2; mean and mean error values printed e = 1; number of entries printed n = 1; name of histogram is printed Example: gStyle->SetOptStat(11); print only name of histogram and number of entries. gStyle->SetOptStat(1101); displays the name of histogram, mean value and RMS. WARNING: never call SetOptStat(000111); but SetOptStat(1111), 0001111 will be taken as an octal number !! WARNING: SetOptStat(1) is taken as SetOptStat(1111) (for back compatibility with older versions. If you want to print only the name of the histogram call SetOptStat(1000000001). NOTE that in case of 2-D histograms, when selecting just underflow (10000) or overflow (100000), the stats box will show all combinations of underflow/overflows and not just one single number! */ // IStyle->SetOptStat(1110); IStyle->SetOptStat(0); IStyle->SetStatColor(kWhite); IStyle->SetStatFont(42); // For fitting: //----------------------------- IStyle->SetFuncWidth(1); // for the fit function IStyle->SetFuncColor(kBlack); // for the fit function IStyle->SetOptFit(111); // IStyle->SetOptFit(0) to get rid of IStyle->SetStatW(0.18); // set width of stat box IStyle->SetStatFontSize(0.04); // set the font size for stat box /* // Change for log plots: IStyle->SetOptLogx(0); IStyle->SetOptLogy(0); IStyle->SetOptLogz(0) */ // IStyle->SetPalette(1); palette(); IStyle->cd(); // this becomes now the current style gStyle }