415 |
|
return thin; |
416 |
|
} |
417 |
|
|
418 |
< |
void make_SMS_exclusion(TH2F *rawlimits,TH2F *xsec,int scantype,std::string& scanx) { |
418 |
> |
void make_SMS_exclusion(TH2F *rawlimits,TH2F *xsec,int scantype,std::string& scanx, bool isobserved) { |
419 |
> |
write_warning(__FUNCTION__,"DEBUGGING THIS FUNCTION"); cout << "Working on : " << rawlimits->GetName() << endl; if(!Contains(rawlimits->GetName(),"map0")) return; |
420 |
|
TH2F *limits = prep_histo(rawlimits,scantype); // this is to be independent of the style used at creation time |
421 |
|
//here we get some limits and the cross section; we want to make an exclusion plot! |
422 |
|
TH2F *rellimits = (TH2F*)limits->Clone("rellimits"); |
481 |
|
|
482 |
|
// fill_with_text(exclline,excllined3,excllinet3,finalcanvas,scantype,scanx); |
483 |
|
stringstream real; |
484 |
< |
real << "Limits/final_exclusion__" << limits->GetName(); |
484 |
> |
real << "Limits/"; |
485 |
> |
if(!isobserved) real << "expected/expected_"; |
486 |
> |
real << "final_exclusion__" << limits->GetName(); |
487 |
|
|
488 |
|
if(Contains(limits->GetName(),"bestlimits")) { |
489 |
|
cout << "----------> " << limits->GetName() << endl; |
710 |
|
return newh; |
711 |
|
} |
712 |
|
|
713 |
< |
void draw_mSUGRA_exclusion(TH2F *ocrosssection, TH2F *oFilterEfficiency, TH2F *oabsXS, TH2F *limitmap, TH2F *expmap, TH2F *expplusmap, TH2F *expminusmap, TH2F *exp2plusmap, TH2F *exp2minusmap) { |
713 |
> |
void draw_mSUGRA_exclusion(TH2F *ocrosssection, TH2F *oFilterEfficiency, TH2F *oabsXS, TH2F *limitmap, TH2F *expmap, TH2F *expplusmap, TH2F *expminusmap, TH2F *exp2plusmap, TH2F *exp2minusmap, bool isobserved) { |
714 |
|
TH2F *crosssection = (TH2F*)ocrosssection->Clone("crosssection"); |
715 |
|
// TH2F *limitmap = (TH2F*)olimitmap->Clone(((string)olimitmap->GetName()+"clone").c_str()); |
716 |
|
TH2F *cleanhisto = (TH2F*)limitmap->Clone("clean"); |
801 |
|
// expected->Draw("c"); |
802 |
|
// observed->Draw("c"); |
803 |
|
stringstream saveas; |
804 |
< |
if((int)((string)limitmap->GetName()).find("limitmap")>0) saveas << "Limits/final_exclusion_for_JZB_geq_" << ((string)limitmap->GetName()).substr(((string)limitmap->GetName()).find("limitmap")+8,10); |
805 |
< |
else saveas << "Limits/final_exclusion_for_bestlimits"; |
804 |
> |
if((int)((string)limitmap->GetName()).find("limitmap")>0) { |
805 |
> |
saveas << "Limits/"; |
806 |
> |
if(!isobserved) saveas << "expected/expected_"; |
807 |
> |
saveas << "final_exclusion_for_JZB_geq_" << ((string)limitmap->GetName()).substr(((string)limitmap->GetName()).find("limitmap")+8,10); |
808 |
> |
} else { |
809 |
> |
saveas << "Limits/"; |
810 |
> |
if(!isobserved) saveas << "expected/expected"; |
811 |
> |
saveas << "final_exclusion_for_bestlimits"; |
812 |
> |
} |
813 |
|
CompleteSave(te,saveas.str()); |
814 |
|
delete te; |
815 |
|
|
855 |
|
SugarCoatThis(overview->cd(6),10,noh,observed); |
856 |
|
// observed->Draw("c"); |
857 |
|
stringstream saveas2; |
858 |
< |
if((int)((string)limitmap->GetName()).find("limitmap")>0) saveas2 << "Limits/exclusion_overview_for_JZB_geq_" << ((string)limitmap->GetName()).substr(((string)limitmap->GetName()).find("limitmap")+8,10); |
859 |
< |
else saveas2 << "Limits/exclusion_overview_for_bestlimits"; |
858 |
> |
if((int)((string)limitmap->GetName()).find("limitmap")>0) { |
859 |
> |
saveas2 << "Limits/"; |
860 |
> |
if(!isobserved) saveas << "expected/expected_"; |
861 |
> |
saveas2 << "exclusion_overview_for_JZB_geq_" << ((string)limitmap->GetName()).substr(((string)limitmap->GetName()).find("limitmap")+8,10); |
862 |
> |
} else { |
863 |
> |
saveas2 << "Limits/"; |
864 |
> |
if(!isobserved) saveas << "expected/expected_"; |
865 |
> |
saveas2 << "exclusion_overview_for_bestlimits"; |
866 |
> |
} |
867 |
|
CompleteSave(overview,saveas2.str()); |
868 |
|
delete overview; |
869 |
|
delete noh; |
1062 |
|
} |
1063 |
|
|
1064 |
|
if(scantype!=PlottingSetup::mSUGRA) { |
1065 |
< |
for(int ilim=0;ilim<(int)obslimits.size();ilim++) make_SMS_exclusion(obslimits[ilim],xsec,scantype,scanx); |
1066 |
< |
make_SMS_exclusion(bestlimits,xsec,scantype,scanx); |
1065 |
> |
for(int ilim=0;ilim<(int)obslimits.size();ilim++) make_SMS_exclusion(obslimits[ilim],xsec,scantype,scanx,true); |
1066 |
> |
for(int ilim=0;ilim<(int)obslimits.size();ilim++) make_SMS_exclusion(explimits[ilim],xsec,scantype,scanx,false);//plotting expected limits |
1067 |
> |
make_SMS_exclusion(bestlimits,xsec,scantype,scanx,true); |
1068 |
|
} else { |
1069 |
|
for(int ilim=0;ilim<(int)obslimits.size();ilim++) { |
1070 |
< |
draw_mSUGRA_exclusion(crosssections[0],FilterEfficiencies[0],AbsCrossSection[0],obslimits[ilim], explimits[ilim], exp1mlimits[ilim], exp1plimits[ilim], exp2mlimits[ilim], exp2plimits[ilim]); |
1070 |
> |
draw_mSUGRA_exclusion(crosssections[0],FilterEfficiencies[0],AbsCrossSection[0],obslimits[ilim], explimits[ilim], exp1mlimits[ilim], exp1plimits[ilim], exp2mlimits[ilim], exp2plimits[ilim],true); |
1071 |
> |
draw_mSUGRA_exclusion(crosssections[0],FilterEfficiencies[0],AbsCrossSection[0],explimits[ilim], explimits[ilim], exp1mlimits[ilim], exp1plimits[ilim], exp2mlimits[ilim], exp2plimits[ilim],false); |
1072 |
|
} |
1073 |
< |
draw_mSUGRA_exclusion(crosssections[0],FilterEfficiencies[0],AbsCrossSection[0],bestlimits, bestexplimits[0], bestexplimits[1], bestexplimits[2], bestexplimits[3], bestexplimits[4]); |
1073 |
> |
draw_mSUGRA_exclusion(crosssections[0],FilterEfficiencies[0],AbsCrossSection[0],bestlimits, bestexplimits[0], bestexplimits[1], bestexplimits[2], bestexplimits[3], bestexplimits[4],true); |
1074 |
|
} |
1075 |
|
delete bestlimits; |
1076 |
|
} |