ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/cbrown/Development/Plotting/Modules/ExclusionPlot.C
(Generate patch)

Comparing UserCode/cbrown/Development/Plotting/Modules/ExclusionPlot.C (file contents):
Revision 1.1 by buchmann, Mon Jan 30 14:46:25 2012 UTC vs.
Revision 1.6 by buchmann, Wed Apr 18 09:21:36 2012 UTC

# Line 2 | Line 2
2   #include <vector>
3   #include <sys/stat.h>
4   #include <sstream>
5 + #include <assert.h>
6  
7   #include <TCut.h>
8   #include <TLatex.h>
# Line 41 | Line 42 | float indentedmargin=0.16;
42  
43   bool drawefficiencydesertline=false;
44  
45 + bool wrongwaytodothis=true;
46 +
47   string xsecfilename;
48  
49   void set_range(TH2F *histo, int scantype, bool pushoutlabels);
50   void smooth_line(TGraph *gr);
48 void decorate_mSUGRA(TH2F *cleanhisto, TVirtualPad *cvsSys,TGraph *expected,TGraph *expected2,TGraph *observed);
51   TH2F* adjust_histo(TH2F *oldhist, TH2F *refhisto);
52   TGraph* get_mSUGRA_exclusion_line(TH2F *exclusionhisto, int scantype);
53   TGraph* thin_line(TGraph *gr);
# Line 120 | Line 122 | void fill_with_text(TGraph *real, TGraph
122    line = new TLine(50.+75.0, 50.0+verticaloffset, 1200., 1200.0-75.0+verticaloffset);
123    line->SetLineStyle(2);
124    line->SetLineWidth(2);
125 <  line->Draw("same");
125 >  //line->Draw("same");
126 >   // Add a dashed line to indicate where x changes
127 >  float offset = 0.;
128 >  if ( 0 == scanx.compare("0.5") ) { offset = 91.2/0.5; }
129 >  else if ( 0 == scanx.compare("0.25") ) { offset = 91.2/0.25; }
130 >  else if ( 0 == scanx.compare("0.75") ) { offset = 91.2/0.75; }
131 >
132 >  if ( offset>0 ) {
133 >    line->DrawLine(50+offset, 50.0, 1200., 1200.0-offset);
134 >  }
135   }
136  
137   TH2F* prep_histo(TH2F *oldhist, int scantype) {///DONE
138 <  TH2F *histo = new TH2F(oldhist->GetName(),oldhist->GetName(),
138 >  string name=oldhist->GetName();
139 >  oldhist->SetName(((string)"unprepped"+oldhist->GetName()).c_str());
140 >  TH2F *histo = new TH2F(name.c_str(),name.c_str(),
141                           oldhist->GetNbinsX(),oldhist->GetXaxis()->GetBinLowEdge(1),oldhist->GetXaxis()->GetBinLowEdge(oldhist->GetNbinsX())+oldhist->GetXaxis()->GetBinWidth(oldhist->GetNbinsX()),
142                           oldhist->GetNbinsY(),oldhist->GetYaxis()->GetBinLowEdge(1),oldhist->GetYaxis()->GetBinLowEdge(oldhist->GetNbinsY())+oldhist->GetYaxis()->GetBinWidth(oldhist->GetNbinsY()));
143    
# Line 419 | Line 432 | void make_SMS_exclusion(TH2F *rawlimits,
432          desertline->Draw("same");
433    }
434  
435 <  fill_with_text(exclline,excllined3,excllinet3,finalcanvas,scantype,scanx);
435 >  TH2F *emptyh = new TH2F("emptyh","emptyh",1,1,2,1,1,2);
436 >  
437 >  
438 >  exclline->Draw("c");
439 >
440 > //  fill_with_text(exclline,excllined3,excllinet3,finalcanvas,scantype,scanx);
441    stringstream real;
442    real << "Limits/final_exclusion__" << limits->GetName();
443 +  
444 +  if(Contains(limits->GetName(),"bestlimits")) {
445 +    cout << "----------> " << limits->GetName() << endl;
446 +    TFile *f = new TFile("limits.root","RECREATE");
447 +    thinexcline->SetName("ExclusionLine");
448 +    limits->SetName("UpperLimits");
449 +    limits->Write();
450 +    thinexcline->Write();
451 +    f->Close();
452 +  }
453 +  
454 +  
455    exclline->Draw("l");
456    if(drawdoubleline) thinexcline->Draw("");
457    excllinet3->Draw("");
# Line 615 | Line 645 | TGraph* get_mSUGRA_exclusion_line(TH2F *
645          pointcounter++;
646      }
647    }
648 <  for(int i=pointcounter;i<points.size();i++) graph->SetPoint(i,lastx,lasty);
648 >  for(int i=pointcounter;i<=points.size();i++) graph->SetPoint(i,lastx,lasty);
649    if(scantype==PlottingSetup::GMSB||scantype==PlottingSetup::SMS) {
650          //The final point will be a continuation of the last one, towards the diagonal
651          float x,y;
# Line 627 | Line 657 | TGraph* get_mSUGRA_exclusion_line(TH2F *
657    return graph;
658   }
659  
660 < void draw_mSUGRA_exclusion(TH2F *crosssection, TH2F *limitmap, TH2F *expmap, TH2F *expplusmap, TH2F *expminusmap, TH2F *exp2plusmap, TH2F *exp2minusmap) {
660 > TH2F* cast_into_shape(TH2F *origin, TH2F *reference) {
661 >  TH2F *newh = (TH2F*)reference->Clone(origin->GetName());
662 >  for(int ix=1;ix<=reference->GetNbinsX();ix++) {
663 >    for(int iy=1;iy<=reference->GetNbinsY();iy++) {
664 > //      reference->SetBinContent(ix,iy,origin->GetBinContent(ix,iy));
665 >      newh->SetBinContent(ix,iy,origin->GetBinContent(ix,iy));
666 >    }
667 >  }
668 >  return newh;
669 > }
670 >
671 > void draw_mSUGRA_exclusion(TH2F *ocrosssection, TH2F *oFilterEfficiency, TH2F *oabsXS, TH2F *limitmap, TH2F *expmap, TH2F *expplusmap, TH2F *expminusmap, TH2F *exp2plusmap, TH2F *exp2minusmap) {
672 >  TH2F *crosssection = (TH2F*)ocrosssection->Clone("crosssection");
673 > //  TH2F *limitmap = (TH2F*)olimitmap->Clone(((string)olimitmap->GetName()+"clone").c_str());
674    TH2F *cleanhisto = (TH2F*)limitmap->Clone("clean");
675    for(int ix=1;ix<=cleanhisto->GetNbinsX();ix++) {
676      for(int iy=1;iy<=cleanhisto->GetNbinsY();iy++) {
677        cleanhisto->SetBinContent(ix,iy,0);
678      }
679    }
680 +  
681 +  
682 +  TH2F *FilterEfficiency;
683 +  TH2F *absXS;
684 +
685 +  
686 +  
687 +  
688 +  write_warning(__FUNCTION__,"You'll want to switch off 'wrongwaytodothis')");
689 +  
690 +  if(wrongwaytodothis) {
691 +    //this part is the one you want to remove.
692 +    TFile *Efficiencies = new TFile("FilterEfficiencyv3.root");
693 +    FilterEfficiency = cast_into_shape((TH2F*) Efficiencies->Get("FilterEfficiency"),limitmap);
694 +    assert(FilterEfficiency);
695 +    assert(crosssection);
696 +    absXS=(TH2F*)crosssection->Clone("absXS");
697 +    crosssection->Multiply(FilterEfficiency);
698 +  } else {
699 +    //this part is the one you want to keep!
700 +    FilterEfficiency=(TH2F*)oFilterEfficiency->Clone("FilterEfficiency");
701 +    absXS=(TH2F*)oabsXS->Clone("absXS");
702 +  }
703 +    
704 +  
705  
706    TH2F *limits = (TH2F*)limitmap->Clone("limits");
707    set_range(limits,true,false);
# Line 684 | Line 752 | void draw_mSUGRA_exclusion(TH2F *crossse
752    if(draw2sigma) smooth_line(expected2);
753    
754    TCanvas *te = new TCanvas("te","te");
755 <  decorate_mSUGRA(cleanhisto,te,expected,expected2,observed);
755 >  te->SetRightMargin(standardmargin);
756 > //  decorate_mSUGRA(cleanhisto,te,expected,expected2,observed);
757 >  TH2F *noh = new TH2F("noh","noh",1,1,2,1,1,2);
758 >  SugarCoatThis(te,10,noh,observed);
759 > //  expected->Draw("c");
760 > //  observed->Draw("c");
761    stringstream saveas;
762    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);
763    else saveas << "Limits/final_exclusion_for_bestlimits";
764    CompleteSave(te,saveas.str());
765    delete te;
766    
767 <  TCanvas *overview = new TCanvas("overview","overview",1000,1000);
767 >  TCanvas *overview = new TCanvas("overview","overview",1500,1000);
768 >  
769    set_range(crosssection,true,false);
770    set_range(limits,true,false);
771    set_range(limitmap,true,false);
772    
773 <  overview->Divide(2,2);
773 >  TGraph *emptygraph = new TGraph(0);
774 >  
775 >  overview->Divide(3,2);
776    overview->cd(1);
777    overview->cd(1)->SetLogz(1);
778 <  crosssection->GetZaxis()->SetRangeUser(0.0001,100);
779 <  crosssection->Draw("COLZ");
778 >  absXS->GetZaxis()->SetRangeUser(0.0001,100);
779 >  absXS->Draw("COLZ");
780    TText *title0 = write_title("Cross Section");
781    title0->Draw("same");
782    overview->cd(2);
783 <  overview->cd(2)->SetLogz(1);
784 <  limits->GetZaxis()->SetRangeUser(0.1,100);
783 >  FilterEfficiency->GetZaxis()->SetRangeUser(0.01,0.7);
784 >  FilterEfficiency->Draw("COLZ");
785 >  TText *title0aa = write_title("Filter #epsilon");
786 >  title0aa->Draw("same");
787 >  overview->cd(3);
788 >  overview->cd(3)->SetLogz(1);
789 >  crosssection->GetZaxis()->SetRangeUser(0.0001,100);
790 >  crosssection->Draw("COLZ");
791 >  TText *title0a = write_title("Filter #epsilon x Cross Section");
792 >  title0a->Draw("same");
793 >  
794 >  overview->cd(4);
795 >  overview->cd(4)->SetLogz(1);
796 >  limits->GetZaxis()->SetRangeUser(0.01,100);
797    limits->Draw("COLZ");
798    TText *title1 = write_title("Cross Section Upper Limit");
799    title1->Draw("same");
800 <  overview->cd(3);
800 >  overview->cd(5);
801    limitmap->Draw("COLZ");
802    TText *title2 = write_title("UL/XS");
803    title2->Draw("same");
804    observed->Draw("c");
805 <  overview->cd(4);
806 <  decorate_mSUGRA(cleanhisto,overview->cd(4),expected,expected2,observed);
805 >  overview->cd(6);
806 >  overview->cd(6)->SetRightMargin(standardmargin);
807 > //  decorate_mSUGRA(cleanhisto,overview->cd(4),expected,expected2,observed);
808 >  SugarCoatThis(overview->cd(6),10,noh,observed);
809 > //  observed->Draw("c");
810    stringstream saveas2;
811    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);
812    else saveas2 << "Limits/exclusion_overview_for_bestlimits";
813    CompleteSave(overview,saveas2.str());
814    delete overview;
815 <
815 >  delete noh;
816 >  delete crosssection;
817 >  delete absXS;
818 >  delete FilterEfficiency;
819    
820   }
821  
# Line 801 | Line 895 | TH2F *make_best_limits(vector<TH2F*> exp
895        int source=0;
896        for(int k=0;k<explimits.size();k++) {
897          float currlim=explimits[k]->GetBinContent(i,j);
898 <        if(currlim<min&&currlim>0) {
898 >        if(currlim<=min&&currlim>0) {
899            min=currlim;
900            omin=obslimits[k]->GetBinContent(i,j);
901            source=k+1;
# Line 831 | Line 925 | TH2F *make_best_limits(vector<TH2F*> exp
925    bestlimitsource->GetYaxis()->CenterTitle(0);
926    bestlimitsource->Draw("COL");
927    gPad->Update();
834  if(scantype!=PlottingSetup::mSUGRA) bestlimitsource->Draw("TEXT,same");
928    TLegend *sourceleg = new TLegend(0.2,0.5,0.55,0.75);
929    for(int i=0;i<explimits.size();i++) {
930      stringstream legendentry;
# Line 856 | Line 949 | TH2F *make_best_limits(vector<TH2F*> exp
949    allbestexplimits.push_back(bestexp2mlimit);
950    
951    delete canlimsource;
859  delete bestexplimit;
952    delete bestlimitsource;
953    return bestlimit;
954   }
# Line 882 | Line 974 | void create_exclusion_plots(vector<TH2F*
974    vector<TH2F*> obslimits;
975    vector<TH2F*> flipmaps;
976    vector<TH2F*> crosssections;
977 <  
977 >  vector<TH2F*> AbsCrossSection;
978 >  vector<TH2F*> FilterEfficiencies;
979    for(int ilim=0;ilim<limits.size();ilim++) {
980      if(TString(limits[ilim]->GetName()).Contains("_explimitmap")) explimits.push_back(limits[ilim]);
981      if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_exp1plimitmap")) exp1plimits.push_back(limits[ilim]);
982      if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_exp1mlimitmap")) exp1mlimits.push_back(limits[ilim]);
983      if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_exp2plimitmap")) exp2plimits.push_back(limits[ilim]);
984      if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_exp2mlimitmap")) exp2mlimits.push_back(limits[ilim]);
985 <    if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_absolutecrosssectionmap")) crosssections.push_back(limits[ilim]);
985 > //    if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_XS")) crosssections.push_back(limits[ilim]);
986 >    if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_absXS")) AbsCrossSection.push_back(limits[ilim]);
987 >    if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_FilterEfficiency")) FilterEfficiencies.push_back(limits[ilim]);
988 >    if(wrongwaytodothis) {
989 >      if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_XS")) AbsCrossSection.push_back(limits[ilim]);
990 >      if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_absXS")) crosssections  .push_back(limits[ilim]);
991 >      if(scantype==PlottingSetup::mSUGRA && TString(limits[ilim]->GetName()).Contains("_XS")) FilterEfficiencies.push_back(limits[ilim]);
992 >    }
993      if(TString(limits[ilim]->GetName()).Contains("_limitmap")) obslimits.push_back(limits[ilim]);
994   //    if(TString(limits[ilim]->GetName()).Contains("_limitflipmap")) flipmaps.push_back(limits[ilim]);
995    }
996      
997 + cout << "Size: " << AbsCrossSection.size() << endl;
998    TH2F *xsec;
999    if(scantype!=PlottingSetup::mSUGRA) xsec = adjust_histo(get_XS(xsecfilename,"gluino",limits[0]),limits[0]);
1000    vector<TH2F*> bestexplimits;
1001    TH2F *bestlimits = make_best_limits(explimits,obslimits,scantype, scanx, exp1mlimits, exp1plimits, exp2mlimits, exp2plimits, bestexplimits);
1002    bestlimits->GetZaxis()->SetRangeUser(limits_lower_bound,limits_upper_bound);
1003 <  
1003 >
1004    for(int ilim=0;ilim<limits.size();ilim++) {
1005      limits[ilim]->GetZaxis()->SetRangeUser(limits_lower_bound,limits_upper_bound);
1006    }
# Line 909 | Line 1010 | void create_exclusion_plots(vector<TH2F*
1010      make_SMS_exclusion(bestlimits,xsec,scantype,scanx);
1011    } else {
1012      for(int ilim=0;ilim<obslimits.size();ilim++) {
1013 <      draw_mSUGRA_exclusion(crosssections[0], obslimits[ilim], explimits[ilim], exp1mlimits[ilim], exp1plimits[ilim], exp2mlimits[ilim], exp2plimits[ilim]);
1013 >      draw_mSUGRA_exclusion(crosssections[0],FilterEfficiencies[0],AbsCrossSection[0],obslimits[ilim], explimits[ilim], exp1mlimits[ilim], exp1plimits[ilim], exp2mlimits[ilim], exp2plimits[ilim]);
1014      }
1015 <    draw_mSUGRA_exclusion(crosssections[0], bestlimits, bestexplimits[0], bestexplimits[1], bestexplimits[2], bestexplimits[3], bestexplimits[4]);
1015 >    draw_mSUGRA_exclusion(crosssections[0],FilterEfficiencies[0],AbsCrossSection[0],bestlimits, bestexplimits[0], bestexplimits[1], bestexplimits[2], bestexplimits[3], bestexplimits[4]);
1016    }
1017    delete bestlimits;
1018   }
1019  
919 void decorate_mSUGRA(TH2F *cleanhisto, TVirtualPad *cvsSys,TGraph *expected,TGraph *expected2,TGraph *observed) {
920  cvsSys->SetRightMargin(standardmargin);
921  Int_t tanBeta_ = 10;
922  Bool_t plotLO_ = false;
923  
924  //convert tanb value to string
925  std::stringstream tmp;
926  tmp << tanBeta_;
927  TString tanb( tmp.str() );
928
929  //set old exclusion Limits
930  TGraph* LEP_ch = set_lep_ch(tanBeta_);
931  TGraph* LEP_sl = set_lep_sl(tanBeta_);//slepton curve
932  TGraph* TEV_sg_cdf = set_tev_sg_cdf(tanBeta_);//squark gluino cdf
933  TGraph* TEV_sg_d0 = set_tev_sg_d0(tanBeta_);//squark gluino d0
934  TGraph* stau   = set_tev_stau(tanBeta_);//stau
935  TGraph* NoEWSB = set_NoEWSB(tanBeta_);
936
937  TGraph* TEV_sn_d0_1 = set_sneutrino_d0_1(tanBeta_);
938  TGraph* TEV_sn_d0_2 = set_sneutrino_d0_2(tanBeta_);
939
940  //constant ssqquark and gluino lines
941  TF1* lnsq[10];
942  TF1* lngl[10];
943  
944  TLatex* sq_text[10];
945  TLatex* gl_text[10];
946  
947  for(int i = 0; i < 6; i++){
948    lnsq[i] = constant_squark(tanBeta_,i);
949    sq_text[i] = constant_squark_text(i,*lnsq[i],tanBeta_);
950    lngl[i] = constant_gluino(tanBeta_,i);
951    gl_text[i] = constant_gluino_text(i,*lngl[i]);
952  }
953
954  //Legends
955  TLegend* legst  = makeStauLegend(0.05,tanBeta_);
956  TLegend* legNoEWSB  = makeNoEWSBLegend(0.05,tanBeta_);
957  TLegend* legexp = makeExpLegend( *TEV_sg_cdf,*TEV_sg_d0,*LEP_ch,*LEP_sl,*TEV_sn_d0_1,0.035,tanBeta_);
958
959  TEV_sn_d0_1->SetLineWidth(1);
960  TEV_sn_d0_2->SetLineWidth(1);
961  TEV_sg_d0->SetLineWidth(1);
962  
963  double m0min = 0;
964  if (tanBeta_ == 50) m0min=200;
965  TH2F* hist = new TH2F("h","h",100,m0min,1000,100,120,700);
966  hist->Draw();  
967  hist->GetXaxis()->SetTitle("m_{0} [GeV]");
968  hist->GetXaxis()->CenterTitle();
969  hist->GetYaxis()->SetTitle("m_{1/2} [GeV]");
970  hist->GetYaxis()->CenterTitle();
971  hist->GetXaxis()->SetTitleSize(0.04);
972  hist->GetYaxis()->SetTitleSize(0.04);
973  hist->GetXaxis()->SetTitleOffset(1.2);
974  hist->GetYaxis()->SetTitleOffset(1.5);
975  hist->GetXaxis()->SetNdivisions(506);
976  hist->GetYaxis()->SetNdivisions(506);
977
978  int col[]={2,3,4};
979
980  TLegend* myleg;
981
982  if( plotLO_ ) myleg = new TLegend(0.3,0.65,0.65,0.8,NULL,"brNDC");
983  else          myleg = new TLegend(0.25,0.76,0.44,0.91,NULL,"brNDC");
984
985  myleg->SetFillColor(0);
986  myleg->SetShadowColor(0);
987  myleg->SetTextSize(0.04);
988  myleg->SetBorderSize(0);
989
990  //constant squark and gluino mass contours
991  for (int it=0;it<5;it++) {  
992    lngl[it]->Draw("same");  
993    lnsq[it]->Draw("same");
994    sq_text[it]->Draw();
995    gl_text[it]->Draw();
996  }
997  
998 //exclusion limits previous experiments
999  if(tanBeta_ == 3){
1000    TEV_sn_d0_1->Draw("fsame");
1001    TEV_sn_d0_2->Draw("fsame");
1002  }
1003  LEP_ch->Draw("fsame");
1004  if (tanBeta_ != 50) LEP_sl->Draw("fsame");
1005
1006  //remove CDF/D0 excluded regions
1007  TEV_sg_cdf->Draw("fsame");
1008  TEV_sg_d0->Draw("same");  
1009  TEV_sg_d0->Draw("fsame");
1010
1011  //other labels
1012  Double_t xpos = 0;
1013  Double_t xposi = 0;
1014  Double_t ypos = 0;
1015  if(tanBeta_ == 50) xposi = 100;
1016  if(tanBeta_ == 50) xpos = 200;
1017  if(tanBeta_ == 50) ypos = -10;
1018
1019  TString text_tanBeta;
1020  text_tanBeta =  "tan#beta = "+tanb+",  A_{0} = 0,  #mu > 0";
1021  TLatex* cmssmpars = new TLatex(/*530.+xpos,690.+ypos-130*/150,650,text_tanBeta);
1022
1023  cmssmpars->SetTextSize(0.03);
1024  cmssmpars->Draw("same");
1025
1026  TLatex* lep_chargino = new TLatex(250,135,"LEP2 #tilde{#chi}_{1}^{#pm}");
1027  lep_chargino->SetTextSize(0.03);
1028  lep_chargino->SetTextFont(42);
1029
1030  TLatex* lep_slepton = new TLatex(26,190,"LEP2 #tilde{#font[12]{l}}^{#pm}");
1031  lep_slepton->SetTextSize(0.03);
1032  lep_slepton->SetTextAngle(-83);
1033  lep_slepton->SetTextFont(42);
1034
1035  if(draw2sigma) expected2->Draw("f");
1036  expected->SetLineColor(expected->GetFillColor());
1037  expected2->SetLineColor(expected2->GetFillColor());
1038  expected->Draw("f");
1039  observed->Draw("c");
1040  
1041  stau->Draw("fsame");
1042  NoEWSB->Draw("fsame");
1043
1044  legexp->AddEntry(observed,"Observed limit","l");
1045  legexp->AddEntry(expected,"Expected 1#sigma limit","f");
1046  if(draw2sigma) legexp->AddEntry(expected2,"Expected 2#sigma limit","f");
1047  legexp->SetY1(0.60);
1048  legexp->SetX1(0.55);
1049  legexp->Draw();
1050  legst->Draw();
1051
1052  hist->Draw("sameaxis");
1053  cvsSys->RedrawAxis();
1054  cvsSys->Update();
1055  DrawPrelim();
1056 }
1020  
1021   void smooth_line_once(TGraph *gr) {
1022    //going to smooth graph
# Line 1090 | Line 1053 | void set_range(TH2F *histo, int scantype
1053    gStyle->SetPadLeftMargin(0.18);
1054    gStyle->SetPadRightMargin(0.19);
1055    if(scantype==PlottingSetup::mSUGRA) {
1056 <    histo->GetXaxis()->SetRangeUser(0,2000);
1057 <    histo->GetYaxis()->SetRangeUser(0,800);
1056 >    histo->GetXaxis()->SetRangeUser(0,PlottingSetup::m0end);
1057 >    histo->GetYaxis()->SetRangeUser(0,PlottingSetup::m12end);
1058      histo->GetXaxis()->SetTitle("m_{0} [GeV]");
1059      histo->GetYaxis()->SetTitle("m_{1/2} [GeV]");
1060 <    histo->GetXaxis()->SetRangeUser(0,2000);
1060 >    histo->GetXaxis()->SetRangeUser(0,PlottingSetup::m0end);
1061      histo->GetXaxis()->SetNdivisions(504,true);
1062    }
1063    if(scantype==PlottingSetup::SMS) {
# Line 1219 | Line 1182 | void make_all_syst_plots(vector<TH2F*> a
1182  
1183   void process_file(TFile* file, float stdmargin) {
1184    standardmargin=stdmargin;
1185 <  xsecfilename="reference_xSec_SMS.root";
1185 >  xsecfilename=PlottingSetup::cbafbasedir+"/"+PlottingSetup::SMSReferenceXSFile;
1186  
1187    // can receive a file with systematics and limits mixed, or a file with systematics only , or a file with limits only.
1188    TIter nextkey(file->GetListOfKeys());
# Line 1249 | Line 1212 | void process_file(TFile* file, float std
1212        if(name.Contains("exp2mlimitmap")) is_limit=true;
1213        if(name.Contains("exclusionmap")) is_limit=true;
1214        if(name.Contains("crosssectionmap")) is_limit=true;
1215 <      if(name.Contains("absolutecrosssectionmap")) is_limit=true;
1215 >      if(name.Contains("XS")) is_limit=true;
1216 >      if(name.Contains("absXS")) is_limit=true;
1217        if(name.Contains("limitflipmap")) is_limit=true;
1218  
1219        if(name.Contains("sysjes")) is_systematic=true;
# Line 1274 | Line 1238 | void process_file(TFile* file, float std
1238        if(name.Contains("mSUGRA")) scantype=PlottingSetup::mSUGRA;
1239        if(name.Contains("GMSB")) scantype=PlottingSetup::GMSB;
1240      }
1241 <  if(systematics_histos.size()>0) make_all_syst_plots(systematics_histos,scantype,scanx);
1241 >    write_warning(__FUNCTION__,"Deactivated systematics plots");
1242 > //  if(systematics_histos.size()>0) make_all_syst_plots(systematics_histos,scantype,scanx);
1243    if(limits_histos.size()>0) create_exclusion_plots(limits_histos,scantype,scanx);
1244   }
1245  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines