/** * Create ratios to other data * * @param ib Bin number * @param res Result * @param alice ALICE result if any * @param cms CMS result if any * @param all Stack to add ratio to */ void Ratio2Stack(Int_t ib, TH1* res, TGraph* alice, TGraph* cms, THStack* all) { if (!all || !res || !(alice || cms)) return; Int_t off = 5*ib; TGraph* gs[] = { (alice ? alice : cms), (alice ? cms : 0), 0 }; TGraph** pg = gs; while (*pg) { TGraph* g = *pg; const char* n = (g == alice ? "ALICE" : "CMS"); TH1* r = static_cast<TH1*>(res->Clone(Form("ratio%s", n))); TString tit(r->GetTitle()); tit.ReplaceAll("Corrected", Form("Ratio to %s", n)); r->SetTitle(tit); r->SetMarkerColor(g->GetMarkerColor()); r->SetLineColor(g->GetLineColor()); TObject* tst = r->FindObject("legend"); if (tst) r->GetListOfFunctions()->Remove(tst); for (Int_t i = 1; i <= r->GetNbinsX(); i++) { Double_t c = r->GetBinContent(i); Double_t e = r->GetBinError(i); Double_t o = g->Eval(r->GetBinCenter(i)); if (o < 1e-12) { r->SetBinContent(i, 0); r->SetBinError(i, 0); continue; } r->SetBinContent(i, (c - o) / o + off); r->SetBinError(i, e / o); } all->Add(r); pg++; } TLegend* leg = StackLegend(all); if (!leg) return; TString txt = res->GetTitle(); txt.ReplaceAll("Corrected P(#it{N}_{ch}) in ", ""); if (ib == 0) txt.Append(" "); // (#times1)"); // else if (ib == 1) txt.Append(" (#times10)"); else txt.Append(Form(" (+%d)", off)); TObject* dummy = 0; TLegendEntry* e = leg->AddEntry(dummy, txt, "p"); e->SetMarkerStyle(res->GetMarkerStyle()); e->SetMarkerSize(res->GetMarkerSize()); e->SetMarkerColor(kBlack); e->SetFillColor(0); e->SetFillStyle(0); e->SetLineColor(kBlack); }
void integrated_lumi(Bool_t goodOnly=0){ nGoodRuns+= nGoodRuns15f; nGoodRuns+= nGoodRuns15h; nGoodRuns+= nGoodRuns15i; nGoodRuns+= nGoodRuns15j; nGoodRuns+= nGoodRuns15l; Int_t j=0; for (Int_t i=0;i<nGoodRuns15f;i++) goodRuns[j++]=goodRuns15f[i]; for (Int_t i=0;i<nGoodRuns15h;i++) goodRuns[j++]=goodRuns15h[i]; // for (Int_t i=0;i<nGoodRuns15i_badIR;i++) goodRuns[j++]=goodRuns15i_badIR[i]; // for (Int_t i=0;i<nGoodRuns15i_badSPD;i++) goodRuns[j++]=goodRuns15i_badSPD[i]; for (Int_t i=0;i<nGoodRuns15i;i++) goodRuns[j++]=goodRuns15i[i]; for (Int_t i=0;i<nGoodRuns15j;i++) goodRuns[j++]=goodRuns15j[i]; for (Int_t i=0;i<nGoodRuns15l;i++) goodRuns[j++]=goodRuns15l[i]; gStyle->SetPadTopMargin(0.01); gStyle->SetPadRightMargin(0.01); gStyle->SetPadBottomMargin(0.06); gStyle->SetPadLeftMargin(0.13); TGaxis::SetMaxDigits(3); gStyle->SetOptTitle(1); gStyle->SetTitleOffset(1.6,"Y"); gStyle->SetOptStat(0); TLatex* latex = new TLatex(); latex->SetTextSize(0.05); latex->SetTextFont(42); latex->SetTextAlign(11); latex->SetNDC(); t = new TChain("trending"); t->AddFile("trending.root"); classes = new TObjArray(); partition = new TObjString(); lhcState = new TObjString(); lhcPeriod = new TObjString(); activeDetectors = new TObjString(); t->SetBranchAddress("run",&run); t->SetBranchAddress("fill",&fill); t->SetBranchAddress("classes",&classes); t->SetBranchAddress("class_l2a",&class_l2a); t->SetBranchAddress("class_lumi",&class_lumi); t->SetBranchAddress("timeStart",&timeStart); t->SetBranchAddress("timeEnd",&timeEnd); t->SetBranchAddress("partition",&partition); t->SetBranchAddress("lhcState",&lhcState); t->SetBranchAddress("lhcPeriod",&lhcPeriod); t->SetBranchAddress("activeDetectors",&activeDetectors); TGraph* gINT = GetStat("CINT7-B-NOPF-CENT",1,goodOnly); TGraph* gMUL = GetStat("CMUL7-B-NOPF-MUFAST",1,goodOnly); TGraph* gV0M = GetStat("CVHMV0M-B-NOPF-CENTNOTRD",1,goodOnly); TGraph* gSH2 = GetStat("CVHMSH2-B-NOPF-CENTNOTRD",1,goodOnly); TGraph* gStatINT = GetStat("CINT7-B-NOPF-CENT",0,goodOnly); TGraph* gStatV0M = GetStat("CVHMV0M-B-NOPF-CENTNOTRD",0,goodOnly); TGraph* gStatSH2 = GetStat("CVHMSH2-B-NOPF-CENTNOTRD",0,goodOnly); TGraph* gStatEMC = GetStat("CEMC7-B-NOPF-CENTNOTRD",0,goodOnly,"PHYSICS_2"); TGraph* gStatDMC = GetStat("CDMC7-B-NOPF-CENTNOTRD",0,goodOnly,"PHYSICS_2"); gMUL->SetLineColor(kBlack); gINT->SetLineColor(kBlue); gV0M->SetLineColor(kMagenta); gSH2->SetLineColor(kRed); gStatV0M->SetLineColor(kMagenta); gStatSH2->SetLineColor(kRed); gStatEMC->SetLineColor(kGray); gStatDMC->SetLineColor(kGreen-2); TCanvas* c1 = new TCanvas("c1","",800,700); Double_t xminLumi = gMUL->GetXaxis()->GetXmin(); Double_t xmaxLumi = gMUL->GetXaxis()->GetXmax(); Double_t ymaxLumi = gMUL->GetYaxis()->GetXmax()*1.1; TH1F* f1 = gPad->DrawFrame(xminLumi,0,xmaxLumi,ymaxLumi); SetFrame(f1); f1->GetYaxis()->SetTitle("Integrated luminosity, pb^{-1}"); f1->GetXaxis()->SetTimeDisplay(1); f1->GetXaxis()->SetTimeFormat("%d %b"); Double_t y = 0.94; latex->DrawLatex(0.18,0.94,"ALICE Performance, pp #sqrt{s} = 13 TeV"); latex->SetTextColor(gINT->GetLineColor()); latex->DrawLatex(0.18,y-=0.07,Form("MB triggers: L = %.3f pb^{-1}",gINT->GetY()[gINT->GetN()-1])); latex->SetTextColor(gV0M->GetLineColor()); latex->DrawLatex(0.18,y-=0.07,Form("V0 HM triggers: L = %.3f pb^{-1}",gV0M->GetY()[gV0M->GetN()-1])); latex->SetTextColor(gSH2->GetLineColor()); latex->DrawLatex(0.18,y-=0.07,Form("SPD HM triggers: L = %.3f pb^{-1}",gSH2->GetY()[gSH2->GetN()-1])); latex->SetTextColor(gMUL->GetLineColor()); latex->DrawLatex(0.18,y-=0.07,Form("Dimuon triggers: L = %.3f pb^{-1}",gMUL->GetY()[gMUL->GetN()-1])); gMUL->Draw(); gINT->Draw(); gV0M->Draw(); gSH2->Draw(); gPad->Print("lumi_dimuon_triggers.png"); TCanvas* c2 = new TCanvas("c2","",800,700); Double_t xminEvents = gStatINT->GetXaxis()->GetXmin(); Double_t xmaxEvents = gStatINT->GetXaxis()->GetXmax(); Double_t ymaxEvents = gStatINT->GetYaxis()->GetXmax()*1.1; TH1F* f2 = gPad->DrawFrame(xminEvents,0,xmaxEvents,ymaxEvents); SetFrame(f2); f2->GetYaxis()->SetTitle("Recorded triggers, 10^{6}"); f2->GetXaxis()->SetTimeDisplay(1); f2->GetXaxis()->SetTimeFormat("%d %b"); gStatINT->Draw(); gStatV0M->Draw(); gStatSH2->Draw(); // gStatDMC->Draw(); // gStatEMC->Draw(); latex->SetTextColor(1); latex->DrawLatex(0.18,0.94,"ALICE Performance, pp #sqrt{s} = 13 TeV"); y = 0.94; latex->SetTextColor(gStatINT->GetLineColor()); latex->DrawLatex(0.18,y-=0.07,Form("MB triggers: %.0fM",gStatINT->GetY()[gStatINT->GetN()-1])); latex->SetTextColor(gStatV0M->GetLineColor()); latex->DrawLatex(0.18,y-=0.07,Form("V0 HM triggers: %.0fM",gStatV0M->GetY()[gStatV0M->GetN()-1])); latex->SetTextColor(gStatSH2->GetLineColor()); latex->DrawLatex(0.18,y-=0.07,Form("SPD HM triggers: %.0fM",gStatSH2->GetY()[gStatSH2->GetN()-1])); // latex->SetTextColor(gStatEMC->GetLineColor()); // latex->DrawLatex(0.18,y-=0.07,Form("EMCAL triggers: %.0fM",gStatEMC->GetY()[gStatDMC->GetN()-1])); // latex->SetTextColor(gStatDMC->GetLineColor()); // latex->DrawLatex(0.18,y-=0.07,Form("DCAL triggers: %.0fM",gStatDMC->GetY()[gStatDMC->GetN()-1])); gPad->Print("stat_mb_triggers.png"); }
void DMplot() { TCanvas *canv = new TCanvas("canv", "limits canvas", 800., 680.); gStyle->SetCanvasDefH(600); //Height of canvas gStyle->SetCanvasDefW(640); //Width of canvas gStyle->SetCanvasDefX(0); //POsition on screen gStyle->SetCanvasDefY(0); gStyle->SetPadLeftMargin(0.14);//0.16); gStyle->SetPadRightMargin(0.165);//0.02); gStyle->SetPadTopMargin(0.085);//0.02); gStyle->SetPadBottomMargin(0.12);//0.02); // For g axis titles: gStyle->SetTitleColor(1, "XYZ"); gStyle->SetTitleFont(42, "XYZ"); gStyle->SetTitleSize(0.045, "Z"); gStyle->SetTitleSize(0.055, "XY"); gStyle->SetTitleXOffset(1.0);//0.9); gStyle->SetTitleYOffset(1.15); // => 1.15 if exponents // For g axis labels: gStyle->SetLabelColor(1, "XYZ"); gStyle->SetLabelFont(42, "XYZ"); gStyle->SetLabelOffset(0.007, "XYZ"); gStyle->SetLabelSize(0.04, "XYZ"); // Legends gStyle->SetLegendBorderSize(0); gStyle->SetLegendFillColor(kWhite); gStyle->SetLegendFont(42); TPad* t1d = new TPad(); t1d = new TPad("t1d","t1d", 0.0, 0.0, 1.0, 1.0); t1d->Draw(); t1d->SetTicky(); t1d->SetTickx(); t1d->SetRightMargin(0.03); t1d->cd(); //t1d->SetGridx(1); //t1d->SetGridy(1); t1d->SetLogy(); t1d->SetLogx(); //double const fn = 0.629;//0.326; TGraph *h_scalar_min = MakeGraph(0,0.260); TGraph *h_scalar_lat = MakeGraph(0,0.326); TGraph *h_scalar_max = MakeGraph(0,0.629); TGraph *h_fermion_min = MakeGraph(1,0.260); TGraph *h_fermion_lat = MakeGraph(1,0.326); TGraph *h_fermion_max = MakeGraph(1,0.629); ////////////////////////////////////////////////// // Get LUX bound //TGraph *z1 = new TGraph("LUX_90CL.dat","%lg %lg"); // TFile *fi_LUX2015 = TFile::Open("LUX_latest_2015.root"); TGraph *z12015 =(TGraph*) fi_LUX2015->Get("LUX_2015"); //TFile *fi_LUX2016 = TFile::Open("LUX_latest_2016.root"); //TGraph *z12016 =(TGraph*) fi_LUX2016->Get("LUX_2016"); TFile *fi_LUX2016 = TFile::Open("LUX_2013_2014_2015_combined.root"); TGraph *z12016 =(TGraph*) fi_LUX2016->Get("LUX_2013_2014_2015_combined"); z12015->SetLineWidth(3); z12015->SetLineColor(kGreen+2); // z12015->SetLineStyle(2); z12016->SetLineWidth(3); //z12016->SetLineStyle(2); z12016->SetLineColor(kGreen+2); // TLegend *leg2 = new TLegend(0.65, 0.15, 0.93, 0.42); TLegend *leg2 = new TLegend(0.70, 0.15, 0.97, 0.42); leg2->SetFillColor(0); leg2->SetBorderSize(0); //leg2->AddEntry(z1,"LUX(90\%CL)","L"); ////////////////////////////////////////////////// // CDMS/ CRESST TOO TFile *CDMS_2016f = TFile::Open("CDMS_2016.root"); TGraph *SCDMS = (TGraph*)CDMS_2016f->Get("CDMS_2016"); TFile *CRESST2_2016f = TFile::Open("CRESST_2.root"); TGraph *CRESST2 = (TGraph*)CRESST2_2016f->Get("CRESST_2_2016"); TFile *PANDAX_2016f = TFile::Open("PANDAX.root"); TGraph *PANDAX = (TGraph*)PANDAX_2016f->Get("PANDAX"); SCDMS->SetLineColor(kAzure+7); SCDMS->SetLineStyle(9); SCDMS->SetLineWidth(3); CRESST2->SetLineColor(kMagenta+2); CRESST2->SetLineStyle(7); CRESST2->SetLineWidth(3); PANDAX->SetLineColor(kMagenta+2); PANDAX->SetLineStyle(4); PANDAX->SetLineWidth(3); // // h_scalar_min->SetTitle(""); h_scalar_min->SetMinimum(2.0e-47); h_scalar_min->SetMaximum(1.0e-39); //h_scalar_min->SetMinimum(0.6e-46); //h_scalar_min->SetMaximum(1.0e-42); h_scalar_min->SetLineColor(4); h_scalar_min->SetLineStyle(2); h_scalar_min->SetLineWidth(3); h_scalar_min->GetXaxis()->SetTitleOffset(1.03); h_scalar_min->GetXaxis()->SetTitle("DM mass [GeV]"); h_scalar_min->GetYaxis()->SetTitle("DM-nucleon cross section [cm^{2}]"); h_scalar_lat->SetLineColor(4); h_scalar_lat->SetLineStyle(1); h_scalar_lat->SetLineWidth(3); h_scalar_max->SetLineColor(4); h_scalar_max->SetLineStyle(2); h_scalar_max->SetLineWidth(3); h_fermion_min->SetLineColor(kRed); h_fermion_min->SetLineStyle(2); h_fermion_min->SetLineWidth(3); h_fermion_lat->SetLineColor(kRed); h_fermion_lat->SetLineStyle(1); h_fermion_lat->SetLineWidth(3); h_fermion_max->SetLineColor(kRed); h_fermion_max->SetLineStyle(2); h_fermion_max->SetLineWidth(3); //h_scalar_lat->SetFillStyle(3005); //h_scalar_lat->SetLineWidth(-402); h_scalar_min->Draw("AL"); h_scalar_lat->Draw("L"); h_scalar_max->Draw("L"); h_fermion_min->Draw("L"); h_fermion_lat->Draw("L"); h_fermion_max->Draw("L"); z12016->Draw("L"); //z12015->Draw("L"); //CRESST2->Draw("C"); SCDMS->Draw("C"); PANDAX->Draw("C"); //leg2->Draw(); TLatex *lat = new TLatex(); lat->SetTextSize(0.025); lat->SetTextFont(42); lat->SetTextColor(kGreen+2); lat->SetTextAngle(15); //lat->DrawLatex(130,z1->Eval(130)*1.5,"LUX #it{Phys. Rev. Lett.} #bf{116} (2016)"); //lat->DrawLatex(130,z12015->Eval(130)*1.5,"LUX (2015)"); lat->DrawLatex(130,z12016->Eval(130)*0.5,"LUX (2013+2014-16)"); lat->SetTextColor(SCDMS->GetLineColor()); lat->SetTextAngle(344); //lat->SetFillColor(kWhite); lat->DrawLatex(5,SCDMS->Eval(5)*1.5,"CDMSlite (2015)"); lat->SetTextColor(kBlue); lat->SetTextAngle(330); lat->DrawLatex(13,h_scalar_lat->Eval(13)*1.5,"Scalar DM"); lat->SetTextColor(kRed); lat->SetTextAngle(4); lat->DrawLatex(5,h_fermion_lat->Eval(5)*1.5,"Fermion DM"); lat->SetTextColor(kMagenta+2); lat->SetTextAngle(15); lat->DrawLatex(130,PANDAX->Eval(130)*1.25,"PandaX-II (2016)"); TLatex * tex = new TLatex(); tex->SetNDC(); tex->SetTextFont(42); tex->SetLineWidth(2); tex->SetTextSize(0.04); tex->SetTextAlign(31); tex->DrawLatex(0.93,0.78,"4.9 fb^{-1} (7 TeV) + 19.7 fb^{-1} (8 TeV)"); tex->DrawLatex(0.93,0.74,"+ 2.3 fb^{-1} (13 TeV)"); //tex->SetTextAlign(11); tex->SetTextFont(42); tex->SetTextSize(0.06); TLegend *legBOX; if (isPrelim) { legBOX = new TLegend(0.16,0.83,0.38,0.89); legBOX->SetFillColor(kWhite); legBOX->SetLineWidth(0); legBOX->Draw(); tex->DrawLatex(0.17, 0.84, "#bf{CMS} #it{Preliminary}"); } else { legBOX = new TLegend(0.16,0.83,0.28,0.89); legBOX->SetFillColor(kWhite); legBOX->SetLineWidth(0); //legBOX->Draw(); tex->DrawLatex(0.93, 0.84, "#bf{CMS}"); } tex->SetTextSize(0.045); tex->DrawLatex(0.93,0.68,Form("B(H #rightarrow inv.) < %.2f",BRinv)); tex->DrawLatex(0.93,0.5,"90% CL limits"); canv->SetTicky(1); canv->SetTickx(1); canv->SaveAs("limitsDM.pdf"); }