00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 void makeBkgdFiles(int charge, int two_or_four) {
00013
00014
00015
00016
00017
00018
00019 gStyle->SetOptDate(0);
00020 TFile *f1 = new TFile("run9setP1234.wana.hist.root");
00021
00022
00023
00024
00025
00026
00027 if (charge == 1) {
00028 TH1F *signal = (TH1F*)f1->Get("pos_muclustpTbal_wE");
00029 TH1F *signal_wo_eemc = (TH1F*)f1->Get("pos_muclustpTbal_noE");
00030 } else if (charge == -1) {
00031 TH1F *signal = (TH1F*)f1->Get("neg_muclustpTbal_wE");
00032 TH1F *signal_wo_eemc = (TH1F*)f1->Get("neg_muclustpTbal_noE");
00033 } else if (charge == 0) {
00034 TH1F *signal = (TH1F*)f1->Get("muclustPtBal");
00035 TH1F *signal_wo_eemc = (TH1F*)f1->Get("muclustPtBalnoE");
00036 }
00037
00038
00039
00040
00041
00042
00043 TFile *MC_fs[6];
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 MC_fs[0] = new TFile("rcn10010.wana.hist.root");
00061 MC_fs[1] = new TFile("rcn10011.wana.hist.root");
00062 MC_fs[2] = new TFile("rcn10012.wana.hist.root");
00063 MC_fs[3] = new TFile("rcn10017.wana.hist.root");
00064 MC_fs[4] = new TFile("rcn10018.wana.hist.root");
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077 TH1F *MC_dists_raw[5][3];
00078 for (int i=0; i<5; i++) {
00079 if (charge == 1) {
00080 MC_dists_raw[i][0] = (TH1F*)MC_fs[i]->Get("pos_muclustpTbal_wE");
00081 MC_dists_raw[i][1] = (TH1F*)MC_fs[i]->Get("pos_muclustpTbal_noE");
00082
00083 } else if (charge == -1) {
00084 MC_dists_raw[i][0] = (TH1F*)MC_fs[i]->Get("neg_muclustpTbal_wE");
00085 MC_dists_raw[i][1] = (TH1F*)MC_fs[i]->Get("neg_muclustpTbal_noE");
00087 } else if (charge == 0) {
00088 MC_dists_raw[i][0] = (TH1F*)MC_fs[i]->Get("muclustPtBal");
00089 MC_dists_raw[i][1] = (TH1F*)MC_fs[i]->Get("muclustPtBalnoE");
00090 MC_dists_raw[i][2] = (TH1F*)MC_fs[i]->Get("muclustPtBal_bckgrd");
00091 }
00092 MC_dists_raw[i][2] = (TH1F*)MC_fs[i]->Get("muclustPtBal_bckgrd");
00093
00094 }
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104 float lumi[5] = {30.4/(124./98.7),31.4/(41./32.9),30.3/((124.+41.)/(98.7+32.9)),30.8/((124+41)/(98.7+32.9)),33.4/(10./8.23)};
00105
00106 float lumi_fact[6];
00107 for (int i=0; i<5; i++) {lumi_fact[i] = 12.0/lumi[i];}
00108
00109 for (int i=0; i<5; i++) {
00110 for (int j=0; j<3; j++) {
00111 MC_dists_raw[i][j]->Scale(lumi_fact[i]);
00112 }
00113 }
00114
00115
00116
00117
00118 char str[200];
00119 TH1F *MC_dists_repack[5][3];
00120 for (int i=0; i<5; i++) {
00121 sprintf(str,"mcclustPtBal_%d",i);
00122 MC_dists_repack[i][0] = new TH1F(str,str,49,1.,99.);
00123 sprintf(str,"mcclustPtBalnoE_%d",i);
00124 MC_dists_repack[i][1] = new TH1F(str,str,49,1.,99.);
00125 sprintf(str,"mcclustPtBal_bckgrd_%d",i);
00126 MC_dists_repack[i][2] = new TH1F(str,str,49,1.,99.);
00127 }
00128
00129 for (int i=0; i<5; i++) {
00130 for (int j=0; j<3; j++) {
00131 for (int k=1; k<=49; k++) {
00132 MC_dists_repack[i][j]->SetBinContent(k,MC_dists_raw[i][j]->GetBinContent(2*k)+
00133 MC_dists_raw[i][j]->GetBinContent(2*k+1));
00134 }
00135 }
00136 }
00137
00138
00139 for (int i=0; i<5; i++) {
00140 MC_dists_repack[i][1]->Add(MC_dists_repack[i][0],-1);
00141 MC_dists_raw[i][1]->Add(MC_dists_raw[i][0],-1.);
00142 }
00143
00144
00145
00146
00147
00148 TH1F *eemc_bkgd = signal_wo_eemc->Clone();
00149 eemc_bkgd->Add(signal,-1.);
00150 TH1F *signal_final = signal->Clone();
00151 signal_final->Add(eemc_bkgd,-1);
00152
00153 TH1F *eemc_bkgd2 = new TH1F("eemc_bkgd2","eemc_bkgd2",49,1,99);
00154 TH1F *zsig_bkgd2 = new TH1F("zsig_bkgd2","zsig_bkgd2",49,1,99);
00155 TH1F *zeemc_bkgd2 = new TH1F("zeemc_bgkd2","zeemc_bkgd2",49,1,99);
00156 TH1F *zback_bkgd2 = new TH1F("zback_bkgd2","zback_bkgd2",49,1,99);
00157
00158 TH1F *wanysig_bkgd2 = new TH1F("wanysig_bkgd2","wanysig_bkgd2",49,1,99);
00159 TH1F *wanyeemc_bkgd2 = new TH1F("wanyeemc_bgkd2","wanyeemc_bkgd2",49,1,99);
00160 TH1F *wanyback_bkgd2 = new TH1F("wanyback_bkgd2","wanyback_bkgd2",49,1,99);
00161
00162 TH1F *zsig = MC_dists_raw[4][0]->Clone();
00163 TH1F *zeemc = MC_dists_raw[4][1]->Clone();
00164 TH1F *zback = MC_dists_raw[4][2]->Clone();
00165
00166 signal_final->Add(zsig,-1.);
00167
00168
00169 TH1F *bkgd_shape1 = (TH1F*)f1->Get("muclustPtBal_bckgrd");
00170
00171 TH1F *bkgd_shape_nom = new TH1F("bkgd_shape","bkgd_shape",49,1,99);
00172 for (int i=1; i<=49; i++) {
00173 bkgd_shape_nom->SetBinContent(i,bkgd_shape1->GetBinContent(2*i)+
00174 bkgd_shape1->GetBinContent(2*i+1));
00175 }
00176 TH1F *bkgd_shape_nom2 = bkgd_shape_nom->Clone();
00177
00178 TH1F *signal_final2 = new TH1F("signal_final2","signal_final2",49,1,99);
00179 signal_final2->SetLineColor(2);
00180 signal_final2->SetLineWidth(2.*signal_final2->GetLineWidth());
00181 TH1F *signal2 = new TH1F("signal2","signal2",49,1,99);
00182 for (int i=1; i<=49; i++) {
00183 signal_final2->SetBinContent(i,signal_final->GetBinContent(2*i)+
00184 signal_final->GetBinContent(2*i+1));
00185 signal2->SetBinContent(i,signal->GetBinContent(2*i)+
00186 signal->GetBinContent(2*i+1));
00187 eemc_bkgd2->SetBinContent(i,eemc_bkgd->GetBinContent(2*i)+
00188 eemc_bkgd->GetBinContent(2*i+1));
00189 zsig_bkgd2->SetBinContent(i,zsig->GetBinContent(2*i)+
00190 zsig->GetBinContent(2*i+1));
00191 zeemc_bkgd2->SetBinContent(i,zeemc->GetBinContent(2*i)+
00192 zeemc->GetBinContent(2*i+1));
00193 zback_bkgd2->SetBinContent(i,zback->GetBinContent(2*i)+
00194 zback->GetBinContent(2*i+1));
00195 wanysig_bkgd2->SetBinContent(i,MC_dists_raw[3][0]->GetBinContent(2*i)+
00196 MC_dists_raw[3][0]->GetBinContent(2*i+1));
00197 wanyeemc_bkgd2->SetBinContent(i,MC_dists_raw[3][1]->GetBinContent(2*i)+
00198 MC_dists_raw[3][1]->GetBinContent(2*i+1));
00199 wanyback_bkgd2->SetBinContent(i,MC_dists_raw[3][2]->GetBinContent(2*i)+
00200 MC_dists_raw[3][2]->GetBinContent(2*i+1));
00201 }
00202
00203 TCanvas *can2 = new TCanvas("can2","can2",0,0,600,400);
00204 signal2->Draw();
00205 signal_final2->Draw("same");
00206
00207
00208
00209
00210
00211
00212
00213 eemc_bkgd->SetLineColor(8);
00214 eemc_bkgd->SetLineWidth(2.*eemc_bkgd->GetLineWidth());
00215 bkgd_shape_nom2->SetLineColor(4);
00216 bkgd_shape_nom2->SetLineWidth(2.*bkgd_shape_nom2->GetLineWidth());
00217
00218 TCanvas *can8 = new TCanvas("can8","can8",0,0,3000,1800);
00219 can8->Divide(5,3);
00220 for (int i=0; i<5; i++) {
00221 for (int j=0; j<3; j++) {
00222 can8->cd(5*(j)+i+1);
00223
00224 gPad->SetGridx(0);
00225 gPad->SetGridy(0);
00226 if (j == 0) {
00227 signal_final2->Draw();
00228 } else if (j == 1) {
00229 gPad->SetLogy();
00230 eemc_bkgd->Draw();
00231 } else if (j == 2) {
00232 gPad->SetLogy();
00233 bkgd_shape_nom2->Draw();
00234 }
00235 MC_dists_repack[i][j]->Draw("same");
00236 }
00237 }
00238
00239
00240
00241 for (int i=0; i<5; i++) {
00242 float signal_sum = 0.;
00243 float eemc_sum = 0.;
00244 float back_sum = 0.;
00245 for (int j=13; j<=49; j++) {
00246 signal_sum += MC_dists_repack[i][0]->GetBinContent(j);
00247 eemc_sum += MC_dists_repack[i][1]->GetBinContent(j);
00248 back_sum += MC_dists_repack[i][2]->GetBinContent(j);
00249 }
00250 }
00251
00252
00253 float taufrac=1.5;
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274 signal_final2->Add(MC_dists_repack[2][0],-1.*taufrac);
00275
00276
00277
00278 TF1 *func1 = new TF1("func1","[0]+[1]*x",23,39);
00279 func1->SetParameter(0,0.);
00280 func1->SetParameter(1,0.);
00281
00282 TCanvas *can4 = new TCanvas("can4","can4",0,0,600,400);
00283 signal_final2->Draw();
00284
00285
00286
00287 float signal_in_norm[50];
00288 TH1F *bkgd_shape_unnorm[20];
00289 TH1F *signal_for_new[20];
00290 for (int i=0; i<20; i++) {
00291 bkgd_shape_unnorm[i] = (TH1F*)bkgd_shape_nom->Clone();
00292 signal_for_new[i] = (TH1F*)signal_final2->Clone();
00293
00294
00295 bkgd_shape_unnorm[i]->Add(zback_bkgd2,-1.);
00296
00297
00298 signal_in_norm[8] = func1->Integral(15,17);
00299 signal_in_norm[9] = func1->Integral(17,19);
00300 signal_in_norm[10] = func1->Integral(19,21);
00301
00302 for (int j=8; j<=10; j++) {
00303 if (signal_in_norm[j] < 0) {signal_in_norm[j] = 0.;}
00304 }
00305
00306
00307
00308 float normt = 0, normb = 0.;
00309 for (int k=8; k<10; k++) {
00310 if (bkgd_shape_unnorm[i]->GetBinContent(k) > 0) {
00311 normt += signal_final2->GetBinContent(k)-signal_in_norm[k];
00312 normb += bkgd_shape_unnorm[i]->GetBinContent(k);
00313 }
00314 }
00315 if (normb > 0 && normt > 0) {
00316 float norm = normt/normb;
00317 bkgd_shape_unnorm[i]->Scale(norm);
00318 bkgd_shape_unnorm[i]->Draw("same");
00319
00320 }
00321
00322
00323
00324 for (int j=1; j<=49; j++) {
00325 if (bkgd_shape_unnorm[i]->GetBinContent(j) < 0) {bkgd_shape_unnorm[i]->SetBinContent(j,0.);}
00326 }
00327 signal_for_new[i]->Add(bkgd_shape_unnorm[i],-1.);
00328 signal_for_new[i]->Fit(func1,"RQ");
00329 }
00330
00331
00332
00333 TH1F *signal_in_norm_region = new TH1F("signal_in_norm_region","signal_in_norm_region",49,1.,99.);
00334
00335 signal_in_norm_region->SetBinContent(8,signal_in_norm[8]);
00336 signal_in_norm_region->SetBinContent(9,signal_in_norm[9]);
00337
00338 TH1F *new_bkgd = new TH1F("new_bkgd","new_bkgd",49,1.,99.);
00339 new_bkgd = (TH1F*)bkgd_shape_unnorm[19]->Clone();
00340 new_bkgd->SetName("new_bkgd");
00341
00342 TCanvas *can5 = new TCanvas("can5","can5",0,0,600,400);
00343 signal_final2->Draw();
00344 new_bkgd->Draw("same");
00345 signal_in_norm_region->Draw("same");
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356 TH2F *bkgd_hists_from_file[21];
00357 TH2F *bkgd_hists_from_file2[21];
00358 char str[200];
00359 for (int i=0; i<=20; i++) {
00360
00361
00362
00363
00364
00365
00366
00367
00368 sprintf(str,"pos_failAwaySide_Awayside_pt_bin_%d",i);
00369 bkgd_hists_from_file[i] = (TH2F*)f1->Get(str);
00370 sprintf(str,"neg_failAwaySide_Awayside_pt_bin_%d",i);
00371 bkgd_hists_from_file2[i] = (TH2F*)f1->Get(str);
00372 bkgd_hists_from_file[i]->Add(bkgd_hists_from_file2[i]);
00373
00374 }
00375
00376
00377 TH1F *bkgd_hists1[21][21];
00378 TH1F *bkgd_hists2[21][21];
00379 TH1F *bkgd_hists3[21][21];
00380 int jval=0;
00381 for (int i=0; i<=20; i++) {
00382 int j=jval;
00383
00384 sprintf(str,"bkgd_hist1_%d_%d",i,j);
00385 bkgd_hists1[i][j] = new TH1F(str,str,49,1,99);
00386 sprintf(str,"bkgd_hist2_%d_%d",i,j);
00387 bkgd_hists2[i][j] = new TH1F(str,str,49,1,99);
00388 sprintf(str,"bkgd_hist3_%d_%d",i,j);
00389 bkgd_hists3[i][j] = new TH1F(str,str,49,1,99);
00390 for (int k=1; k<=49; k++) {
00391 bkgd_hists1[i][j]->SetBinContent(k,bkgd_hists_from_file[0]->GetBinContent(2*k,i+1)+bkgd_hists_from_file[0]->GetBinContent(2*k+1,i+1));
00392 bkgd_hists2[i][j]->SetBinContent(k,bkgd_hists_from_file[0]->GetBinContent(2*k,i+1)+bkgd_hists_from_file[0]->GetBinContent(2*k+1,i+1));
00393 bkgd_hists3[i][j]->SetBinContent(k,bkgd_hists_from_file[0]->GetBinContent(2*k,i+1)+bkgd_hists_from_file[0]->GetBinContent(2*k+1,i+1));
00394 }
00395
00396 }
00397
00398
00399
00400
00401 TF1 *func2 = new TF1("func2","[0]+[1]*x",23,39);
00402 func2->SetParameter(0,0.);
00403 func2->SetParameter(1,0.);
00404 TF1 *func3 = new TF1("func3","[0]+[1]*x",23,39);
00405 func3->SetParameter(0,0.);
00406 func3->SetParameter(1,0.);
00407
00408
00409
00410 float final_sig_in_norm[21][21][3];
00411 float final_chisquare[21][21];
00412 float signal_in_norm1[50];
00413 float signal_in_norm2[50];
00414 float signal_in_norm3[50];
00415 TH1F *new_bkgd_hists1[21][21];
00416 TH1F *new_bkgd_hists2[21][21];
00417 TH1F *new_bkgd_hists3[21][21];
00418 TH1F *bkgd_shape_unnorm1[20];
00419 TH1F *bkgd_shape_unnorm2[20];
00420 TH1F *bkgd_shape_unnorm3[20];
00421 TH1F *signal_for_new1[20];
00422 TH1F *signal_for_new2[20];
00423 TH1F *signal_for_new3[20];
00424 for (int i=0; i<=20; i++) {
00425 int j=jval;
00426
00427
00428 func1->SetParameter(0,0.);
00429 func1->SetParameter(1,0.);
00430 func2->SetParameter(0,0.);
00431 func2->SetParameter(1,0.);
00432 func3->SetParameter(0,0.);
00433 func3->SetParameter(1,0.);
00434
00435 for (int l=0; l<20; l++) {
00436 bkgd_shape_unnorm1[l] = (TH1F*)bkgd_hists1[i][j]->Clone();
00437 bkgd_shape_unnorm2[l] = (TH1F*)bkgd_hists2[i][j]->Clone();
00438 bkgd_shape_unnorm3[l] = (TH1F*)bkgd_hists3[i][j]->Clone();
00439 signal_for_new1[l] = (TH1F*)signal_final2->Clone();
00440 signal_for_new2[l] = (TH1F*)signal_final2->Clone();
00441 signal_for_new3[l] = (TH1F*)signal_final2->Clone();
00442
00443
00444 bkgd_shape_unnorm1[l]->Add(zback_bkgd2,-1.);
00445 bkgd_shape_unnorm2[l]->Add(zback_bkgd2,-1.);
00446 bkgd_shape_unnorm3[l]->Add(zback_bkgd2,-1.);
00447
00448
00449 signal_in_norm1[8] = func1->Integral(15,17);
00450 signal_in_norm1[9] = func1->Integral(17,19);
00451 signal_in_norm1[10] = func1->Integral(19,21);
00452 signal_in_norm2[8] = func2->Integral(15,17);
00453 signal_in_norm2[9] = func2->Integral(17,19);
00454 signal_in_norm2[10] = func2->Integral(19,21);
00455 signal_in_norm3[8] = func3->Integral(15,17);
00456 signal_in_norm3[9] = func3->Integral(17,19);
00457 signal_in_norm3[10] = func3->Integral(19,21);
00458
00459 for (int m=8; m<=10; m++) {
00460 if (signal_in_norm1[m] < 0) {signal_in_norm1[m] = 0.;}
00461 if (signal_in_norm2[m] < 0) {signal_in_norm2[m] = 0.;}
00462 if (signal_in_norm3[m] < 0) {signal_in_norm3[m] = 0.;}
00463 }
00464
00465
00466 float normt = 0, normb = 0.;
00467 for (int k=8; k<=8; k++) {
00468 if (bkgd_shape_unnorm1[l]->GetBinContent(k) > 0) {
00469 normt += signal_final2->GetBinContent(k)-signal_in_norm1[k];
00470 normb += bkgd_shape_unnorm1[l]->GetBinContent(k);
00471 }
00472 }
00473 if (normb > 0 && normt > 0) {
00474 float norm = normt/normb;
00475 bkgd_shape_unnorm1[l]->Scale(norm);
00476 }
00477 for (int m=1; m<=49; m++) {
00478 if (bkgd_shape_unnorm1[l]->GetBinContent(m) < 0) {bkgd_shape_unnorm1[l]->SetBinContent(m,0.);}
00479 }
00480 signal_for_new1[l]->Add(bkgd_shape_unnorm1[l],-1.);
00481 signal_for_new1[l]->Fit(func1,"RQ");
00482
00483
00484 normt = 0.; normb = 0.;
00485 for (int k=8; k<=9; k++) {
00486 if (bkgd_shape_unnorm2[l]->GetBinContent(k) > 0) {
00487 normt += signal_final2->GetBinContent(k)-signal_in_norm2[k];
00488 normb += bkgd_shape_unnorm2[l]->GetBinContent(k);
00489 }
00490 }
00491 if (normb > 0 && normt > 0) {
00492 float norm = normt/normb;
00493 bkgd_shape_unnorm2[l]->Scale(norm);
00494
00495 }
00496
00497 for (int m=1; m<=49; m++) {
00498 if (bkgd_shape_unnorm2[l]->GetBinContent(m) < 0) {bkgd_shape_unnorm2[l]->SetBinContent(m,0.);}
00499 }
00500 signal_for_new2[l]->Add(bkgd_shape_unnorm2[l],-1.);
00501 signal_for_new2[l]->Fit(func2,"RQ");
00502
00503
00504 normt = 0.; normb = 0.;
00505 for (int k=8; k<=10; k++) {
00506 if (bkgd_shape_unnorm3[l]->GetBinContent(k) > 0) {
00507 normt += signal_final2->GetBinContent(k)-signal_in_norm3[k];
00508 normb += bkgd_shape_unnorm3[l]->GetBinContent(k);
00509 }
00510 }
00511 if (normb > 0 && normt > 0) {
00512 float norm = normt/normb;
00513 bkgd_shape_unnorm3[l]->Scale(norm);
00514 }
00515 for (int m=1; m<=49; m++) {
00516 if (bkgd_shape_unnorm3[l]->GetBinContent(m) < 0) {bkgd_shape_unnorm3[l]->SetBinContent(m,0.);}
00517 }
00518 signal_for_new3[l]->Add(bkgd_shape_unnorm3[l],-1.);
00519 signal_for_new3[l]->Fit(func3,"RQ");
00520 }
00521
00522
00523 new_bkgd_hists1[i][j] = (TH1F*)bkgd_shape_unnorm1[19]->Clone();
00524 new_bkgd_hists2[i][j] = (TH1F*)bkgd_shape_unnorm2[19]->Clone();
00525 new_bkgd_hists3[i][j] = (TH1F*)bkgd_shape_unnorm3[19]->Clone();
00526
00527
00528 }
00529
00530
00531 gStyle->SetTitleBorderSize(0);
00532 TCanvas *can6 = new TCanvas("can6","can6",0,0,600,400);
00533 signal_final2->SetStats(kFALSE);
00534 if (charge == 1) {
00535 signal_final2->SetTitle("W+ Background Shapes");
00536 } else if (charge == -1) {
00537 signal_final2->SetTitle("W- Background Shapes");
00538 }
00539 signal_final2->GetXaxis()->SetRangeUser(0.,70.);
00540 signal_final2->GetXaxis()->SetTitle("2x2 Cluster E_{T} (GeV)");
00541 signal_final2->Draw();
00542 for (int i=0; i<=20; i++) {
00543 int j=jval;
00544
00545 new_bkgd_hists1[i][j]->Draw("same");
00546 new_bkgd_hists2[i][j]->Draw("same");
00547 new_bkgd_hists3[i][j]->Draw("same");
00548
00549 }
00550 new_bkgd->SetLineColor(4);
00551
00552 new_bkgd->Draw("same");
00553 if (charge == 1) {
00554
00555
00556 } else if (charge == -1) {
00557
00558
00559 }
00560
00561 TH1F *chi2s = new TH1F("chi2s","chi2s",50,0.,10.);
00562 for (int i=0; i<=20; i++) {
00563 int j=jval;
00564
00565 chi2s->Fill(final_chisquare[i][j]);
00566
00567 }
00568
00569 TCanvas *can7 = new TCanvas("can7","can7",0,0,600,400);
00570 chi2s->Draw();
00571
00572
00573
00574
00575
00576
00577
00578
00579
00580
00581 TH1F *tauhist = MC_dists_repack[2][0]->Clone();
00582
00583
00584
00585 tauhist->Scale(taufrac);
00586 float tau_norm = lumi_fact[2];
00587 float Z_norm = lumi_fact[4];
00588 float bkgd_sum = 0.;
00589 float signal_sum = 0.;
00590 float raw_sum = 0.;
00591 float QCD_sum = 0., tau_sum = 0., eemc_sum = 0.;
00592 float QCD_raw_sum = 0.;
00593 float Wany_bkgd_sum = 0.;
00594 float Wany_eemc_sum = 0.;
00595 float zsig_sum = 0., zeemc_sum = 0.,zback_sum = 0.;
00596 float wanysig_sum = 0., wanyeemc_sum = 0.,wanyback_sum = 0.;
00597 for (int i=13; i<=26; i++) {
00598
00599 bkgd_sum += new_bkgd->GetBinContent(i);
00600
00601 bkgd_sum += eemc_bkgd2->GetBinContent(i);
00602 QCD_raw_sum += bkgd_shape_nom->GetBinContent(i);
00603 QCD_sum += new_bkgd->GetBinContent(i);
00604 tau_sum += tauhist->GetBinContent(i);
00605 eemc_sum += eemc_bkgd2->GetBinContent(i);
00606 signal_sum += signal_final2->GetBinContent(i);
00607 raw_sum += signal2->GetBinContent(i);
00608 zsig_sum += zsig_bkgd2->GetBinContent(i);
00609 zeemc_sum += zeemc_bkgd2->GetBinContent(i);
00610 zback_sum += zback_bkgd2->GetBinContent(i);
00611 wanysig_sum += wanysig_bkgd2->GetBinContent(i);
00612 wanyeemc_sum += wanyeemc_bkgd2->GetBinContent(i);
00613 wanyback_sum += wanyback_bkgd2->GetBinContent(i);
00614
00615 }
00616 cout << "The total background for ET>25 is " << bkgd_sum+zsig_sum << endl;
00617 cout << "QCD = " << QCD_sum << ", tau = " << tau_sum << ", eemc = " << eemc_sum << ", and Z = " << zsig_sum << endl;
00618 cout << "Raw = " << raw_sum << endl;
00619 cout << "W Signal (w/o tau) = " << signal_sum-QCD_sum << endl;
00620 cout << "Z in sig = " << zsig_sum << endl;
00621 cout << "Z in eemc = " << zeemc_sum << endl;
00622 cout << "Z in back = " << zback_sum << endl;
00623 cout << "Wany in sig = " << wanysig_sum << endl;
00624 cout << "Wany in eemc = " << wanyeemc_sum << endl;
00625 cout << "Wany in back = " << wanyback_sum << endl;
00626 cout << "QCD raw in back = " << QCD_raw_sum << endl;
00627 cout << "The QCD stat unc. is " << norm*sqrt(QCD_sum/norm) << endl;
00628 float tau_stat = tau_norm*taufrac*sqrt(tau_sum/(tau_norm*taufrac));
00629 cout << "The tau stat unc. is " << tau_stat << endl;
00630 float eemc_stat = sqrt(eemc_sum);
00631 cout << "The eemc stat unc. is " << eemc_stat << endl;
00632 float Z_stat = Z_norm*sqrt(zsig_sum/Z_norm);
00633 cout << "The Z stat unc. is " << Z_stat << endl;
00634 float tot_stat = sqrt(tau_stat*tau_stat+eemc_stat*eemc_stat+Z_stat*Z_stat);
00635 cout << "tau+eemc+Z stat unc. is " << sqrt(tau_stat*tau_stat+eemc_stat*eemc_stat+Z_stat*Z_stat) << endl;
00636
00637 cout << "f_tau = " << tau_sum/raw_sum << endl;
00638 cout << "f_QCD = " << QCD_sum/raw_sum << endl;
00639 cout << "f_EEMC = " << eemc_sum/raw_sum << endl;
00640 cout << "f_Z = " << zsig_sum/raw_sum << endl;
00641
00642
00643
00644 TH1F *raw_stat_err2 = new TH1F("raw_stat_err2","raw_stat_err2",49,1.,99.);
00645 TH1F *QCD_stat_err2 = new TH1F("QCD_stat_err2","QCD_stat_err2",49,1.,99.);
00646 TH1F *eemc_stat_err2 = new TH1F("eemc_stat_err2","eemc_stat_err2",49,1.,99.);
00647 TH1F *tau_stat_err2 = new TH1F("tau_stat_err2","tau_stat_err2",49,1.,99.);
00648 TH1F *QCD_syst_high_err = new TH1F("QCD_syst_high_err","QCD_syst_high_err",49,1.,99.);
00649 TH1F *QCD_syst_low_err = new TH1F("QCD_syst_low_err","QCD_syst_low_err",49,1.,99.);
00650 TH1F *zsig_stat_err2 = new TH1F("zsig_stat_err2","zsig_stat_err2",49,1.,99.);
00651 TH1F *zback_stat_err2 = new TH1F("zback_stat_err2","zback_stat_err2",49,1.,99.);
00652
00653
00654 for (int i=1; i<=26; i++) {
00655 raw_stat_err2->SetBinContent(i,signal2->GetBinContent(i));
00656 QCD_stat_err2->SetBinContent(i,fabs(norm*new_bkgd->GetBinContent(i)));
00657 eemc_stat_err2->SetBinContent(i,eemc_bkgd2->GetBinContent(i));
00658 tau_stat_err2->SetBinContent(i,tau_norm*taufrac*tauhist->GetBinContent(i));
00659 zsig_stat_err2->SetBinContent(i,Z_norm*zsig_bkgd2->GetBinContent(i));
00660 zback_stat_err2->SetBinContent(i,norm*norm*Z_norm*zback_bkgd2->GetBinContent(i));
00661
00662 }
00663
00664
00665
00666
00667
00668
00669 TH1F *low_bkgd = new_bkgd->Clone();
00670 low_bkgd->SetName("low_bkgd");
00671 TH1F *high_bkgd = new_bkgd->Clone();
00672 high_bkgd->SetName("high_bkgd");
00673
00674 float low_sum = 0.;
00675 float high_sum = 0.;
00676 for (int i=7; i<=49; i++) {
00677 float high = 0.;
00678 float low = 10000.;
00679 for (int j=0; j<=20; j++) {
00680 int k=jval;
00681
00682 if (new_bkgd_hists1[j][k]->GetBinContent(i) < low) {
00683 if (new_bkgd_hists1[j][k]->GetBinContent(i) >= 0) {
00684 low = new_bkgd_hists1[j][k]->GetBinContent(i);
00685 }
00686 }
00687 if (new_bkgd_hists1[j][k]->GetBinContent(i) > high) {
00688 high = new_bkgd_hists1[j][k]->GetBinContent(i);
00689 }
00690
00691 if (new_bkgd_hists2[j][k]->GetBinContent(i) < low) {
00692 if (new_bkgd_hists2[j][k]->GetBinContent(i) >= 0) {
00693 low = new_bkgd_hists2[j][k]->GetBinContent(i);
00694 }
00695 }
00696 if (new_bkgd_hists2[j][k]->GetBinContent(i) > high) {
00697 high = new_bkgd_hists2[j][k]->GetBinContent(i);
00698 }
00699
00700 if (new_bkgd_hists3[j][k]->GetBinContent(i) < low) {
00701 if (new_bkgd_hists3[j][k]->GetBinContent(i) >= 0) {
00702 low = new_bkgd_hists3[j][k]->GetBinContent(i);
00703 }
00704 }
00705 if (new_bkgd_hists3[j][k]->GetBinContent(i) > high) {
00706 high = new_bkgd_hists3[j][k]->GetBinContent(i);
00707 }
00708
00709
00710 }
00711
00712
00713 low_bkgd->SetBinContent(i,0.);
00714 if ((low != 10000) && (new_bkgd->GetBinContent(i)-low > 0)) {
00715 if ((i >= 13)&&(i<=26)) {low_sum += low;}
00716 low_bkgd->SetBinContent(i,low);
00717 }
00718 if ((i >= 13)&&(i<=26)) {high_sum += high;}
00719 high_bkgd->SetBinContent(i,high);
00720 cout << i << " " << low_sum << " " << high_sum << endl;
00721
00722
00723 if ((low != 10000) && (new_bkgd->GetBinContent(i)-low > 0)) {
00724 QCD_syst_low_err->SetBinContent(i,new_bkgd->GetBinContent(i)-low);
00725 } else {
00726 QCD_syst_low_err->SetBinContent(i,0.);
00727 }
00728 QCD_syst_high_err->SetBinContent(i,high-new_bkgd->GetBinContent(i));
00729
00730 }
00731
00732 cout << "QCD shape sys. unc. calc************" << endl;
00733 cout << "The QCD low sum = " << low_sum << endl;
00734 cout << "The QCD high sum = " << high_sum << endl;
00735
00736 cout << "The QCD low error = " << QCD_sum-low_sum << endl;
00737 cout << "The QCD high error = " << high_sum-QCD_sum << endl;
00738
00739 cout << "Total low error = " << sqrt((QCD_sum-low_sum)*(QCD_sum-low_sum)+tot_stat*tot_stat) << endl;
00740 cout << "Total high error = " << sqrt((high_sum-QCD_sum)*(high_sum-QCD_sum)+tot_stat*tot_stat) << endl;
00741
00742
00743
00744
00745
00746
00747 if (charge == 1) {
00748 TFile *f2 = new TFile("bkgd_histos_pos_final.root","recreate");
00749 } else if (charge == -1) {
00750 TFile *f2 = new TFile("bkgd_histos_neg_final.root","recreate");
00751 } else if (charge == 0) {
00752 TFile *f2 = new TFile("bkgd_histos_sum.root","recreate");
00753 }
00754
00755 f2->cd();
00756
00757 if (two_or_four == 2) {
00758
00759 TH1F *signal_final3 = new TH1F("signal_final3","signal_final3",49,1.,99.);
00760 for (int i=1; i<=49; i++) {
00761 signal_final3->SetBinContent(i,signal_final2->GetBinContent(i));
00762 }
00763 signal_final3->Add(new_bkgd,-1.);
00764
00765 tauhist->Write();
00766 zsig->Write();
00767 signal2->Write();
00768 signal_final2->Write();
00769 signal_final3->Write();
00770 eemc_bkgd2->Write();
00771 new_bkgd->Write();
00772 low_bkgd->Write();
00773 high_bkgd->Write();
00774 signal_in_norm_region->Write();
00775
00776 raw_stat_err2->Write();
00777 QCD_stat_err2->Write();
00778 eemc_stat_err2->Write();
00779 tau_stat_err2->Write();
00780 QCD_syst_high_err->Write();
00781 QCD_syst_low_err->Write();
00782 zsig_stat_err2->Write();
00783 zback_stat_err2->Write();
00784
00785 for (int i=1; i<=49; i++) {
00786 cout.setf(ios::fixed);
00787 cout.precision(2);
00788 cout << " " << signal2->GetBinCenter(i) << " & " << signal2->GetBinContent(i) << " & " << signal_final3->GetBinContent(i) << " & " << QCD_stat_err2->GetBinContent(i) << " & " << eemc_stat_err2->GetBinContent(i) << " & " << tau_stat_err2->GetBinContent(i) << " & " << zsig_stat_err2->GetBinContent(i) << " & " << zback_stat_err2->GetBinContent(i) << " & " << QCD_syst_high_err->GetBinContent(i) << " & " << QCD_syst_low_err->GetBinContent(i) << " \\\\" << endl;
00789
00790 }
00791
00792 f2->Close();
00793
00794 } else if (two_or_four == 4) {
00795
00796 TH1F *signal_final3 = new TH1F("signal_final3","signal_final3",49,1.,99.);
00797 for (int i=1; i<=49; i++) {
00798 signal_final3->SetBinContent(i,signal_final2->GetBinContent(i));
00799 }
00800 signal_final3->Add(new_bkgd,-1.);
00801
00802 TH1F *tauhist_repack = new TH1F("tauhist_r","tauhist_r",24,3.,99.);
00803 TH1F *signal2_repack = new TH1F("signal2_r","signal2_r",24,3.,99.);
00804 TH1F *signal_final2_repack = new TH1F("signal_final2_r","signal_final2_r",24,3.,99.);
00805 TH1F *signal_final3_repack = new TH1F("signal_final3_r","signal_final3_r",24,3.,99.);
00806 TH1F *eemc_bkgd2_repack = new TH1F("eemc_bkgd2_r","eemc_bkgd2_r",24,3.,99.);
00807 TH1F *new_bkgd_repack = new TH1F("new_bkgd_r","new_bkgd_r",24,3.,99.);
00808 TH1F *low_bkgd_repack = new TH1F("low_bkgd_r","low_bkgd_r",24,3.,99.);
00809 TH1F *high_bkgd_repack = new TH1F("high_bkgd_r","high_bkgd_r",24,3.,99.);
00810 TH1F *signal_in_norm_region_repack = new TH1F("signal_in_norm_region_r","signal_in_norm_region_r",24,3.,99.);
00811
00812 TH1F *raw_stat_err2_repack = new TH1F("raw_stat_err2_r","raw_stat_err2_r",24,3.,99.);
00813 TH1F *QCD_stat_err2_repack = new TH1F("QCD_stat_err2_r","QCD_stat_err2_r",24,3.,99.);
00814 TH1F *eemc_stat_err2_repack = new TH1F("eemc_stat_err2_r","eemc_stat_err2_r",24,3.,99.);
00815 TH1F *tau_stat_err2_repack = new TH1F("tau_stat_err2_r","tau_stat_err2_r",24,3.,99.);
00816 TH1F *QCD_syst_high_err_repack = new TH1F("QCD_syst_high_err_r","QCD_syst_high_err_r",24,3.,99.);
00817 TH1F *QCD_syst_low_err_repack = new TH1F("QCD_syst_low_err_r","QCD_syst_low_err_r",24,3.,99.);
00818 TH1F *zsig_stat_err2_repack = new TH1F("zsig_stat_err2_r","zsig_stat_err2_r",24,3.,99.);
00819 TH1F *zback_stat_err2_repack = new TH1F("zback_stat_err2_r","zback_stat_err2_r",24,3.,99.);
00820
00821 for (int i=1; i<=24; i++) {
00822 tauhist_repack->SetBinContent(i,tauhist->GetBinContent(2*i)+
00823 tauhist->GetBinContent(2*i+1));;
00824 signal2_repack->SetBinContent(i,signal2->GetBinContent(2*i)+
00825 signal2->GetBinContent(2*i+1));
00826 signal_final2_repack->SetBinContent(i,signal_final2->GetBinContent(2*i)+
00827 signal_final2->GetBinContent(2*i+1));
00828 signal_final3_repack->SetBinContent(i,signal_final3->GetBinContent(2*i)+
00829 signal_final3->GetBinContent(2*i+1));
00830 eemc_bkgd2_repack->SetBinContent(i,eemc_bkgd2->GetBinContent(2*i)+
00831 eemc_bkgd2->GetBinContent(2*i+1));
00832 new_bkgd_repack->SetBinContent(i,new_bkgd->GetBinContent(2*i)+
00833 new_bkgd->GetBinContent(2*i+1));
00834 low_bkgd_repack->SetBinContent(i,low_bkgd->GetBinContent(2*i)+
00835 low_bkgd->GetBinContent(2*i+1));
00836 high_bkgd_repack->SetBinContent(i,high_bkgd->GetBinContent(2*i)+
00837 high_bkgd->GetBinContent(2*i+1));
00838 signal_in_norm_region_repack->SetBinContent(i,signal_in_norm_region->GetBinContent(2*i)+signal_in_norm_region->GetBinContent(2*i+1));
00839
00840 raw_stat_err2_repack->SetBinContent(i,raw_stat_err2->GetBinContent(2*i)+
00841 raw_stat_err2->GetBinContent(2*i+1));
00842 QCD_stat_err2_repack->SetBinContent(i,QCD_stat_err2->GetBinContent(2*i)+
00843 QCD_stat_err2->GetBinContent(2*i+1));
00844 eemc_stat_err2_repack->SetBinContent(i,eemc_stat_err2->GetBinContent(2*i)+
00845 eemc_stat_err2->GetBinContent(2*i+1));
00846 tau_stat_err2_repack->SetBinContent(i,tau_stat_err2->GetBinContent(2*i)+
00847 tau_stat_err2->GetBinContent(2*i+1));
00848 QCD_syst_high_err_repack->SetBinContent(i,QCD_syst_high_err->GetBinContent(2*i)+QCD_syst_high_err->GetBinContent(2*i+1));
00849 QCD_syst_low_err_repack->SetBinContent(i,QCD_syst_low_err->GetBinContent(2*i)+QCD_syst_low_err->GetBinContent(2*i+1));
00850 zsig_stat_err2_repack->SetBinContent(i,zsig_stat_err2->GetBinContent(2*i)+
00851 zback_stat_err2->GetBinContent(2*i+1));
00852 zback_stat_err2_repack->SetBinContent(i,zback_stat_err2->GetBinContent(2*i)+
00853 zback_stat_err2->GetBinContent(2*i+1));
00854 }
00855
00856 tauhist_repack->Write();
00857 signal2_repack->Write();
00858 signal_final2_repack->Write();
00859 signal_final3_repack->Write();
00860 eemc_bkgd2_repack->Write();
00861 new_bkgd_repack->Write();
00862 low_bkgd_repack->Write();
00863 high_bkgd_repack->Write();
00864 signal_in_norm_region_repack->Write();
00865
00866 raw_stat_err2_repack->Write();
00867 QCD_stat_err2_repack->Write();
00868 eemc_stat_err2_repack->Write();
00869 tau_stat_err2_repack->Write();
00870 QCD_syst_high_err_repack->Write();
00871 QCD_syst_low_err_repack->Write();
00872 zsig_stat_err2_repack->Write();
00873 zback_stat_err2_repack->Write();
00874
00875 for (int i=1; i<=24; i++) {
00876 cout.setf(ios::fixed);
00877 cout.precision(2);
00878 cout << " " << signal2_repack->GetBinCenter(i) << " & " << signal2_repack->GetBinContent(i) << " & " << signal_final3_repack->GetBinContent(i) << " & " << QCD_stat_err2_repack->GetBinContent(i) << " & " << eemc_stat_err2_repack->GetBinContent(i) << " & " << tau_stat_err2_repack->GetBinContent(i) << " & " << zsig_stat_err2_repack->GetBinContent(i) << " & " << zback_stat_err2_repack->GetBinContent(i) << " & " << QCD_syst_high_err_repack->GetBinContent(i) << " & " << QCD_syst_low_err_repack->GetBinContent(i) << " \\\\" << endl;
00879 }
00880
00881 f2->Close();
00882
00883 }
00884
00885
00886 }