/ElectroWeakAnalysis/ZEE/test/StabilityPlots.cpp

https://github.com/aivanov-cern/cmssw · C++ · 478 lines · 340 code · 31 blank · 107 comment · 3 complexity · 8018d224b613a722f33dd9c8dda14286 MD5 · raw file

  1. #include "TFile.h"
  2. #include "TGraphErrors.h"
  3. #include "TVectorT.h"
  4. #include "TH1.h"
  5. #include "TLegend.h"
  6. #include "TCanvas.h"
  7. #include <iostream>
  8. #include <iomanip>
  9. #include <fstream>
  10. #include <cmath>
  11. using namespace std;
  12. void StabilityPlots()
  13. {
  14. ofstream CaloMET("CaloMET.txt");
  15. ofstream TcMET("TcMET.txt");
  16. //ofstream T1MET("T1MET.txt");
  17. ofstream PfMET("PfMET.txt");
  18. CaloMET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl;
  19. TcMET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl;
  20. //T1MET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl;
  21. PfMET << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl;
  22. cout << setprecision(3);
  23. CaloMET << setprecision(3);
  24. TcMET << setprecision(3);
  25. //T1MET << setprecision(3);
  26. PfMET << setprecision(3);
  27. TVectorT<double> metcut(11), metcuterror(11);
  28. TVectorT<double> f_calo_ersatz(11), df_calo_ersatz(11), eff_calo_ersatz(11), deff_calo_ersatz(11), deltaf_calo_ersatz(11);
  29. TVectorT<double> fprime_calo_ersatz(11), dfprime_calo_ersatz(11), effprime_calo_ersatz(11), deffprime_calo_ersatz(11), deltafprime_calo_ersatz(11);
  30. TVectorT<double> f_tc_ersatz(11), df_tc_ersatz(11), eff_tc_ersatz(11), deff_tc_ersatz(11), deltaf_tc_ersatz(11);
  31. TVectorT<double> fprime_tc_ersatz(11), dfprime_tc_ersatz(11), effprime_tc_ersatz(11), deffprime_tc_ersatz(11), deltafprime_tc_ersatz(11);
  32. //TVectorT<double> f_t1_ersatz(11), df_t1_ersatz(11), eff_t1_ersatz(11), deff_t1_ersatz(11), deltaf_t1_ersatz(11);
  33. //TVectorT<double> fprime_t1_ersatz(11), dfprime_t1_ersatz(11), effprime_t1_ersatz(11), deffprime_t1_ersatz(11), deltafprime_t1_ersatz(11);
  34. TVectorT<double> f_pf_ersatz(11), df_pf_ersatz(11), eff_pf_ersatz(11), deff_pf_ersatz(11), deltaf_pf_ersatz(11);
  35. TVectorT<double> fprime_pf_ersatz(11), dfprime_pf_ersatz(11), effprime_pf_ersatz(11), deffprime_pf_ersatz(11), deltafprime_pf_ersatz(11);
  36. TFile* file = TFile::Open("ZeePlots.root");
  37. TH1F* h_ErsatzCaloMEt_pass = (TH1F*) file->Get("ErsatzMEt_pass");
  38. TH1F* h_ErsatzCaloMEt_fail = (TH1F*) file->Get("ErsatzMEt_fail");
  39. TH1F* h_WCaloMEt_pass = (TH1F*) file->Get("WCaloMEt_pass");
  40. TH1F* h_WCaloMEt_fail = (TH1F*) file->Get("WCaloMEt_fail");
  41. TH1F* h_ErsatzTcMEt_pass = (TH1F*) file->Get("ErsatzTcMEt_pass");
  42. TH1F* h_ErsatzTcMEt_fail = (TH1F*) file->Get("ErsatzTcMEt_fail");
  43. TH1F* h_WTcMEt_pass = (TH1F*) file->Get("WTcMEt_pass");
  44. TH1F* h_WTcMEt_fail = (TH1F*) file->Get("WTcMEt_fail");
  45. //TH1F* h_ErsatzT1MEt_pass = (TH1F*) file->Get("ErsatzT1MEt_pass");
  46. //TH1F* h_ErsatzT1MEt_fail = (TH1F*) file->Get("ErsatzT1MEt_fail");
  47. //TH1F* h_WT1MEt_pass = (TH1F*) file->Get("WT1MEt_pass");
  48. //TH1F* h_WT1MEt_fail = (TH1F*) file->Get("WT1MEt_fail");
  49. TH1F* h_ErsatzPfMEt_pass = (TH1F*) file->Get("ErsatzPfMEt_pass");
  50. TH1F* h_ErsatzPfMEt_fail = (TH1F*) file->Get("ErsatzPfMEt_fail");
  51. TH1F* h_WPfMEt_pass = (TH1F*) file->Get("WPfMEt_pass");
  52. TH1F* h_WPfMEt_fail = (TH1F*) file->Get("WPfMEt_fail");
  53. for(int i=0; i<102; i++)
  54. {
  55. cout << h_WCaloMEt_pass->GetBinContent(i) << endl;
  56. }
  57. cout << "sum = " << h_WCaloMEt_pass->Integral(21,100) << endl;
  58. for(int i=0; i<102; i++)
  59. {
  60. cout << h_WCaloMEt_fail->GetBinContent(i) << endl;
  61. }
  62. cout << "sum = " << h_WCaloMEt_fail->Integral(21,100) << endl;
  63. int i = 0;
  64. double a_calo_ersatz, a_calo_true;
  65. double a_tc_ersatz, a_tc_true;
  66. //double a_t1_ersatz, a_t1_true;
  67. double a_pf_ersatz, a_pf_true;
  68. double b_calo_ersatz, b_calo_true;
  69. double b_tc_ersatz, b_tc_true;
  70. //double b_t1_ersatz, b_t1_true;
  71. double b_pf_ersatz, b_pf_true;
  72. double c_calo_ersatz, c_calo_true;
  73. double c_tc_ersatz, c_tc_true;
  74. //double c_t1_ersatz, c_t1_true;
  75. double c_pf_ersatz, c_pf_true;
  76. double d_calo_ersatz, d_calo_true;
  77. double d_tc_ersatz, d_tc_true;
  78. //double d_t1_ersatz, d_t1_true;
  79. double d_pf_ersatz, d_pf_true;
  80. cout << "mooooooooo" << endl;
  81. for(int cMET=20; cMET<41; cMET+=2)
  82. {
  83. a_calo_ersatz = h_ErsatzCaloMEt_pass->Integral(cMET+1, 100); // Problem Here
  84. a_tc_ersatz = h_ErsatzTcMEt_pass->Integral(cMET+1, 100);
  85. //a_t1_ersatz = h_ErsatzT1MEt_pass->Integral(cMET+1, 100);
  86. a_pf_ersatz = h_ErsatzPfMEt_pass->Integral(cMET+1, 100);
  87. cout << "mooooooooo" << endl;
  88. a_calo_true = h_WCaloMEt_pass->Integral(cMET+1, 100);
  89. a_tc_true = h_WTcMEt_pass->Integral(cMET+1, 100);
  90. //a_t1_true = h_WT1MEt_pass->Integral(cMET+1, 100);
  91. a_pf_true = h_WPfMEt_pass->Integral(cMET+1, 100);
  92. cout << "mooooooooo" << endl;
  93. b_calo_ersatz = h_ErsatzCaloMEt_pass->Integral(1, cMET);
  94. b_tc_ersatz = h_ErsatzTcMEt_pass->Integral(1, cMET);
  95. //b_t1_ersatz = h_ErsatzT1MEt_pass->Integral(1, cMET);
  96. b_pf_ersatz = h_ErsatzPfMEt_pass->Integral(1, cMET);
  97. cout << "mooooooooo" << endl;
  98. b_calo_true = h_WCaloMEt_pass->Integral(1, cMET);
  99. b_tc_true = h_WTcMEt_pass->Integral(1, cMET);
  100. //b_t1_true = h_WT1MEt_pass->Integral(1, cMET);
  101. b_pf_true = h_WPfMEt_pass->Integral(1, cMET);
  102. cout << "mooooooooo" << endl;
  103. c_calo_ersatz = h_ErsatzCaloMEt_fail->Integral(1, cMET);
  104. c_tc_ersatz = h_ErsatzTcMEt_fail->Integral(1, cMET);
  105. //c_t1_ersatz = h_ErsatzT1MEt_fail->Integral(1, cMET);
  106. c_pf_ersatz = h_ErsatzPfMEt_fail->Integral(1, cMET);
  107. cout << "mooooooooo" << endl;
  108. c_calo_true = h_WCaloMEt_fail->Integral(1, cMET);
  109. c_tc_true = h_WTcMEt_fail->Integral(1, cMET);
  110. //c_t1_true = h_WT1MEt_fail->Integral(1, cMET);
  111. c_pf_true = h_WPfMEt_fail->Integral(1, cMET);
  112. cout << "mooooooooo" << endl;
  113. d_calo_ersatz = h_ErsatzCaloMEt_fail->Integral(cMET+1, 100);
  114. d_tc_ersatz = h_ErsatzTcMEt_fail->Integral(cMET+1, 100);
  115. //d_t1_ersatz = h_ErsatzT1MEt_fail->Integral(cMET+1, 100);
  116. d_pf_ersatz = h_ErsatzPfMEt_fail->Integral(cMET+1, 100);
  117. cout << "mooooooooo" << endl;
  118. d_calo_true = h_WCaloMEt_fail->Integral(cMET+1, 100);
  119. d_tc_true = h_WTcMEt_fail->Integral(cMET+1, 100);
  120. //d_t1_true = h_WT1MEt_fail->Integral(cMET+1, 100);
  121. d_pf_true = h_WPfMEt_fail->Integral(cMET+1, 100);
  122. cout << "mooooooooo" << endl;
  123. metcut[i] = 1.0*cMET;
  124. metcuterror[i] = 0.0;
  125. eff_calo_ersatz[i] = a_calo_ersatz/(a_calo_ersatz + b_calo_ersatz);
  126. deff_calo_ersatz[i] = sqrt(eff_calo_ersatz[i]*(1. - eff_calo_ersatz[i])/(a_calo_ersatz + b_calo_ersatz));
  127. f_calo_ersatz[i] = a_calo_ersatz/b_calo_ersatz;
  128. df_calo_ersatz[i] = deff_calo_ersatz[i]/((1. - eff_calo_ersatz[i])*(1. - eff_calo_ersatz[i]));
  129. deltaf_calo_ersatz[i] = a_calo_ersatz/b_calo_ersatz - a_calo_true/b_calo_true;
  130. effprime_calo_ersatz[i] = d_calo_ersatz/(d_calo_ersatz + c_calo_ersatz);
  131. deffprime_calo_ersatz[i] = sqrt(effprime_calo_ersatz[i]*(1. - effprime_calo_ersatz[i])/(d_calo_ersatz + c_calo_ersatz));
  132. fprime_calo_ersatz[i] = d_calo_ersatz/c_calo_ersatz;
  133. dfprime_calo_ersatz[i] = deffprime_calo_ersatz[i]/((1. - effprime_calo_ersatz[i])*(1. - effprime_calo_ersatz[i]));
  134. deltafprime_calo_ersatz[i] = d_calo_ersatz/c_calo_ersatz - d_calo_true/c_calo_true;
  135. eff_tc_ersatz[i] = a_tc_ersatz/(a_tc_ersatz + b_tc_ersatz);
  136. deff_tc_ersatz[i] = sqrt(eff_tc_ersatz[i]*(1. - eff_tc_ersatz[i])/(a_tc_ersatz + b_tc_ersatz));
  137. f_tc_ersatz[i] = a_tc_ersatz/b_tc_ersatz;
  138. df_tc_ersatz[i] = deff_tc_ersatz[i]/((1. - eff_tc_ersatz[i])*(1. - eff_tc_ersatz[i]));
  139. deltaf_tc_ersatz[i] = a_tc_ersatz/b_tc_ersatz - a_tc_true/b_tc_true;
  140. effprime_tc_ersatz[i] = d_tc_ersatz/(d_tc_ersatz + c_tc_ersatz);
  141. deffprime_tc_ersatz[i] = sqrt(effprime_tc_ersatz[i]*(1. - effprime_tc_ersatz[i])/(d_tc_ersatz + c_tc_ersatz));
  142. fprime_tc_ersatz[i] = d_tc_ersatz/c_tc_ersatz;
  143. dfprime_tc_ersatz[i] = deffprime_tc_ersatz[i]/((1. - effprime_tc_ersatz[i])*(1. - effprime_tc_ersatz[i]));
  144. deltafprime_tc_ersatz[i] = d_tc_ersatz/c_tc_ersatz - d_tc_true/c_tc_true;
  145. /*
  146. eff_t1_ersatz[i] = a_t1_ersatz/(a_t1_ersatz + b_t1_ersatz);
  147. deff_t1_ersatz[i] = sqrt(eff_t1_ersatz[i]*(1. - eff_t1_ersatz[i])/(a_t1_ersatz + b_t1_ersatz));
  148. f_t1_ersatz[i] = a_t1_ersatz/b_t1_ersatz;
  149. df_t1_ersatz[i] = deff_t1_ersatz[i]/((1. - eff_t1_ersatz[i])*(1. - eff_t1_ersatz[i]));
  150. deltaf_t1_ersatz[i] = a_t1_ersatz/b_t1_ersatz - a_t1_true/b_t1_true;
  151. effprime_t1_ersatz[i] = d_t1_ersatz/(d_t1_ersatz + c_t1_ersatz);
  152. deffprime_t1_ersatz[i] = sqrt(effprime_t1_ersatz[i]*(1. - effprime_t1_ersatz[i])/(d_t1_ersatz + c_t1_ersatz));
  153. fprime_t1_ersatz[i] = d_t1_ersatz/c_t1_ersatz;
  154. dfprime_t1_ersatz[i] = deffprime_t1_ersatz[i]/((1. - effprime_t1_ersatz[i])*(1. - effprime_t1_ersatz[i]));
  155. deltafprime_t1_ersatz[i] = d_t1_ersatz/c_t1_ersatz - d_t1_true/c_t1_true;
  156. */
  157. eff_pf_ersatz[i] = a_pf_ersatz/(a_pf_ersatz + b_pf_ersatz);
  158. deff_pf_ersatz[i] = sqrt(eff_pf_ersatz[i]*(1. - eff_pf_ersatz[i])/(a_pf_ersatz + b_pf_ersatz));
  159. f_pf_ersatz[i] = a_pf_ersatz/b_pf_ersatz;
  160. df_pf_ersatz[i] = deff_pf_ersatz[i]/((1. - eff_pf_ersatz[i])*(1. - eff_pf_ersatz[i]));
  161. deltaf_pf_ersatz[i] = a_pf_ersatz/b_pf_ersatz - a_pf_true/b_pf_true;
  162. effprime_pf_ersatz[i] = d_pf_ersatz/(d_pf_ersatz + c_pf_ersatz);
  163. deffprime_pf_ersatz[i] = sqrt(effprime_pf_ersatz[i]*(1. - effprime_pf_ersatz[i])/(d_pf_ersatz + c_pf_ersatz));
  164. fprime_pf_ersatz[i] = d_pf_ersatz/c_pf_ersatz;
  165. dfprime_pf_ersatz[i] = deffprime_pf_ersatz[i]/((1. - effprime_pf_ersatz[i])*(1. - effprime_pf_ersatz[i]));
  166. deltafprime_pf_ersatz[i] = d_pf_ersatz/c_pf_ersatz - d_pf_true/c_pf_true;
  167. cout << "CaloMEt " << cMET << endl;
  168. cout << "MET cut\tftrue\tf\tdf\teff\tdeff\ta\tb\tnpass\tf'true\tf'\tdf'\teff'\tdeff'\td\tc\tnfail" << endl;
  169. cout << cMET << "\t"
  170. << a_calo_true/b_calo_true << "\t"
  171. << f_calo_ersatz[i] << "\t" << df_calo_ersatz[i] << "\t"
  172. << eff_calo_ersatz[i] << "\t" << deff_calo_ersatz[i] << "\t"
  173. << a_calo_ersatz << "\t" << b_calo_ersatz << "\t" << a_calo_ersatz + b_calo_ersatz << "\t"
  174. << d_calo_true/c_calo_true << "\t"
  175. << fprime_calo_ersatz[i] << "\t" << dfprime_calo_ersatz[i] << "\t"
  176. << effprime_calo_ersatz[i] << "\t" << deffprime_calo_ersatz[i] << "\t"
  177. << d_calo_ersatz << "\t" << c_calo_ersatz << "\t" << d_calo_ersatz + c_calo_ersatz << endl;
  178. cout << cMET << "\t"
  179. << a_tc_true/b_tc_true << "\t"
  180. << f_tc_ersatz[i] << "\t" << df_tc_ersatz[i] << "\t"
  181. << eff_tc_ersatz[i] << "\t" << deff_tc_ersatz[i] << "\t"
  182. << a_tc_ersatz << "\t" << b_tc_ersatz << "\t" << a_tc_ersatz + b_tc_ersatz << "\t"
  183. << d_tc_true/c_tc_true << "\t"
  184. << fprime_tc_ersatz[i] << "\t" << dfprime_tc_ersatz[i] << "\t"
  185. << effprime_tc_ersatz[i] << "\t" << deffprime_tc_ersatz[i] << "\t"
  186. << d_tc_ersatz << "\t" << c_tc_ersatz << "\t" << d_tc_ersatz + c_tc_ersatz << endl;
  187. /* cout << cMET << "\t"
  188. << a_t1_true/b_t1_true << "\t"
  189. << f_t1_ersatz[i] << "\t" << df_t1_ersatz[i] << "\t"
  190. << eff_t1_ersatz[i] << "\t" << deff_t1_ersatz[i] << "\t"
  191. << a_t1_ersatz << "\t" << b_t1_ersatz << "\t" << a_t1_ersatz + b_t1_ersatz << "\t"
  192. << d_t1_true/c_t1_true << "\t"
  193. << fprime_t1_ersatz[i] << "\t" << dfprime_t1_ersatz[i] << "\t"
  194. << effprime_t1_ersatz[i] << "\t" << deffprime_t1_ersatz[i] << "\t"
  195. << d_t1_ersatz << "\t" << c_t1_ersatz << "\t" << d_t1_ersatz + c_t1_ersatz << endl; */
  196. cout << cMET << "\t"
  197. << a_pf_true/b_pf_true << "\t"
  198. << f_pf_ersatz[i] << "\t" << df_pf_ersatz[i] << "\t"
  199. << eff_pf_ersatz[i] << "\t" << deff_pf_ersatz[i] << "\t"
  200. << a_pf_ersatz << "\t" << b_pf_ersatz << "\t" << a_pf_ersatz + b_pf_ersatz << "\t"
  201. << d_pf_true/c_pf_true << "\t"
  202. << fprime_pf_ersatz[i] << "\t" << dfprime_pf_ersatz[i] << "\t"
  203. << effprime_pf_ersatz[i] << "\t" << deffprime_pf_ersatz[i] << "\t"
  204. << d_pf_ersatz << "\t" << c_pf_ersatz << "\t" << d_pf_ersatz + c_pf_ersatz << endl;
  205. CaloMET << cMET << "\t"
  206. << a_calo_true/b_calo_true << "\t"
  207. << f_calo_ersatz[i] << "\t" << df_calo_ersatz[i] << "\t"
  208. << eff_calo_ersatz[i] << "\t" << deff_calo_ersatz[i] << "\t"
  209. << a_calo_ersatz << "\t" << b_calo_ersatz << "\t" << a_calo_ersatz + b_calo_ersatz << "\t"
  210. << d_calo_true/c_calo_true << "\t"
  211. << fprime_calo_ersatz[i] << "\t" << dfprime_calo_ersatz[i] << "\t"
  212. << effprime_calo_ersatz[i] << "\t" << deffprime_calo_ersatz[i] << "\t"
  213. << d_calo_ersatz << "\t" << c_calo_ersatz << "\t" << d_calo_ersatz + c_calo_ersatz << endl;
  214. TcMET << cMET << "\t"
  215. << a_tc_true/b_tc_true << "\t"
  216. << f_tc_ersatz[i] << "\t" << df_tc_ersatz[i] << "\t"
  217. << eff_tc_ersatz[i] << "\t" << deff_tc_ersatz[i] << "\t"
  218. << a_tc_ersatz << "\t" << b_tc_ersatz << "\t" << a_tc_ersatz + b_tc_ersatz << "\t"
  219. << d_tc_true/c_tc_true << "\t"
  220. << fprime_tc_ersatz[i] << "\t" << dfprime_tc_ersatz[i] << "\t"
  221. << effprime_tc_ersatz[i] << "\t" << deffprime_tc_ersatz[i] << "\t"
  222. << d_tc_ersatz << "\t" << c_tc_ersatz << "\t" << d_tc_ersatz + c_tc_ersatz << endl;
  223. /* T1MET << cMET << "\t"
  224. << a_t1_true/b_t1_true << "\t"
  225. << f_t1_ersatz[i] << "\t" << df_t1_ersatz[i] << "\t"
  226. << eff_t1_ersatz[i] << "\t" << deff_t1_ersatz[i] << "\t"
  227. << a_t1_ersatz << "\t" << b_t1_ersatz << "\t" << a_t1_ersatz + b_t1_ersatz << "\t"
  228. << d_t1_true/c_t1_true << "\t"
  229. << fprime_t1_ersatz[i] << "\t" << dfprime_t1_ersatz[i] << "\t"
  230. << effprime_t1_ersatz[i] << "\t" << deffprime_t1_ersatz[i] << "\t"
  231. << d_t1_ersatz << "\t" << c_t1_ersatz << "\t" << d_t1_ersatz + c_t1_ersatz << endl;*/
  232. PfMET << cMET << "\t"
  233. << a_pf_true/b_pf_true << "\t"
  234. << f_pf_ersatz[i] << "\t" << df_pf_ersatz[i] << "\t"
  235. << eff_pf_ersatz[i] << "\t" << deff_pf_ersatz[i] << "\t"
  236. << a_pf_ersatz << "\t" << b_pf_ersatz << "\t" << a_pf_ersatz + b_pf_ersatz << "\t"
  237. << d_pf_true/c_pf_true << "\t"
  238. << fprime_pf_ersatz[i] << "\t" << dfprime_pf_ersatz[i] << "\t"
  239. << effprime_pf_ersatz[i] << "\t" << deffprime_pf_ersatz[i] << "\t"
  240. << d_pf_ersatz << "\t" << c_pf_ersatz << "\t" << d_pf_ersatz + c_pf_ersatz << endl;
  241. i++;
  242. }
  243. TCanvas* c_calo_f = new TCanvas("calo_f", "", 800, 600);
  244. TGraphErrors* g_calo_f = new TGraphErrors(metcut, f_calo_ersatz, metcuterror, df_calo_ersatz);
  245. g_calo_f->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  246. g_calo_f->GetYaxis()->SetTitle("f_{ersatz}");
  247. g_calo_f->Draw("ap");
  248. c_calo_f->SaveAs("calo_f.png");
  249. delete g_calo_f;
  250. delete c_calo_f;
  251. TCanvas* c_calo_eff = new TCanvas("calo_eff", "", 800, 600);
  252. TGraphErrors* g_calo_eff = new TGraphErrors(metcut, eff_calo_ersatz, metcuterror, deff_calo_ersatz);
  253. g_calo_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  254. g_calo_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}");
  255. g_calo_eff->Draw("ap");
  256. c_calo_eff->SaveAs("calo_eff.png");
  257. delete g_calo_eff;
  258. delete c_calo_eff;
  259. TCanvas* c_calo_deltaf = new TCanvas("calo_deltaf", "", 800, 600);
  260. TGraphErrors* g_calo_deltaf = new TGraphErrors(metcut, deltaf_calo_ersatz, metcuterror, df_calo_ersatz);
  261. g_calo_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  262. g_calo_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}");
  263. g_calo_deltaf->Draw("ap");
  264. c_calo_deltaf->SaveAs("calo_deltaf.png");
  265. delete g_calo_deltaf;
  266. delete c_calo_deltaf;
  267. TCanvas* c_calo_fprime = new TCanvas("calo_fprime", "", 800, 600);
  268. TGraphErrors* g_calo_fprime = new TGraphErrors(metcut, fprime_calo_ersatz, metcuterror, dfprime_calo_ersatz);
  269. g_calo_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  270. g_calo_fprime->GetYaxis()->SetTitle("f'_{ersatz}");
  271. g_calo_fprime->Draw("ap");
  272. c_calo_fprime->SaveAs("calo_fprime.png");
  273. delete g_calo_fprime;
  274. delete c_calo_fprime;
  275. TCanvas* c_calo_effprime = new TCanvas("calo_effprime", "", 800, 600);
  276. TGraphErrors* g_calo_effprime = new TGraphErrors(metcut, effprime_calo_ersatz, metcuterror, deffprime_calo_ersatz);
  277. g_calo_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  278. g_calo_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}");
  279. g_calo_effprime->Draw("ap");
  280. c_calo_effprime->SaveAs("calo_effprime.png");
  281. delete g_calo_effprime;
  282. delete c_calo_effprime;
  283. TCanvas* c_calo_deltafprime = new TCanvas("calo_deltafprime", "", 800, 600);
  284. TGraphErrors* g_calo_deltafprime = new TGraphErrors(metcut, deltafprime_calo_ersatz, metcuterror, dfprime_calo_ersatz);
  285. g_calo_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  286. g_calo_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}");
  287. g_calo_deltafprime->Draw("ap");
  288. c_calo_deltafprime->SaveAs("calo_deltafprime.png");
  289. delete g_calo_deltafprime;
  290. delete c_calo_deltafprime;
  291. TCanvas* c_tc_f = new TCanvas("tc_f", "", 800, 600);
  292. TGraphErrors* g_tc_f = new TGraphErrors(metcut, f_tc_ersatz, metcuterror, df_tc_ersatz);
  293. g_tc_f->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  294. g_tc_f->GetYaxis()->SetTitle("f_{ersatz}");
  295. g_tc_f->Draw("ap");
  296. c_tc_f->SaveAs("tc_f.png");
  297. delete g_tc_f;
  298. delete c_tc_f;
  299. TCanvas* c_tc_eff = new TCanvas("tc_eff", "", 800, 600);
  300. TGraphErrors* g_tc_eff = new TGraphErrors(metcut, eff_tc_ersatz, metcuterror, deff_tc_ersatz);
  301. g_tc_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  302. g_tc_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}");
  303. g_tc_eff->Draw("ap");
  304. c_tc_eff->SaveAs("tc_eff.png");
  305. delete g_tc_eff;
  306. delete c_tc_eff;
  307. TCanvas* c_tc_deltaf = new TCanvas("tc_deltaf", "", 800, 600);
  308. TGraphErrors* g_tc_deltaf = new TGraphErrors(metcut, deltaf_tc_ersatz, metcuterror, df_tc_ersatz);
  309. g_tc_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  310. g_tc_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}");
  311. g_tc_deltaf->Draw("ap");
  312. c_tc_deltaf->SaveAs("tc_deltaf.png");
  313. delete g_tc_deltaf;
  314. delete c_tc_deltaf;
  315. TCanvas* c_tc_fprime = new TCanvas("tc_fprime", "", 800, 600);
  316. TGraphErrors* g_tc_fprime = new TGraphErrors(metcut, fprime_tc_ersatz, metcuterror, dfprime_tc_ersatz);
  317. g_tc_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  318. g_tc_fprime->GetYaxis()->SetTitle("f'_{ersatz}");
  319. g_tc_fprime->Draw("ap");
  320. c_tc_fprime->SaveAs("tc_fprime.png");
  321. delete g_tc_fprime;
  322. delete c_tc_fprime;
  323. TCanvas* c_tc_effprime = new TCanvas("tc_effprime", "", 800, 600);
  324. TGraphErrors* g_tc_effprime = new TGraphErrors(metcut, effprime_tc_ersatz, metcuterror, deffprime_tc_ersatz);
  325. g_tc_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  326. g_tc_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}");
  327. g_tc_effprime->Draw("ap");
  328. c_tc_effprime->SaveAs("tc_effprime.png");
  329. delete g_tc_effprime;
  330. delete c_tc_effprime;
  331. TCanvas* c_tc_deltafprime = new TCanvas("tc_deltafprime", "", 800, 600);
  332. TGraphErrors* g_tc_deltafprime = new TGraphErrors(metcut, deltafprime_tc_ersatz, metcuterror, dfprime_tc_ersatz);
  333. g_tc_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  334. g_tc_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}");
  335. g_tc_deltafprime->Draw("ap");
  336. c_tc_deltafprime->SaveAs("tc_deltafprime.png");
  337. delete g_tc_deltafprime;
  338. delete c_tc_deltafprime;
  339. /*
  340. TCanvas* c_t1_f = new TCanvas("t1_f", "", 800, 600);
  341. TGraphErrors* g_t1_f = new TGraphErrors(metcut, f_t1_ersatz, metcuterror, df_t1_ersatz);
  342. g_t1_f->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  343. g_t1_f->GetYaxis()->SetTitle("f_{ersatz}");
  344. g_t1_f->Draw("ap");
  345. c_t1_f->SaveAs("t1_f.png");
  346. delete g_t1_f;
  347. delete c_t1_f;
  348. TCanvas* c_t1_eff = new TCanvas("t1_eff", "", 800, 600);
  349. TGraphErrors* g_t1_eff = new TGraphErrors(metcut, eff_t1_ersatz, metcuterror, deff_t1_ersatz);
  350. g_t1_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  351. g_t1_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}");
  352. g_t1_eff->Draw("ap");
  353. c_t1_eff->SaveAs("t1_eff.png");
  354. delete g_t1_eff;
  355. delete c_t1_eff;
  356. TCanvas* c_t1_deltaf = new TCanvas("t1_deltaf", "", 800, 600);
  357. TGraphErrors* g_t1_deltaf = new TGraphErrors(metcut, deltaf_t1_ersatz, metcuterror, df_t1_ersatz);
  358. g_t1_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  359. g_t1_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}");
  360. g_t1_deltaf->Draw("ap");
  361. c_t1_deltaf->SaveAs("t1_deltaf.png");
  362. delete g_t1_deltaf;
  363. delete c_t1_deltaf;
  364. TCanvas* c_t1_fprime = new TCanvas("t1_fprime", "", 800, 600);
  365. TGraphErrors* g_t1_fprime = new TGraphErrors(metcut, fprime_t1_ersatz, metcuterror, dfprime_t1_ersatz);
  366. g_t1_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  367. g_t1_fprime->GetYaxis()->SetTitle("f'_{ersatz}");
  368. g_t1_fprime->Draw("ap");
  369. c_t1_fprime->SaveAs("t1_fprime.png");
  370. delete g_t1_fprime;
  371. delete c_t1_fprime;
  372. TCanvas* c_t1_effprime = new TCanvas("t1_effprime", "", 800, 600);
  373. TGraphErrors* g_t1_effprime = new TGraphErrors(metcut, effprime_t1_ersatz, metcuterror, deffprime_t1_ersatz);
  374. g_t1_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  375. g_t1_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}");
  376. g_t1_effprime->Draw("ap");
  377. c_t1_effprime->SaveAs("t1_effprime.png");
  378. delete g_t1_effprime;
  379. delete c_t1_effprime;
  380. TCanvas* c_t1_deltafprime = new TCanvas("t1_deltafprime", "", 800, 600);
  381. TGraphErrors* g_t1_deltafprime = new TGraphErrors(metcut, deltafprime_t1_ersatz, metcuterror, dfprime_t1_ersatz);
  382. g_t1_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  383. g_t1_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}");
  384. g_t1_deltafprime->Draw("ap");
  385. c_t1_deltafprime->SaveAs("t1_deltafprime.png");
  386. delete g_t1_deltafprime;
  387. delete c_t1_deltafprime;
  388. */
  389. TCanvas* c_pf_f = new TCanvas("pf_f", "", 800, 600);
  390. TGraphErrors* g_pf_f = new TGraphErrors(metcut, f_pf_ersatz, metcuterror, df_pf_ersatz);
  391. g_pf_f->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  392. g_pf_f->GetYaxis()->SetTitle("f_{ersatz}");
  393. g_pf_f->Draw("ap");
  394. c_pf_f->SaveAs("pf_f.png");
  395. delete g_pf_f;
  396. delete c_pf_f;
  397. TCanvas* c_pf_eff = new TCanvas("pf_eff", "", 800, 600);
  398. TGraphErrors* g_pf_eff = new TGraphErrors(metcut, eff_pf_ersatz, metcuterror, deff_pf_ersatz);
  399. g_pf_eff->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  400. g_pf_eff->GetYaxis()->SetTitle("#epsilon_{ersatz}");
  401. g_pf_eff->Draw("ap");
  402. c_pf_eff->SaveAs("pf_eff.png");
  403. delete g_pf_eff;
  404. delete c_pf_eff;
  405. TCanvas* c_pf_deltaf = new TCanvas("pf_deltaf", "", 800, 600);
  406. TGraphErrors* g_pf_deltaf = new TGraphErrors(metcut, deltaf_pf_ersatz, metcuterror, df_pf_ersatz);
  407. g_pf_deltaf->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  408. g_pf_deltaf->GetYaxis()->SetTitle("f_{ersatz} - f_{W#rightarrowe#nu}");
  409. g_pf_deltaf->Draw("ap");
  410. c_pf_deltaf->SaveAs("pf_deltaf.png");
  411. delete g_pf_deltaf;
  412. delete c_pf_deltaf;
  413. TCanvas* c_pf_fprime = new TCanvas("pf_fprime", "", 800, 600);
  414. TGraphErrors* g_pf_fprime = new TGraphErrors(metcut, fprime_pf_ersatz, metcuterror, dfprime_pf_ersatz);
  415. g_pf_fprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  416. g_pf_fprime->GetYaxis()->SetTitle("f'_{ersatz}");
  417. g_pf_fprime->Draw("ap");
  418. c_pf_fprime->SaveAs("pf_fprime.png");
  419. delete g_pf_fprime;
  420. delete c_pf_fprime;
  421. TCanvas* c_pf_effprime = new TCanvas("pf_effprime", "", 800, 600);
  422. TGraphErrors* g_pf_effprime = new TGraphErrors(metcut, effprime_pf_ersatz, metcuterror, deffprime_pf_ersatz);
  423. g_pf_effprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  424. g_pf_effprime->GetYaxis()->SetTitle("#epsilon'_{ersatz}");
  425. g_pf_effprime->Draw("ap");
  426. c_pf_effprime->SaveAs("pf_effprime.png");
  427. delete g_pf_effprime;
  428. delete c_pf_effprime;
  429. TCanvas* c_pf_deltafprime = new TCanvas("pf_deltafprime", "", 800, 600);
  430. TGraphErrors* g_pf_deltafprime = new TGraphErrors(metcut, deltafprime_pf_ersatz, metcuterror, dfprime_pf_ersatz);
  431. g_pf_deltafprime->GetXaxis()->SetTitle("#slash{E}_{T} cut");
  432. g_pf_deltafprime->GetYaxis()->SetTitle("f'_{ersatz} - f'_{W#rightarrowe#nu}");
  433. g_pf_deltafprime->Draw("ap");
  434. c_pf_deltafprime->SaveAs("pf_deltafprime.png");
  435. delete g_pf_deltafprime;
  436. delete c_pf_deltafprime;
  437. file->Close();
  438. CaloMET.close();
  439. TcMET.close();
  440. //T1MET.close();
  441. PfMET.close();
  442. }