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.

128 lines
7.7 KiB

  1. //Renata Kopecna
  2. #include <iostream>
  3. #include <spdlog.h>
  4. #include <helpers.hh>
  5. void print_help(){
  6. spdlog::set_level(spdlog::level::debug);
  7. spdlog::set_pattern("%^[HELP]%$ %v");
  8. spdlog::debug( "//--------------------------------------------------------------------------\\\\" );
  9. spdlog::debug( "|| FCNC fitter to determine angular coefficients of B+ --> K*+ mu mu. ||" );
  10. spdlog::debug( "\\\\--------------------------------------------------------------------------//" );
  11. spdlog::debug( " Please set the following options:" );
  12. spdlog::debug( "- - - - - - - - - - - - - - - - -" );
  13. spdlog::debug( "- - - - - - MANDATORY - - - - - -" );
  14. spdlog::debug( "- - - - - - - - - - - - - - - - -" );
  15. spdlog::debug( " -r <int> : Select Run number" );
  16. spdlog::debug( " 0 : Optional, use when running per year." );
  17. spdlog::debug( " 1, 2 : Run only on Run 1 or 2" );
  18. spdlog::debug( " 12 : Run on both Runs." );
  19. spdlog::debug( " 21 : Run on 15+16." );
  20. spdlog::debug( " 22 : Run on 17+18." );
  21. spdlog::debug( " -y <int> : Select year" );
  22. spdlog::debug( "- - - - - - - - - - - - - - - - -" );
  23. spdlog::debug( "- - - - - - OPTIONAL - - - - - -" );
  24. spdlog::debug( "- - - - - - - - - - - - - - - - -" );
  25. spdlog::debug( " -a : Get angular resolution." );
  26. spdlog::debug( " -b : Run on a certain numbers of q2 bin." );
  27. spdlog::debug( " -c : Get angular corrections." );
  28. spdlog::debug( " -d <int> : Set dataset");
  29. spdlog::debug( " 0 : Data");
  30. spdlog::debug( " 1 : Signal MC");
  31. spdlog::debug( " 2 : Ref MC");
  32. spdlog::debug( " 3 : PHSP");
  33. spdlog::debug( " 4 : Generator level MC");
  34. spdlog::debug( " 5 : Boosted generator level MC");
  35. spdlog::debug( " -e : Set number of events to be used." );
  36. spdlog::debug( " -f <int> : Run a fit." );
  37. spdlog::debug( " 0 : Background only fit");
  38. spdlog::debug( " 1 : Complete fit");
  39. spdlog::debug( " 2 : Mass fit");
  40. spdlog::debug( " 3 : Method of moments");
  41. spdlog::debug( " 4 : MC fit");
  42. spdlog::debug( " 5 : Generator level fit");
  43. spdlog::debug( " 6 : ");
  44. spdlog::debug( " -g <int> : Use folding of angles. Five possibilities use range [0-4]" );
  45. spdlog::debug( " : [0]: phi' = phi + pi for phi < 0" );
  46. spdlog::debug( " : [1]: phi' = -phi for phi < 0" );
  47. spdlog::debug( " phi' = pi - phi for ctl < 0 " );
  48. spdlog::debug( " ctl' = -ctl for ctl < 0 " );
  49. spdlog::debug( " : [2]: phi' = -phi for phi < 0" );
  50. spdlog::debug( " ctl' = -ctl for ctl < 0 " );
  51. spdlog::debug( " : [3]: phi' = pi - phi for phi > pi/2" );
  52. spdlog::debug( " phi' = -pi - phi for phi < -pi/2 " );
  53. spdlog::debug( " ctl' = -ctl for ctl < 0 " );
  54. spdlog::debug( " : [4]: phi' = pi - phi for phi > pi/2" );
  55. spdlog::debug( " phi' = -pi - phi for phi < -pi/2 " );
  56. spdlog::debug( " ctk' = -ctk for ctk < 0 " );
  57. spdlog::debug( " ctl' = -ctl for ctl < 0 " );
  58. spdlog::debug( " -h : Print this help :)" );
  59. spdlog::debug( " -i : index. " ); //TODO
  60. spdlog::debug( " in combination with angCorr, it scans the corrections. " );
  61. spdlog::debug( " in combination with -f 4, it sets the polarity: 1 is up, 2 is down. " );
  62. spdlog::debug( " -j : job index. Usage to be added" ); //TODO
  63. spdlog::debug( " -k : Converting events. Needs specification of a year/run and dataset." );
  64. spdlog::debug( " -l : Likelihood profile scans." );
  65. spdlog::debug( " -m : Getting pulls from MC" );
  66. spdlog::debug( " -n : Set number of toys." );
  67. spdlog::debug( " -o : Run feldman cousins." );
  68. spdlog::debug( " -p : Use P' instead of S-observables." );
  69. spdlog::debug( " -q : Use Jpsi Q2 region" );
  70. spdlog::debug( " -t : Get pulls fro toys." );
  71. spdlog::debug( " -u : Set number q2 bins to be used." );
  72. spdlog::debug( " -v <int> : Set verbosity levels. Default is info." );
  73. spdlog::debug( " 0 : Trace" );
  74. spdlog::debug( " 1 : Debug" );
  75. spdlog::debug( " 2 : Info" );
  76. spdlog::debug( " 3 : Warn" );
  77. spdlog::debug( " 4 : Error" );
  78. spdlog::debug( " 5 : Critical" );
  79. spdlog::debug( " -w : Does nothing for now." );
  80. spdlog::debug( " -x : Runs whatever script you decide from Scripts/. This is due to ROOT trying to compile everything when it really doesn't need to and running it standalone would be a pain in the ass." );
  81. spdlog::debug( " -z : Testing flag." );
  82. spdlog::debug( "- - - - - - - - - - - - - - - - -" );
  83. spdlog::debug( "- - - - - - SYSTEMATICS - - - - -" );
  84. spdlog::debug( "- - - - - - - - - - - - - - - - -" );
  85. spdlog::debug( " -s <int> : Run systematic study number #ID" );
  86. spdlog::debug( " 1 : Bootstrapping of PHSP MC" );
  87. spdlog::debug( " 2 : Perform fit with non-symmetric acceptance in ctl" );
  88. spdlog::debug( " 3 : Increase Legendre poly order by 2 for PHSP MC" );
  89. spdlog::debug( " 4 : Randomly change PHSP MC reweighting wihtin it's uncertainties" );
  90. spdlog::debug( " 5 : Check non-homogeneous FS distributions in q2" );
  91. spdlog::debug( " 6 : Vary angles (ctk, ctl and phi) within the angular resoluation" );
  92. spdlog::debug( " 7 : Generate toy events with double-gaussian profile and fit with CB" );
  93. spdlog::debug( " 8 : Systematic study on angular background model, add 10\% contribution of higher order" );
  94. spdlog::debug( " 9 : Investigate systematic effects due to trigger selection" );
  95. spdlog::debug( " 10 : Reweight PHSP MC according to pion PT disagreement in DD" );
  96. spdlog::debug( " 11 : Background systematic for mimicing the B0 -> KS mu mu veto" );
  97. reset_spdlog(); // back to default format
  98. }
  99. void print_errorCodes(){
  100. spdlog::set_level(spdlog::level::err);
  101. spdlog::set_pattern("%^[HELP]%$ %v");
  102. spdlog::error( "//-----------------------------\\\\");
  103. spdlog::error( "|| Possible error codes: ||");
  104. spdlog::error( "\\\\-----------------------------//");
  105. spdlog::error( " 0 : Everything is okay!" );
  106. spdlog::error( " 1 : Something is wrong with (parsing) the input options!" );
  107. spdlog::error( " 2 : Something is wrong with addition options in the fitter!" );
  108. spdlog::error( " 3 : Wrong tree/parameter name!" );
  109. spdlog::error( " 4 : Wrong array/vector lenght!" );
  110. spdlog::error( " 5 : Missing implementation" );
  111. spdlog::error( " 404 : Something is not found!" );
  112. reset_spdlog(); // back to default format
  113. }