#include "thdm.h" #include #include #include #include #include #include #include #include using namespace std; void xsratiovsm(double cba, int type, int tb=10, std::string mode = "VBF") { thdm t; std::string ref("ggF"); if (mode == "VH") ref += " + VBF + VH + bbH"; else if (mode == "VBF") ref += " + VBF"; TGraph2D* width = new TGraph2D(100); width->SetTitle("; m_{H};tan#beta;#sigma * BR"); width->SetDirectory(0); int ipt(0); double epsilon(0.00001); while (t.next()) { //std::cout << t.mH << std::endl; if (t.type == type && // mH == mA == mCh fabs(t.mA-t.mH) < epsilon && fabs(t.mH-t.mCh) < epsilon && // mass t.mH < 1000 + epsilon && // cba/tanb t.cosba() > cba-epsilon && t.cosba() < cba+epsilon && t.tanb < tb+epsilon && t.tanb > 0.5-epsilon // theory constraints status // && t.status == 0 ){ float xs(0); float xsref = t.xsec_H_gg; if (mode == "VBF") xs = t.xsec_H_VBF; else if (mode == "VH") { if (t.mH > 500 + epsilon) continue; xs = t.xsec_H_ZH + t.xsec_H_WH; xsref += t.xsec_H_VBF; xsref += t.xsec_H_bb; } width->SetPoint(ipt++, t.mH,t.tanb,(xs / (xsref + xs)) * 100); } } std::cout << "Plotting ..." << std::endl; t.label->AddText(Form("#sigma_{%s}/#sigma_{%s} [%%] #bf{#it{ATLAS}} Internal, SusHi+2HDMC, Type %d, cos(#beta-#alpha)=%.1f", mode.c_str(), ref.c_str(), type,cba)); TString fn = Form("xsectratio_%s_mH_vs_tanb_type%d_cba_%.1f_tanb_%d", mode.c_str(), type, cba, tb); TCanvas* canvas = new TCanvas("","",800,600); gStyle->SetPaintTextFormat(".1f"); //gStyle->SetPalette(4,0); width->SetMarkerSize(0.7); width->Draw("COLZ"); width->Draw("TEXT SAME"); //gPad->SetLogy(true); gPad->RedrawAxis(); t.label->Draw(); canvas->SaveAs("plots/"+fn+".eps"); canvas->Print("plots/"+fn+".png"); delete canvas; } void xsratio(int m, int type, int tb=10, std::string mode = "VBF") { thdm t; std::string ref("ggF"); if (mode == "VH") ref += " + VBF + VH + bbH"; else if (mode == "VBF") ref += " + VBF"; TGraph2D* width = new TGraph2D(100); width->SetTitle("; m_{H};tan#beta;#sigma * BR"); width->SetDirectory(0); int ipt(0); double epsilon(0.00001); while (t.next()) { //std::cout << t.mH << std::endl; if (t.type == type && // mH == mA == mCh fabs(t.mA-t.mH) < epsilon && fabs(t.mH-t.mCh) < epsilon && // mass fabs(t.mH-m) < epsilon && // cba/tanb fabs(t.cosba()) < 0.99+epsilon && t.tanb < tb+epsilon && t.tanb > 0.5-epsilon // theory constraints status // && t.status == 0 ){ float xs(0); float xsref = t.xsec_H_gg; if (mode == "VBF") xs = t.xsec_H_VBF; else if (mode == "VH") { xs = t.xsec_H_ZH + t.xsec_H_WH; xsref += t.xsec_H_VBF; xsref += t.xsec_H_bb; } width->SetPoint(ipt++, t.cosba(),t.tanb,(xs / (xsref + xs)) * 100); } } std::cout << "Plotting ..." << std::endl; t.label->AddText(Form("#sigma_{%s}/#sigma_{%s} [%%] #bf{#it{ATLAS}} Internal, SusHi+2HDMC, Type %d, m_{H}=%d", mode.c_str(), ref.c_str(), type, m)); TString fn = Form("xsectratio_%s_cosba_vs_tanb_type%d_%d_tanb_%d", mode.c_str(), type, m, tb); TCanvas* canvas = new TCanvas("","",800,600); gStyle->SetPaintTextFormat(".1f"); //gStyle->SetPalette(4,0); width->SetMarkerSize(0.7); width->Draw("COLZ"); width->Draw("TEXT SAME"); //gPad->SetLogy(true); gPad->RedrawAxis(); t.label->Draw(); canvas->SaveAs("plots/"+fn+".eps"); canvas->Print("plots/"+fn+".png"); delete canvas; } int main() { std::string mode("VH"); xsratiovsm(0.1, 1, 10, mode); xsratiovsm(-0.1, 1, 10, mode); xsratiovsm(0.1, 2, 10, mode); xsratiovsm(-0.1, 2, 10, mode); xsratio(200, 1, 10, mode); xsratio(300, 1, 10, mode); xsratio(200, 2, 10, mode); xsratio(300, 2, 10, mode); }