00001 float thresET=25;
00002 TH1F *hRaw[5];
00003 TH1F *hFinW[5];
00004 int stage=3;
00005
00006 void plWjacob_APS() {
00007
00008 gStyle->SetOptDate(0);
00009
00010 TString iPath="";
00011 TString fullInpName=iPath+"bkgd_histos_pos_output4.root";
00012 fdP=new TFile(fullInpName); assert(fdP->IsOpen());
00013 TString fullInpName=iPath+"bkgd_histos_neg_4GeV_output4.root";
00014 fdN=new TFile(fullInpName); assert(fdN->IsOpen());
00015
00016
00017
00018 c=new TCanvas("aa","aa",900,450);
00019 c->Divide(2,1);
00020 c->SetFillColor(kWhite);
00021
00022 c->cd(2); doJob1(fdP,"W^{#scale[1.5]{+}}",0);
00023 c->cd(1); doJob1(fdN,"W^{#scale[1.5]{-}}",1);
00024
00025 }
00026
00027
00028 void doJob1(TFile *fd, TString charge, int q) {
00029 gStyle->SetPalette(1,0);
00030 gStyle->SetEndErrorSize(0);
00031
00032 gPad->SetGridy(false);
00033 gPad->SetGridx(false);
00034
00035 TString fileEnd;
00036 if(q==1) fileEnd="_r";
00037
00038
00039 TH1F *hRaw2= (TH1F*) fd->Get(Form("raw_stat_err2%s",fileEnd.Data())); assert(hRaw2);
00040 TH1F *hEemcBack2= (TH1F*) fd->Get(Form("eemc_stat_err2%s",fileEnd.Data())); assert(hEemcBack2);
00041 TH1F *hTauBack2= (TH1F*) fd->Get(Form("tau_stat_err2%s",fileEnd.Data())); assert(hTauBack2);
00042 TH1F *hQcdBack2= (TH1F*) fd->Get(Form("QCD_stat_err2%s",fileEnd.Data())); assert(hQcdBack2);
00043
00044 hRaw[q]= (TH1F*) fd->Get(Form("signal2%s",fileEnd.Data())); assert(hRaw[q]);
00045 hFinW[q]= (TH1F*) fd->Get(Form("signal_final3%s",fileEnd.Data())); assert(hFinW[q]);
00046 hRaw[q]->SetAxisRange(0,70);
00047 if(q==0){
00048 hRaw[q]->SetMaximum(99.9);
00049 hRaw[q]->SetMinimum(-10);
00050 }
00051 else {
00052 hRaw[q]->SetMaximum(99.9);
00053 hRaw[q]->SetMinimum(-10);
00054 }
00055 hRaw[q]->SetStats(false);
00056 hRaw[q]->Draw("h");
00057 if(stage < 3) hRaw[q]->SetLineWidth(2);
00058
00059 TH1F * hBack=(TH1F*) hRaw[q]->Clone(); hBack->SetNameTitle("totBackg", "totBackg");
00060 hBack->Add(hFinW[q],-1.);
00061 hBack->SetLineColor(kBlue);
00062 hBack->SetLineWidth(2);
00063 hBack->SetMarkerStyle(8);
00064 hBack->SetMarkerColor(kBlue);
00065 hBack->SetMarkerSize(0.8);
00066
00067
00068 hFinW[q]->SetMarkerStyle(8); hFinW[q]->SetMarkerSize(0.8); hFinW[q]->SetLineColor(kBlack);
00069 hFinW[q]->SetFillColor(kYellow);
00070 hFinW[q]->SetLineWidth(2);
00071 if(stage > 2) hFinW[q]->Draw("same h");
00072 float startLine=1;
00073 if(q==1) startLine=3;
00074 ln=new TLine(startLine,0,71,0); ln->Draw();
00075 if(stage > 1) {
00076 hBack->Draw("h e same");
00077 ln2=new TLine(startLine,0,15,0); ln2->SetLineWidth(2); ln2->Draw();
00078 }
00079
00080
00081 int startbin=8;
00082 if(q==1) startbin=4;
00083 float xpos[50],ypos[50],err[50];
00084 for(int ibin=startbin;ibin<hRaw[q]->GetNbinsX();ibin++){
00085 float eemcBack2=hEemcBack2->GetBinContent(ibin);
00086 float tauBack2=hTauBack2->GetBinContent(ibin);
00087 float qcdBack2=hQcdBack2->GetBinContent(ibin);
00088 float rawErr2=hRaw[q]->GetBinContent(ibin);
00089 float backToterr=sqrt(eemcBack2+tauBack2+qcdBack2);
00090 float finToterr=sqrt(eemcBack2+tauBack2+qcdBack2+rawErr2);
00091 hBack->SetBinError(ibin,backToterr);
00092 xpos[ibin-startbin]=hBack->GetBinCenter(ibin);
00093 ypos[ibin-startbin]=hFinW[q]->GetBinContent(ibin);
00094 err[ibin-startbin]=finToterr;
00095 }
00096 TGraphErrors *errors = new TGraphErrors(50,xpos,ypos,0,err);
00097 errors->SetMarkerStyle(8);
00098 errors->SetMarkerSize(0.8); errors->SetLineColor(kBlack);
00099 if(stage > 2) errors->Draw("p");
00100
00101 lg=new TLegend(0.6,0.62,0.88,0.78);
00102
00103 if(q==0) lg->SetHeader(" positron |#eta|_{ }<_{ }1");
00104 else lg->SetHeader(" electron |#eta|_{ }<_{ }1");
00105 lg->AddEntry(hRaw[q],Form("#font[52]{%s} candidates",charge.Data()),"l");
00106 lg->AddEntry(hBack,"Backg. est.","lfep");
00107 lg->AddEntry(hFinW[q],Form("Backg. subtr. #font[52]{%s} ",charge.Data()),"lfep");
00108 lg->SetFillColor(kWhite);
00109 lg->SetLineColor(kWhite);
00110 lg->Draw();
00111
00112 TLatex *lat1 = new TLatex(0.15,0.84,"Run 9 STAR Preliminary #sqrt{#font[72]{s}}_{ }=_{ }500 GeV");
00113 lat1->SetNDC(); lat1->SetTextSize(0.045); lat1->Draw("same");
00114 if(q==0){
00115 TLatex *lat2 = new TLatex(0.48,0.79,"#font[52]{p+p #rightarrow W^{#scale[1.2]{+}} #rightarrow e^{#scale[1.2]{+}} + #nu_{e}}");
00116 lat2->SetNDC(); lat2->Draw("same");
00117 }
00118 else{
00119 TLatex *lat2 = new TLatex(0.48,0.79,"#font[52]{p+p #rightarrow W^{#scale[1.2]{-}} #rightarrow e^{#scale[1.2]{-}} + #bar{#nu}_{e}}");
00120 lat2->SetNDC(); lat2->Draw("same");
00121 }
00122
00123 if(max==100) tx=new TText(14,20,"software threshold");
00124 else tx=new TText(14,10,"software threshold");
00125 tx->SetTextAngle(90);
00126 tx->SetTextSize(0.03);
00127 tx->Draw();
00128
00129 char tt[100]; sprintf(tt,"; EMC cluster #font[72]{E_{T}} (GeV) ;Counts",charge.Data());
00130 hRaw[q]->GetYaxis()->SetTitleOffset(1.25);
00131 hRaw[q]->SetTitle(tt);
00132
00133
00134
00135
00136
00137
00138
00139
00140 }
00141
00142
00143 float getSum(TH1F* h) {
00144 h->SetAxisRange(thresET,100);
00145 float sum=h->Integral();
00146 h->SetAxisRange(0,100);
00147 return sum;
00148 }