Angular analysis of B+->K*+(K+pi0)mumu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
4.2 KiB

  1. //Inlusive sample check
  2. //Renata Kopecna
  3. #include "../GlobalFunctions.hh"
  4. #include "../Paths.hpp"
  5. #include "../Utils.hpp"
  6. #include "../Design.hpp"
  7. int plotTM(int Run, bool Kstar){
  8. //Load MC data from TFiles
  9. TChain * tree = new TChain("DecayTreeTruthMatched");
  10. if (Run == 1){
  11. tree->Add("/home/lhcb/kopecna/B2KstarMuMu/data/data/MC/Inclusive_MC_BDToutput_Run1_2011.root");
  12. tree->Add("/home/lhcb/kopecna/B2KstarMuMu/data/data/MC/Inclusive_MC_BDToutput_Run1_2012.root");
  13. }
  14. else if (Run == 2) tree->Add("/home/lhcb/kopecna/B2KstarMuMu/data/data/MC/Inclusive_MC_BDToutput_Run2_2016.root");
  15. TH1D *h_all;
  16. TH1D *h_notTM;
  17. if (Kstar){
  18. h_all = new TH1D ("h_all", "h_all", 100, PDGMASS.K_STAR_PLUS-K_star_plus_mass_difference, PDGMASS.K_STAR_PLUS+K_star_plus_mass_difference);
  19. h_notTM = new TH1D ("h_notTM","h_notTM",100, PDGMASS.K_STAR_PLUS-K_star_plus_mass_difference, PDGMASS.K_STAR_PLUS+K_star_plus_mass_difference);
  20. }
  21. else{
  22. h_all = new TH1D ("h_all", "h_all", 100, cut_B_plus_M_low, cut_B_plus_M_high);
  23. h_notTM = new TH1D ("h_notTM","h_notTM",100, cut_B_plus_M_low, cut_B_plus_M_high);
  24. }
  25. double q_bins[7] = {0.1e6, 4.0e6, 8.0e6, 11.0e6, 12.5e6, 15.0e6, 20.0e6};
  26. TH1D *q_all = new TH1D ("q_all", "q_all", 6, q_bins);
  27. TH1D *q_notTM = new TH1D ("q_notTM","q_notTM",6, q_bins);
  28. string MLPcut = "(MLPresponse > " + to_string(getTMVAcut(Run)) + " && IsAloneAtNotTM <= " + to_string(getTMVAcut(Run)) + ")";
  29. string TMcut = "(TMed && TM_gammas<6)";
  30. string Psi2sCut = "(abs(B_plus_TRUEID)==521 &&" ;
  31. Psi2sCut.append("abs(J_psi_TRUEID)==100443 && abs(J_psi_MC_MOTHER_ID)==521 && ");
  32. Psi2sCut.append("abs(K_star_plus_TRUEID)==323 && abs(K_star_plus_MC_MOTHER_ID)==521 && ");
  33. Psi2sCut.append("abs(K_plus_TRUEID)==321 && abs(K_plus_MC_MOTHER_ID)==323 && abs(K_plus_MC_GD_MOTHER_ID)==521 && ");
  34. Psi2sCut.append("(abs(pi_zero_resolved_TRUEID)==111 || abs(pi_zero_resolved_TRUEID)==22))");
  35. string BstarCut = "(abs(B_plus_TRUEID)==521 && ";
  36. BstarCut.append("abs(K_star_plus_TRUEID)==521 && abs(K_star_plus_MC_MOTHER_ID)==523 &&");
  37. BstarCut.append("abs(K_plus_TRUEID)==321 && abs(K_plus_MC_MOTHER_ID)==521 && ");
  38. BstarCut.append("(abs(pi_zero_resolved_TRUEID)==111 || abs(pi_zero_resolved_TRUEID)==22))");
  39. string BCut = "(B_plus_TRUEID==521 && ";
  40. BCut.append("K_star_plus_TRUEID==323 && K_star_plus_MC_MOTHER_ID==521 && ");
  41. BCut.append("K_plus_TRUEID==321 && K_plus_MC_MOTHER_ID==323 && K_plus_MC_GD_MOTHER_ID==521 && ");
  42. BCut.append("(pi_zero_resolved_TRUEID==111 || pi_zero_resolved_TRUEID==22))");
  43. string fullCut = MLPcut + " && !(" + TMcut + " || " + Psi2sCut + " || " + BstarCut + ")";
  44. cout << fullCut << endl;
  45. if(Kstar){
  46. tree->Draw("K_star_plus_M_scaled>>h_all",MLPcut.c_str());
  47. tree->Draw("K_star_plus_M_scaled>>h_notTM",fullCut.c_str());
  48. }
  49. else{
  50. tree->Draw("B_plus_M_DTF>>h_all",MLPcut.c_str());
  51. tree->Draw("B_plus_M_DTF>>h_notTM",fullCut.c_str());
  52. }
  53. tree->Draw("Q2>>q_all",MLPcut.c_str());
  54. tree->Draw("Q2>>q_notTM",fullCut.c_str());
  55. TCanvas *c = c_canvas("Inclusive sample check");
  56. c->cd();
  57. design_TH1D(h_all,recoMassKplus,"Entries (a.u.)", kBlack);
  58. design_TH1D(h_notTM,recoMassKplus,"Entries (a.u.)", kRed);
  59. h_all->Draw();
  60. h_notTM->Draw("SAME");
  61. if (Run == 1) addAnyTag(0.6,0.85,"MC 2011+2012",kBlack,0.8);
  62. else addAnyTag(0.6,0.85,"MC 2016",kBlack,0.8);
  63. addAnyTag(0.6,0.79,"B#rightarrow XJ/#psi",kBlack,0.8);
  64. string name = "Inclusive_MC_Run_" +to_string(Run) + std::string(Kstar? "_Kstar" : "");;
  65. c->SaveAs(string(name + ".root").c_str());
  66. c->SaveAs(string(name + ".eps").c_str());
  67. TCanvas *cq = c_canvas("Inclusive sample check");
  68. cq->cd();
  69. design_TH1D(q_all,"q^{2} [MeV]","Entries (a.u.)", kBlack);
  70. design_TH1D(q_notTM,"q^{2} [MeV]","Entries (a.u.)", kRed);
  71. addAnyTag(0.6,0.85,"Simulation",kBlack,0.9);
  72. addAnyTag(0.6,0.79,"Run " + to_string(Run),kBlack,0.9);
  73. q_all->Draw();
  74. q_notTM->Draw("SAME");
  75. name = "Inclusive_Q2_MC_Run_" +to_string(Run) + std::string(Kstar? "_Kstar" : "");
  76. cq->SaveAs(string(name + ".root").c_str());
  77. cq->SaveAs(string(name + ".eps").c_str());
  78. return 1;
  79. }