void SUSY_bRPV_m0_vs_m12_all_withBand_cls( TString fname0="", TString fname1="", TString fname2="", TString gridname="", const char* prefix="test", const float& lumi = 20.3, bool showsig = true, int discexcl = 1, int showtevatron = 0, int showcms = 0, int showOneSigmaExpBand = 0, bool showSR = false, bool useShape = false, int channel = -1, TString hname0 = "sigp1clsf", TString hname1 = "sigp1expclsf", TString hname3 = "sigclsu1s", TString hname5 = "sigclsd1s", TString hname6 = "sigp1ref", TString fnameMass= "contourmacros/mSugraGridtanbeta10_gluinoSquarkMasses.root") { // set style and remove existing canvas' CombinationGlob::Initialize(); cout << "--- Plotting m0 versus m12 " << endl; // --- prepare // open reference files, and retrieve histogram cout << "--- Reading root base file: " << fname0 << endl; TFile* f0 = TFile::Open( fname0, "READ" ); if (!f0) { cout << "*** Error: could not retrieve histogram: " << hname0 << " in file: " << f0->GetName() << " ==> abort macro execution" << endl; return; } TFile *f1; TFile *f2; if(fname1 != "") f1 = TFile::Open( fname1, "READ" ); if(!f1) cout << "Warning: could not open " << fname1 << endl; if(fname2 != "") f2 = TFile::Open( fname2, "READ" ); if(!f2) cout << "Warning: could not open " << fname2 << endl; TH2F* histecls = (TH2F*)f0->Get( "sigp1expclsf" ); TH2F* histocls = (TH2F*)f0->Get( "sigp1clsf" ); if (histecls!=0) histecls->SetDirectory(0); if (histocls!=0) histocls->SetDirectory(0); TH2F* histe_esigxsp1s; if (fname1 != "" && f1) { histe_esigxsp1s = (TH2F*)f1->Get( hname0 ); cout << "Read up histogram " << histe_esigxsp1s << endl; } TH2F* histe_esigxsm1s; if (fname2 != "" && f2) { histe_esigxsm1s = (TH2F*)f2->Get( hname0 ); cout << "Read down histogram " << histe_esigxsm1s << endl; } if (histe_esigxsp1s!=0) histe_esigxsp1s->SetDirectory(0); if (histe_esigxsm1s!=0) histe_esigxsm1s->SetDirectory(0); TH2F* contour_esigxsp1s = ( histe_esigxsp1s!=0 ? FixAndSetBorders( *histe_esigxsp1s, "contour_esigxsp1s", "contour_esigxsp1s", 0 ) : 0); TH2F* contour_esigxsm1s = ( histe_esigxsm1s!=0 ? FixAndSetBorders( *histe_esigxsm1s, "contour_esigxsm1s", "contour_esigxsm1s", 0 ) : 0); // TFile* f3 = TFile::Open( fname3, "READ" ); TH2F* histe(0); TH2F* histe_u1s(0); TH2F* histe_d1s(0); // TFile* f4 = TFile::Open( fname4, "READ" ); bool extExpectation = 0; TH2F* hist0 = (TH2F*)f0->Get( hname0 ); TH2F* hist1 = (TH2F*)f0->Get( hname1 ); TH2F* hist3 = (TH2F*)f0->Get( hname3 ); TH2F* hist5 = (TH2F*)f0->Get( hname5 ); TH2F* hist6 = (TH2F*)f0->Get( hname6 ); if (hist0!=0) hist0->SetDirectory(0); if (hist1!=0) hist1->SetDirectory(0); if (hist3!=0) hist3->SetDirectory(0); if (hist5!=0) hist5->SetDirectory(0); if (hist6!=0) hist6->SetDirectory(0); f0->Close(); TH2F* histe_esigxsp1s; if (fname1!="" && f1) histe_esigxsp1s = (TH2F*)f1->Get( hname0 ); TH2F* histe_esigxsm1s; if (fname2!="" && f2) histe_esigxsm1s = (TH2F*)f2->Get( hname0 ); if (fname1!="" &&histe_esigxsp1s!=0) histe_esigxsp1s->SetDirectory(0); if (fname2!="" && histe_esigxsm1s!=0) histe_esigxsm1s->SetDirectory(0); TH2F* contour_esigxsp1s = ( histe_esigxsp1s!=0 ? FixAndSetBorders( *histe_esigxsp1s, "contour_esigxsp1s", "contour_esigxsp1s", 0 ) : 0); TH2F* contour_esigxsm1s = ( histe_esigxsm1s!=0 ? FixAndSetBorders( *histe_esigxsm1s, "contour_esigxsm1s", "contour_esigxsm1s", 0 ) : 0); TH2F* contour = ( hist1!=0 ? FixAndSetBorders( *hist1, "contour", "contour", 0 ) : 0); TH2F* contour_obs = ( hist0!=0 ? FixAndSetBorders( *hist0, "contour_obs", "contour_obs") : 0 ); TH2F* contour_ep1s = ( hist3!=0 ? FixAndSetBorders( *hist3, "contour", "contour", 0 ) : 0 ); TH2F* contour_em1s = ( hist5!=0 ? FixAndSetBorders( *hist5, "contour", "contour", 0 ) : 0 ); // For Band if (showOneSigmaExpBand){ TGraph* gr_contour_ep1s = ContourGraph( contour_ep1s )->Clone(); TGraph* gr_contour_em1s= ContourGraph( contour_em1s )->Clone(); } TH2F* contour_exp(0); if (histe!=0) { contour_exp = FixAndSetBorders( *histe, "contour_exp", "contour_exp", 0 ); } TH2F* contour_au1s(0); if (histe_u1s!=0) { contour_au1s = FixAndSetBorders( *histe_u1s, "contour", "contour", 0 ); } TH2F* contour_ad1s(0); if (histe_d1s!=0) { contour_ad1s = FixAndSetBorders( *histe_d1s, "contour", "contour", 0 ); } TH2F* contour_expcls(0); if (histecls!=0) { contour_expcls = FixAndSetBorders( *histecls, "contour_expcls", "contour_expcls", 0 ); } TH2F* contour_obscls(0); if (histocls!=0) { contour_obscls = FixAndSetBorders( *histocls, "contour_obscls", "contour_obscls", 0 ); } if (contour_obs==0) { cout << "contour is zero" << endl; return; } // set text style gStyle->SetPaintTextFormat(".2g"); if (hist1!=0) hist1->SetMarkerStyle(21); if (hist1!=0) hist1->SetMarkerSize(1.5); Float_t nsigmax(0) if (hist1!=0) nsigmax = hist1->GetMaximum(); // --- draw // create canvas TCanvas* c = new TCanvas( "c", "A scan of "+gridname, 0, 0, CombinationGlob::StandardCanvas[0], CombinationGlob::StandardCanvas[1] ); //c->SetGrayscale(); // create and draw the frame double plotrange=2250.; TH2F *frame = new TH2F("frame", "m_{gluino} vs. m_{lsp} - ATLAS work in progress", 100, 350.,plotrange, 100, 200., 900. ); // set common frame style CombinationGlob::SetFrameStyle2D( frame, 1.0 ); // the size (scale) is 1.0 frame->SetXTitle( "m_{0} [GeV]" ); frame->SetYTitle( "m_{1/2} [GeV]" ); frame->GetYaxis()->SetTitleOffset(1.35); //frame->SetTextFont( 42 ); frame->GetXaxis()->SetTitleFont( 42 ); frame->GetYaxis()->SetTitleFont( 42 ); frame->GetXaxis()->SetLabelFont( 42 ); frame->GetYaxis()->SetLabelFont( 42 ); frame->GetXaxis()->SetTitleSize( 0.04 ); frame->GetYaxis()->SetTitleSize( 0.04 ); frame->GetXaxis()->SetLabelSize( 0.04 ); frame->GetYaxis()->SetLabelSize( 0.04 ); frame->Draw(); const int nsig(3); //TH2F *chist[3]; // draw contours //!instead of printing sigma in 68% 95% 98% levels now printing +1 sigma deviations //for (Int_t nsigma=1; nsigma<=nsig; nsigma++) // DrawContourSameColor( contour, nsigma, "blue", kFALSE, (nsigma==1?inverse:0) ) ; TString basecolor="yellow"; Int_t nsigma=2; TLegend *leg = new TLegend(0.6,0.7,0.92,0.9); leg->SetTextSize( CombinationGlob::DescriptionTextSize ); leg->SetTextSize( 0.03 ); leg->SetTextFont( 42 ); leg->SetFillColor( 0 ); leg->SetFillStyle(1001); if (false && channel==1) { // electron cout << "removing islands in electron channel ..." << endl; // contour line is drawn for values at 1.64485 TAxis* ax = contour_obs->GetXaxis(); TAxis* ay = contour_obs->GetYaxis(); /* contour_em1s for (int xbin = 1; xbin <= contour_obs->GetNbinsX(); xbin++) { for (int ybin = 1; ybin <= contour_obs->GetNbinsY(); ybin++) { // island 2 if ( ax->GetBinCenter( xbin) > 420. && ax->GetBinCenter( xbin) < 480. && ay->GetBinCenter( ybin) > 140. && ay->GetBinCenter( ybin) < 160. ) { cout << "Found spot here: " << xbin << " (" << ax->GetBinCenter( xbin) << "), " << ybin << " (" << ay->GetBinCenter( ybin) << "), " << " value: " << contour->GetBinContent(xbin,ybin) << endl; cout << " HACK : Setting above point by hand to 1.50 (!)" << endl; contour->SetBinContent(xbin, ybin, 1.50); } } } */ } if (false && channel==2) { // combined cout << "removing islands in combined channel ..." << endl; } ///////////////////////////////////////////////////////// //// add 2011 results Int_t c_myYellow = TColor::GetColor("#ffe938"); Int_t c_myRed = TColor::GetColor("#aa000"); // turn off yellow band if (showOneSigmaExpBand) TGraph* grshadeExp= DrawExpectedBand( gr_contour_ep1s, gr_contour_em1s, CombinationGlob::c_DarkYellow , 1001 , 0)->Clone(); if (discexcl==1) { DrawContourLine95( leg, contour_obs, "Observed limit (#pm1 #sigma^{SUSY}_{theory})", c_myRed, 1, 4 ); // 95% CL_{S} if (contour_esigxsp1s) DrawContourLine95( leg, contour_esigxsp1s, "", c_myRed, 3, 2 ); // Observed limit #pm 1 #sigma^{SUSY}_{theory} if (contour_esigxsm1s) DrawContourLine95( leg, contour_esigxsm1s, "", c_myRed, 3, 2 ); // Observed limit #pm 1 #sigma^{SUSY}_{theory} if (!extExpectation) { // Compare the expected limits! if (contour_expcls!=0) { //DrawContourLine95( leg, contour_expcls, fname0, CombinationGlob::c_DarkGray, 6 ); DrawContourLine95( leg, contour_expcls, fname0, CombinationGlob::c_DarkBlueT3, 6 ); } if (showOneSigmaExpBand) { if (contour_ep1s!=0) { DrawContourLine95( leg, contour_ep1s, "", c_myYellow, 1 ); } if (contour_em1s!=0) { DrawContourLine95( leg, contour_em1s, "", c_myYellow, 1 ); } DummyLegendExpected(leg, "Expected limit (#pm1 #sigma_{exp})", c_myYellow, 1001, CombinationGlob::c_DarkBlueT3, 6, 2); } else { //if (contour!=0) DrawContourLine68( leg, contour, "exp. limit 68% CL", CombinationGlob::c_DarkBlueT3, 2 ); //if (contour!=0) DrawContourLine99( leg, contour, "exp. limit 99% CL", CombinationGlob::c_DarkBlueT3, 3 ); } } else { // expectation from asimov if (contour_exp!=0) DrawContourLine95( leg, contour_exp, "Median expected limit", CombinationGlob::c_DarkBlueT3, 6); if (showOneSigmaExpBand) { if (contour_au1s!=0) DrawContourLine95( leg, contour_au1s, "Expected limit #pm1#sigma", CombinationGlob::c_DarkBlueT3, 3 ); if (contour_ad1s!=0) DrawContourLine95( leg, contour_ad1s, "", CombinationGlob::c_DarkBlueT3, 3 ); } } } // plot tevatron limits TGraph* lep2slep(0); TGraph* lep2char(0); TGraph* d0o(0); TGraph* d0graph(0); TGraph* cdfgraph(0); TGraph* atlas(0); TGraph* atlasexp(0); if (showtevatron==1 && discexcl==1) { lep2char = ol1(); d0graph = d0tanb3muneg(); cdfgraph = cdftanb5(); //atlas = ATLAS10_1lepton(); //atlasexp = ATLAS10_1leptonexp(); } //:w(void) stautanb3(); TGraph* cmscurve(0); if (showcms==1) { //cmscurve = cmsoff(); cmscurve = cms(); } // legend Float_t textSizeOffset = +0.000; Double_t xmax = frame->GetXaxis()->GetXmax(); Double_t xmin = frame->GetXaxis()->GetXmin(); Double_t ymax = frame->GetYaxis()->GetXmax(); Double_t ymin = frame->GetYaxis()->GetXmin(); Double_t dx = xmax - xmin; Double_t dy = ymax - ymin; //TString t1a = "99%, 95%, 68% CL fit contour (excluded)" ; // TString t1a = "-1#sigma, central, +1#sigma fit contour (excluded)" ; TString t1b = "tan#beta = 3, A_{0}= 0, #mu < 0" ; Float_t nbkg(0); if( hist5!=0) nbkg = hist5->GetMaximum(); TString t1c = Form("MC: n_{bkg}= %.1f", nbkg) ; // TLatex* text1a = new TLatex( 70, 260, t1a ); TLatex* text1b = new TLatex( 150, ymax + dy*0.025, t1b ); TLatex* text1c = new TLatex( 70, 280, t1c ); // text1a->SetTextColor( 1 ); //CombinationGlob::c_VDarkGreen ); text1b->SetTextColor( 1 ); //CombinationGlob::c_VDarkGreen ); text1c->SetTextColor( 1 ); text1b->SetTextFont( 42 ); //CombinationGlob::c_VDarkGreen ); // text1a->SetTextAlign( 11 ); text1b->SetTextAlign( 11 ); text1c->SetTextAlign( 11 ); // text1a->SetTextSize( CombinationGlob::DescriptionTextSize + textSizeOffset ); text1b->SetTextSize( CombinationGlob::DescriptionTextSize ); text1c->SetTextSize( CombinationGlob::DescriptionTextSize ); TString plottitle="bRPV-MSUGRA: tan #beta = 30, A_{0}= -2m_{0}, #mu>0"; if(showSR){ std::cout << "--- printing best SRs" << std::endl; Show_SR(fname0, c, xmin, xmax, ymin, ymax, useShape, leg); } TLatex *Leg0 = new TLatex( xmin, ymax + dy*0.025,plottitle ); Leg0->SetTextAlign( 11 ); Leg0->SetTextFont( 42 ); Leg0->SetTextSize( CombinationGlob::DescriptionTextSize); Leg0->SetTextColor( 1 ); Leg0->AppendPad(); TLatex *Leg1 = new TLatex(); Leg1->SetNDC(); Leg1->SetTextAlign( 11 ); Leg1->SetTextFont( 42 ); Leg1->SetTextSize( CombinationGlob::DescriptionTextSize ); Leg1->SetTextColor( 1 ); Leg1->DrawLatex(0.15,0.78, Form("#int L dt = %1.1f fb^{-1}, #sqrt{s}=8 TeV",lumi)); // 0.32,0.87 if(useShape){ Leg1->DrawLatex(0.15,0.72, "0 leptons, 2-6 jets, 5-bin"); // 0.32,0.87 } else { Leg1->DrawLatex(0.15,0.72, "0 leptons, 2-6 jets"); // 0.32,0.87 } Leg1->AppendPad(); TLatex *Leg2 = new TLatex(); Leg2->SetNDC(); Leg2->SetTextAlign( 11 ); Leg2->SetTextSize( CombinationGlob::DescriptionTextSize ); Leg2->SetTextColor( 1 ); Leg2->SetTextFont(70); if (prefix!=0) { Leg2->DrawLatex(0.7,0.85,prefix); // 0.15,0.81 Leg2->AppendPad(); } TLatex *atlasLabel = new TLatex(); atlasLabel->SetNDC(); atlasLabel->SetTextFont( 42 ); atlasLabel->SetTextColor( 1 ); atlasLabel->SetTextSize( 0.05 ); atlasLabel->DrawLatex(0.15,0.87, "#bf{#it{ATLAS}} Internal"); // 0.15,0.87 atlasLabel->AppendPad(); //// draw number of signal events if (nsigmax>0 && showsig) { hist1->Draw("textsame"); } //else { // // draw grid for clarity // c->SetGrid(); //} //reddraw cahnnel label // c->SetGrid(); if (prefix!=0) { Leg2->AppendPad(); } // redraw axes frame->Draw( "sameaxis" ); // leg->Draw("same"); // update the canvas double xline=1000.; double yline=1000.; if (fname0.Contains("SS")) { xline=800.; yline=800.; } TLine *line=new TLine(200.,200.,xline,yline); line->SetLineStyle(3); //line->Draw(); c->Update(); gPad->RedrawAxis("same"); c->Update(); gPad->Update(); //////////////////////////////////////////////////////////////////////////////////////////// //gROOT->GetListOfSpecials()->Print(); TObjArray *contours = (TObjArray*)gROOT->GetListOfSpecials()->FindObject("contours"); if (contours!=0) { //contours->Print("v"); TList *lcontour1 = (TList*)contours->At(0); //lcontour1->Print(); if (lcontour1!=0) { TGraph *gc1 = (TGraph*)lcontour1->First(); if (gc1!=0) { //gc1->Print(); //if (gc1->GetN() < 10) return; //gc1->SetMarkerStyle(21); //gc1->Draw("alp"); } } } //////////////////////////////////////////////////////////////////////////////////////////// // create plots // store histograms to output file TObjArray* arr = fname0.Tokenize("/"); TObjString* objstring = (TObjString*)arr->At( arr->GetEntries()-1 ); TString outfile = TString(Form("%1.2finvfb_",lumi)) + TString(Form("wband%d_",showOneSigmaExpBand)) + TString(Form("showcms%d_",showcms)) + objstring->GetString().ReplaceAll(".root",""); delete arr; if(!showSR) outfile += TString("_noLabel"); TString prefixsave = TString(prefix).ReplaceAll(" ","_") + Form("%1.2finvfb_",lumi) + Form("wband%d_",showOneSigmaExpBand); CombinationGlob::imgconv( c, Form("plots/atlascls_m0m12_%s",outfile.Data()) ); }
void SUSY_m0_vs_m12_all_withBand_cls( TString fname0 = "mudat_list.root",// nominal TString fname1 = "", // Up TString fname2 = "", // Down TString fname3 = "", // external expection const char* prefix="test", const float& lumi = 20, bool showsig = true, int discexcl = 1, int showtevatron = 0, int showcms = 0, int showOneSigmaExpBand = 0, int showfixSigXSecBand = 0, int channel = -1, TString hname0 = "sigp1clsf", TString hname1 = "sigp1expclsf", TString hname3 = "sigclsu1s", TString hname5 = "sigclsd1s", TString hname6 = "sigp1ref", TString fnameMass= "../../../HistFitterUser/common/mSugraGridtanbeta10_gluinoSquarkMasses.root") { // set style and remove existing canvas' CombinationGlob::Initialize(); cout << "--- Plotting m0 versus m12 " << endl; // --- prepare // open reference files, and retrieve histogram cout << "--- Reading root base file: " << fname0 << endl; TFile* f0 = TFile::Open( fname0, "READ" ); if (!f0) { cout << "*** Error: could not retrieve histogram: " << hname0 << " in file: " << f0->GetName() << " ==> abort macro execution" << endl; return; } TFile* f1; TFile* f2; if(showfixSigXSecBand){ cout << "--- Reading root base file: " << fname1 << endl; f1 = TFile::Open( fname1, "READ" ); cout << "--- Reading root base file: " << fname2 << endl; f2 = TFile::Open( fname2, "READ" ); if(!f1 || !f2){ cout << "*** Error: could not open in files: " << f1->GetName() <<" or "<< f2->GetName() << " ==> abort macro execution" << endl; return; } } TH2F* histecls = (TH2F*)f0->Get( "sigp1expclsf" ); TH2F* histocls = (TH2F*)f0->Get( "sigp1clsf" ); if (histecls!=0) histecls->SetDirectory(0); if (histocls!=0) histocls->SetDirectory(0); // in case we use external expectation! TFile* f3 = TFile::Open( fname3, "READ" ); TH2F* histe(0); if (f3) { histe = (TH2F*)f3->Get( hname0 ); } TH2F* histe_u1s(0); if (f3) { histe_u1s = (TH2F*)f3->Get( hname3 ); } TH2F* histe_d1s(0); if (f3) { histe_d1s = (TH2F*)f3->Get( hname5 ); } if (f3) { if (histecls!=0) { delete histecls; histecls=0; } histecls = (TH2F*)f3->Get( "sigp1expcls" ); if (histecls!=0) histecls->SetDirectory(0); else { histecls = (TH2F*)f3->Get( "sigp1expclsf" ); if (histecls!=0) histecls->SetDirectory(0); } } bool extExpectation = (f3!=0) ; TH2F* hist0 = (TH2F*)f0->Get( hname0 ); TH2F* hist1 = (TH2F*)f0->Get( hname1 ); TH2F* hist3 = (TH2F*)f0->Get( hname3 ); TH2F* hist5 = (TH2F*)f0->Get( hname5 ); TH2F* hist6 = (TH2F*)f0->Get( hname6 ); if (hist0!=0) hist0->SetDirectory(0); if (hist1!=0) hist1->SetDirectory(0); if (hist3!=0) hist3->SetDirectory(0); if (hist5!=0) hist5->SetDirectory(0); if (hist6!=0) hist6->SetDirectory(0); f0->Close(); TH2F* histe_esigxsp1s = (TH2F*)f1->Get( hname0 ); TH2F* histe_esigxsm1s = (TH2F*)f2->Get( hname0 ); if (histe_esigxsp1s!=0) histe_esigxsp1s->SetDirectory(0); if (histe_esigxsm1s!=0) histe_esigxsm1s->SetDirectory(0); TH2F* contour_esigxsp1s = ( histe_esigxsp1s!=0 ? FixAndSetBorders( *histe_esigxsp1s, "contour_esigxsp1s", "contour_esigxsp1s", 0 ) : 0); TH2F* contour_esigxsm1s = ( histe_esigxsm1s!=0 ? FixAndSetBorders( *histe_esigxsm1s, "contour_esigxsm1s", "contour_esigxsm1s", 0 ) : 0); TH2F* contour = ( hist1!=0 ? FixAndSetBorders( *hist1, "contour", "contour", 0 ) : 0); TH2F* contour_obs = ( hist0!=0 ? FixAndSetBorders( *hist0, "contour_obs", "contour_obs") : 0 ); TH2F* contour_ep1s = ( hist3!=0 ? FixAndSetBorders( *hist3, "contour", "contour", 0 ) : 0 ); TH2F* contour_em1s = ( hist5!=0 ? FixAndSetBorders( *hist5, "contour", "contour", 0 ) : 0 ); // For Band TGraph* gr_contour_ep1s = ( contour_ep1s!=0 ? ContourGraph( contour_ep1s ) : 0 ); //ContourGraph( contour_ep1s )->Clone(); TGraph* gr_contour_em1s = ( contour_em1s!=0 ? ContourGraph( contour_em1s ) : 0 ); //ContourGraph( contour_em1s )->Clone(); TH2F* contour_exp(0); if (histe!=0) { contour_exp = FixAndSetBorders( *histe, "contour_exp", "contour_exp", 0 ); } TH2F* contour_au1s(0); if (histe_u1s!=0) { contour_au1s = FixAndSetBorders( *histe_u1s, "contour", "contour", 0 ); } TH2F* contour_ad1s(0); if (histe_d1s!=0) { contour_ad1s = FixAndSetBorders( *histe_d1s, "contour", "contour", 0 ); } TH2F* contour_expcls(0); if (histecls!=0) { contour_expcls = FixAndSetBorders( *histecls, "contour_expcls", "contour_expcls", 0 ); } TH2F* contour_obscls(0); if (histocls!=0) { contour_obscls = FixAndSetBorders( *histocls, "contour_obscls", "contour_obscls", 0 ); } if (contour_obs==0) { cout << "contour is zero" << endl; return; } // set text style gStyle->SetPaintTextFormat(".2g"); if (hist1!=0) hist1->SetMarkerStyle(21); if (hist1!=0) hist1->SetMarkerSize(1.5); Float_t nsigmax(0) if (hist1!=0) nsigmax = hist1->GetMaximum(); // --- draw // create canvas TCanvas* c = new TCanvas( "c", "A scan of m_{0} versus m_{12}", 0, 0, CombinationGlob::StandardCanvas[0], CombinationGlob::StandardCanvas[1] ); //c->SetGrayscale(); // create and draw the frame //TH2F *frame = new TH2F("frame", "m_{0} vs m_{12} - ATLAS work in progress", 100, 100., 1400., 100, 115., 500. ); TH2F *frame = new TH2F("frame", "m_{0} vs m_{12} - ATLAS work in progress", 100, 100., 3750., 100, 115., 700. ); //TH2F *frame = new TH2F("frame", "m_{0} vs m_{12} - ATLAS work in progress", 100, 100., 600., 100, 240., 500. ); // set common frame style CombinationGlob::SetFrameStyle2D( frame, 1.0 ); // the size (scale) is 1.0 frame->SetXTitle( "m_{0} [GeV]" ); frame->SetYTitle( "m_{1/2} [GeV]" ); frame->GetYaxis()->SetTitleOffset(1.35); //frame->SetTextFont( 42 ); frame->GetXaxis()->SetTitleFont( 42 ); frame->GetYaxis()->SetTitleFont( 42 ); frame->GetXaxis()->SetLabelFont( 42 ); frame->GetYaxis()->SetLabelFont( 42 ); frame->GetXaxis()->SetTitleSize( 0.04 ); frame->GetYaxis()->SetTitleSize( 0.04 ); frame->GetXaxis()->SetLabelSize( 0.04 ); frame->GetYaxis()->SetLabelSize( 0.04 ); frame->Draw(); const int nsig(3); //TH2F *chist[3]; // draw contours //!instead of printing sigma in 68% 95% 98% levels now printing +1 sigma deviations //for (Int_t nsigma=1; nsigma<=nsig; nsigma++) // DrawContourSameColor( contour, nsigma, "blue", kFALSE, (nsigma==1?inverse:0) ) ; TString basecolor="yellow"; Int_t nsigma=2; // TLegend *leg = new TLegend(0.7,0.77,0.95,0.915); TLegend *leg = new TLegend(0.57,0.52,0.85,0.915);//(0.565,0.47,0.925,0.915);//(0.59,0.47,0.92,0.915); leg->SetTextSize( CombinationGlob::DescriptionTextSize ); leg->SetTextSize( 0.03 ); leg->SetTextFont( 42 ); leg->SetFillColor( 0 ); leg->SetFillStyle(1001); // add squark, gluino mass contour lines HERE (TILL) TFile* f4 = TFile::Open( fnameMass, "READ" ); TH2F* histSq = (TH2F*)f4->Get( "mSugraGrid_squarkMasses" ); TH2F* histGl = (TH2F*)f4->Get( "mSugraGrid_gluinoMasses" ); histSq->SetDirectory(0); histGl->SetDirectory(0); f4->Close(); TH2F* histSquarkMass = FixAndSetBorders( *histSq, "SquarkMass", "SquarkMass", 10000 ); TH2F* histGluinoMass = FixAndSetBorders( *histGl, "GluinoMass", "GluinoMass", 10000 ); // DrawContourMassLine( histSquarkMass, 400.0 ); // DrawContourMassLine( histSquarkMass, 500.0 ); DrawContourMassLine( histSquarkMass, 600.0 ); // DrawContourMassLine( histSquarkMass, 700.0 ); DrawContourMassLine( histSquarkMass, 800.0 , 17); // DrawContourMassLine( histSquarkMass, 900.0 ); DrawContourMassLine( histSquarkMass, 1000.0 ); // DrawContourMassLine( histSquarkMass, 1100.0 ); DrawContourMassLine( histSquarkMass, 1200.0 , 17); // DrawContourMassLine( histSquarkMass, 1300.0 ); DrawContourMassLine( histSquarkMass, 1400.0 ); // DrawContourMassLine( histSquarkMass, 1500.0 ); DrawContourMassLine( histSquarkMass, 1600.0 , 17); // DrawContourMassLine( histSquarkMass, 1700.0 ); DrawContourMassLine( histSquarkMass, 1800.0 ); // DrawContourMassLine( histSquarkMass, 1900.0 ); DrawContourMassLine( histSquarkMass, 2000.0 , 17); // DrawContourMassLine( histSquarkMass, 2100.0 ); DrawContourMassLine( histSquarkMass, 2200.0 ); // DrawContourMassLine( histSquarkMass, 2300.0 ); DrawContourMassLine( histSquarkMass, 2400.0 , 17); // DrawContourMassLine( histSquarkMass, 2500.0 ); DrawContourMassLine( histSquarkMass, 2600.0 ); // DrawContourMassLine( histSquarkMass, 2700.0 ); DrawContourMassLine( histSquarkMass, 2800.0 , 17); // DrawContourMassLine( histSquarkMass, 2900.0 ); DrawContourMassLine( histSquarkMass, 3000.0 ); // DrawContourMassLine( histSquarkMass, 3100.0 ); DrawContourMassLine( histSquarkMass, 3200.0 , 17); // DrawContourMassLine( histSquarkMass, 2300.0 ); DrawContourMassLine( histSquarkMass, 3400.0 ); // DrawContourMassLine( histSquarkMass, 3500.0 ); // DrawContourMassLine( histSquarkMass, 3600.0 , 17); // DrawContourMassLine( histSquarkMass, 3700.0 ); // DrawContourMassLine( histSquarkMass, 3800.0 ); // DrawContourMassLine( histSquarkMass, 3900.0 ); // DrawContourMassLine( histSquarkMass, 4000.0 ); DrawContourMassLine( histGluinoMass, 400.0 ); DrawContourMassLine( histGluinoMass, 500.0 , 17); DrawContourMassLine( histGluinoMass, 600.0 ); DrawContourMassLine( histGluinoMass, 700.0 , 17); DrawContourMassLine( histGluinoMass, 800.0 ); DrawContourMassLine( histGluinoMass, 900.0 , 17); DrawContourMassLine( histGluinoMass, 1000.0 ); DrawContourMassLine( histGluinoMass, 1100.0 , 17); DrawContourMassLine( histGluinoMass, 1200.0 ); DrawContourMassLine( histGluinoMass, 1300.0 , 17); DrawContourMassLine( histGluinoMass, 1400.0 ); DrawContourMassLine( histGluinoMass, 1500.0 , 17); DrawContourMassLine( histGluinoMass, 1600.0 ); // DrawContourMassLine( histGluinoMass, 1700.0 ); // DrawContourMassLine( histGluinoMass, 1800.0 ); // DrawContourMassLine( histGluinoMass, 1900.0 ); // DrawContourMassLine( histGluinoMass, 2000.0 ); // DrawContourMassLine( histGluinoMass, 2100.0 ); // find gluino ~ squark mass exclusion limit //DrawContourMassLine( histSquarkMass, 820.0 ); //DrawContourMassLine( histGluinoMass, 820.0 ); /* TLatex * s400 = new TLatex( 140, 167 , "#tilde{q} (400 GeV)" ); s400->SetTextAlign( 11 ); s400->SetTextSize( 0.025 ); s400->SetTextColor( TColor::GetColor("#dddddd") ); s400->Draw();*/ /* TLatex * s500 = new TLatex( 150, 220, "#tilde{q} (500 GeV)" ); s500->SetTextAlign( 11 ); s500->SetTextSize( 0.025 ); s500->SetTextColor( TColor::GetColor("#dddddd") ); s500->Draw();*/ TLatex * s600 = new TLatex( 340, 230, "#tilde{q} (600 GeV)" ); s600->SetTextAlign( 11 ); s600->SetTextAngle(-60); s600->SetTextSize( 0.025 ); s600->SetTextColor( 16 ); //12 s600->Draw(); /*TLatex * s700 = new TLatex( 545, 315, "#tilde{q} (700 GeV)" ); s700->SetTextAlign( 11 ); s700->SetTextSize( 0.025 ); s700->SetTextColor( TColor::GetColor("#dddddd") ); s700->Draw();*/ /*TLatex * s800 = new TLatex( 250, 270, "#tilde{q} (800 GeV)" ); s800->SetTextAlign( 11 ); s800->SetTextSize( 0.025 ); s800->SetTextColor( 203 ); s800->Draw();*/ /* TLatex * s900 = new TLatex( 330, 400, "#tilde{q} (900 GeV)" ); s900->SetTextAlign( 11 ); s900->SetTextSize( 0.025 ); s900->SetTextColor( TColor::GetColor("#dddddd") ); s900->Draw();*/ TLatex * s1000 = new TLatex( 550, 408, "#tilde{q} (1000 GeV)" ); s1000->SetTextAlign( 11 ); s1000->SetTextAngle(-60); s1000->SetTextSize( 0.025 ); s1000->SetTextColor( 16 ); s1000->Draw(); TLatex * s1400 = new TLatex( 790, 580, "#tilde{q} (1400 GeV)" ); s1400->SetTextAlign( 11 ); s1400->SetTextAngle(-60); s1400->SetTextSize( 0.025 ); s1400->SetTextColor( 16 ); s1400->Draw(); /*TLatex * g400 = new TLatex( 1100, 140, "#tilde{g} (400 GeV)" ); g400->SetTextAlign( 11 ); g400->SetTextSize( 0.025 ); g400->SetTextColor( 203 ); g400->Draw();*/ /*TLatex * g500 = new TLatex( 1000, 185, "#tilde{g} (500 GeV)" ); g500->SetTextAlign( 11 ); g500->SetTextSize( 0.025 ); g500->SetTextColor( TColor::GetColor("#dddddd") ); g500->Draw();*/ TLatex * g600 = new TLatex( 1100, 225, "#tilde{g} (600 GeV)" ); g600->SetTextAlign( 11 ); g600->SetTextAngle(-4); g600->SetTextSize( 0.025 ); g600->SetTextColor( 16 ); g600->Draw(); /*TLatex * g900 = new TLatex( 550, 380, "#tilde{g} (900 GeV)" ); g900->SetTextAlign( 11 ); g900->SetTextSize( 0.025 ); g900->SetTextColor( TColor::GetColor("#dddddd") ); g900->Draw();*/ TLatex * g800 = new TLatex( 690, 330, "#tilde{g} (800 GeV)" ); g800->SetTextAlign( 11 ); g800->SetTextSize( 0.025 ); g800->SetTextColor( 16 ); //g800->Draw(); TLatex * g1000 = new TLatex( 1400, 399, "#tilde{g} (1000 GeV)" ); g1000->SetTextAlign( 11 ); g1000->SetTextAngle(-5); g1000->SetTextSize( 0.025 ); g1000->SetTextColor( 16 ); g1000->Draw(); TLatex * g1200 = new TLatex( 1550, 489, "#tilde{g} (1200 GeV)" ); g1200->SetTextAlign( 11 ); g1200->SetTextAngle(-6); g1200->SetTextSize( 0.025 ); g1200->SetTextColor( 16 ); //g1200->Draw(); TLatex * g1400 = new TLatex( 1650, 582, "#tilde{g} (1400 GeV)" ); g1400->SetTextAlign( 11 ); g1400->SetTextAngle(-6); g1400->SetTextSize( 0.025 ); g1400->SetTextColor( 16 ); g1400->Draw(); // island hacks if (true && channel==4) { // muon fixes cout << "removing islands in muon channel ..." << endl; // contour line is drawn for values at 1.64485 TAxis* ax = contour_obs->GetXaxis(); TAxis* ay = contour_obs->GetYaxis(); TH2F* contour_fix = contour_em1s; for (int xbin = 1; xbin <= contour_fix->GetNbinsX(); xbin++) { for (int ybin = 1; ybin <= contour_fix->GetNbinsY(); ybin++) { // island 1 if ( ax->GetBinCenter( xbin) > 1350. && ax->GetBinCenter( xbin) < 1500. && ay->GetBinCenter( ybin) < 130. && ay->GetBinCenter( ybin) > 89. ) { cout << "Found spot here: " << xbin << " (" << ax->GetBinCenter( xbin) << "), " << ybin << " (" << ay->GetBinCenter( ybin) << "), " << " value: " << contour_fix->GetBinContent(xbin,ybin) << endl; cout << " HACK : Setting above point by hand to 1.65 (!)" << endl; if (contour_fix->GetBinContent(xbin,ybin)<1.65) contour_fix->SetBinContent(xbin, ybin, 1.66); } } } } if (false && channel==1) { // electron cout << "removing islands in electron channel ..." << endl; // contour line is drawn for values at 1.64485 TAxis* ax = contour_obs->GetXaxis(); TAxis* ay = contour_obs->GetYaxis(); contour_em1s for (int xbin = 1; xbin <= contour_obs->GetNbinsX(); xbin++) { for (int ybin = 1; ybin <= contour_obs->GetNbinsY(); ybin++) { // island 2 if ( ax->GetBinCenter( xbin) > 420. && ax->GetBinCenter( xbin) < 480. && ay->GetBinCenter( ybin) > 140. && ay->GetBinCenter( ybin) < 160. ) { cout << "Found spot here: " << xbin << " (" << ax->GetBinCenter( xbin) << "), " << ybin << " (" << ay->GetBinCenter( ybin) << "), " << " value: " << contour->GetBinContent(xbin,ybin) << endl; cout << " HACK : Setting above point by hand to 1.50 (!)" << endl; contour->SetBinContent(xbin, ybin, 1.50); } } } }