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.

221 lines
10 KiB

  1. #!/usr/bin/env python
  2. import os
  3. channel_list = ['Kplus',
  4. 'Kshort'
  5. ]
  6. decay_list = ['BtoKstMuMu',
  7. 'BtoKstJpsi',
  8. 'PHSP',
  9. 'BtoXJpsi',
  10. 'B0toKstMuMu',
  11. 'B0toKstJpsi',
  12. 'BtoK1MuMu',
  13. 'BtoK1Jpsi'
  14. ]
  15. polarity_list = ['MagDown',
  16. 'MagUp']
  17. decay_year_dict = {'BtoKstMuMu' : ['2011','2012','2015','2016'],
  18. 'BtoKstJpsi' : ['2011','2012'],
  19. 'PHSP' : ['2011','2012','2015','2016'],
  20. 'BtoXJpsi' : ['2011','2012','2015','2016'],
  21. 'B0toKstMuMu': ['2011','2012','2015','2016'],
  22. 'B0toKstJpsi': ['2011','2012','2015','2016'],
  23. 'BtoK1MuMu' : ['2011','2012'],
  24. 'BtoK1Jpsi' : ['2012']
  25. }
  26. decay_mdst_file_dict = {'BtoKstMuMu' : {'2011': 'False',
  27. '2012': 'False',
  28. '2015': 'True',
  29. '2016': 'True'
  30. },
  31. 'BtoKstJpsi' : {'2011': 'False',
  32. '2012': 'False'
  33. },
  34. 'PHSP' : {'2011': 'False',
  35. '2012': 'False',
  36. '2015': 'True',
  37. '2016': 'True'
  38. },
  39. 'BtoXJpsi' : {'2011': 'False',
  40. '2012': 'False',
  41. '2015': 'True',
  42. '2016': 'False'
  43. },
  44. 'B0toKstMuMu': {'2011': 'False',
  45. '2012': 'False',
  46. '2015': 'False',
  47. '2016': 'False'
  48. },
  49. 'B0toKstJpsi': {'2011': 'False',
  50. '2012': 'False',
  51. '2015': 'True',
  52. '2016': 'True'
  53. },
  54. 'BtoK1MuMu' : {'2011': 'False',
  55. '2012': 'False'
  56. },
  57. 'BtoK1Jpsi' : {'2012': 'False'
  58. }
  59. }
  60. decay_line_dict = {'BtoKstMuMu' : "B2XMuMu_Line",
  61. 'BtoKstJpsi' : "B2XMuMu_Line",
  62. 'PHSP' : "B2XMuMu_Line",
  63. 'BtoXJpsi' : "B2XMuMu_Line",
  64. 'B0toKstMuMu': "B2XMuMu_Line",
  65. 'B0toKstJpsi': "B2XMuMu_Line",
  66. 'BtoK1MuMu' : "B2XMuMu_Line",
  67. 'BtoK1Jpsi' : "B2XMuMu_Line"
  68. }
  69. decay_stream_dict = {'BtoKstMuMu' : "AllStreams",
  70. 'BtoKstJpsi' : "AllStreams",
  71. 'PHSP' : "B2XMuMu.Strip",
  72. 'BtoXJpsi' : "AllStreams",
  73. 'B0toKstMuMu': "AllStreams",
  74. 'B0toKstJpsi': "AllStreams",
  75. 'BtoK1MuMu' : "AllStreams",
  76. 'BtoK1Jpsi' : "AllStreams"
  77. }
  78. polarity_CondB_dict = {'MagDown' : 'md100',
  79. 'MagUp' : 'mu100'
  80. }
  81. #tags from vanyas amazing script
  82. # export PATH=$PATH:/afs/cern.ch/user/i/ibelyaev/public/scripts
  83. #lhcb-proxy-init
  84. #get_bookkeeping_info 10000027
  85. decay_CondDB_dict = { 'BtoKstMuMu' : {'2011': 'sim-20160614-1-vc-',
  86. '2012': 'sim-20160321-2-vc-',
  87. '2015': 'sim-20161124-vc-',
  88. '2016': 'sim-20161124-vc-',
  89. },
  90. 'BtoKstJpsi' : {'2011': 'sim-20160614-1-vc-',
  91. '2012': 'sim-20160321-2-vc-'
  92. },
  93. 'PHSP' : {'2011': 'sim-20160614-1-vc-',
  94. '2012': 'sim-20160321-2-vc-',
  95. '2015': 'sim-20161124-vc-',
  96. '2016': 'sim-20170721-2-vc-'
  97. },
  98. 'BtoXJpsi' : {'2011': 'sim-20130522-vc-',
  99. '2012': 'Sim08-20130503-1-vc-',
  100. '2015': 'sim-20150813-vc-',
  101. '2016': 'sim-20161124-2-vc-'
  102. },
  103. 'B0toKstMuMu': {'2011': 'sim-20130522-vc-',
  104. '2012': 'Sim08-20130503-1-vc-',
  105. '2015': 'sim-20161124-vc-',
  106. '2016': 'sim-20161124-2-vc-'
  107. },
  108. 'B0toKstJpsi': {'2011': 'sim-20130522-vc-',
  109. '2012': 'sim-20130522-1-vc-',
  110. '2015': 'sim-20161124-vc-',
  111. '2016': 'sim-20170721-2-vc-'
  112. },
  113. 'BtoK1MuMu' : {'2011': 'sim-20130522-vc-',
  114. '2012': 'sim-20130522-1-vc-',
  115. },
  116. 'BtoK1Jpsi' : {'2012': 'Sim08-20130503-1-vc-'
  117. }
  118. }
  119. decay_DDDB_dict = { 'BtoKstMuMu' : {'2011': 'dddb-20160318-1',
  120. '2012': 'dddb-20150928',
  121. '2015': 'dddb-20150724',
  122. '2016': 'dddb-20170721-3'
  123. },
  124. 'BtoKstJpsi' : {'2011': 'dddb-20160318-1',
  125. '2012': 'dddb-20150928'
  126. },
  127. 'PHSP' :{'2011': 'dddb-20160318-1',
  128. '2012': 'dddb-20150928',
  129. '2015': 'dddb-20150724',
  130. '2016': 'dddb-20170721-3'
  131. },
  132. 'BtoXJpsi' : {'2011': 'dddb-20130929',
  133. '2012': 'Sim08-20130503-1',
  134. '2015': 'dddb-20150724',
  135. '2016': 'dddb-20150724'
  136. },
  137. 'B0toKstMuMu': {'2011': 'dddb-20130929',
  138. '2012': 'Sim08-20130503-1',
  139. '2015': 'dddb-20170721-3',
  140. '2016': 'dddb-20150724'
  141. },
  142. 'B0toKstJpsi': {'2011': 'dddb-20130929',
  143. '2012': 'dddb-20130929-1',
  144. '2015': 'dddb-20170721-3',
  145. '2016': 'dddb-20170721-3'
  146. },
  147. 'BtoK1MuMu' : {'2011': 'dddb-20130929',
  148. '2012': 'dddb-20130929-1',
  149. },
  150. 'BtoK1Jpsi' : {'2012': 'Sim08-20130503-1'
  151. }
  152. }
  153. for channel in channel_list:
  154. for decay in decay_list:
  155. for year in decay_year_dict[decay]:
  156. for polarity in polarity_list:
  157. script_opts = { "DATA_TYPE":"MC",
  158. "CHAN": channel,
  159. "YEAR":year,
  160. "POL": polarity,
  161. "DEC": decay,
  162. "MDST": decay_mdst_file_dict[decay][year],
  163. "LINE": decay_line_dict[decay],
  164. "STREAM":decay_stream_dict[decay],
  165. "CONDB":decay_CondDB_dict[decay][year],
  166. "CONDB_POL":polarity_CondB_dict[polarity],
  167. "DDDBtag":decay_DDDB_dict[decay][year]
  168. }
  169. #lfn_file = "../LFN_files/%(DEC)s_%(YEAR)s%(POL)s.py" % script_opts
  170. #xml_file = "../xml_files/catalog_%(DEC)s_%(YEAR)s%(POL)s.xml" % script_opts
  171. #if not os.path.exists( "./%(DEC)s/" %script_opts):
  172. # os.makedirs( "./%(DEC)s/" %script_opts)
  173. #if not os.path.exists( "../local_tests_output/%(DEC)s/" %script_opts):
  174. # os.makedirs( "../local_tests_output/%(DEC)s/" %script_opts)
  175. opt_file = "./%(DEC)s/%(YEAR)s%(POL)s_%(CHAN)s.py" %script_opts
  176. f1 = open(opt_file, 'w')
  177. f1.write( '############# Global settings\n' )
  178. f1.write( 'runFilters = False\n' )
  179. f1.write( 'MDST = %(MDST)s\n' % script_opts)
  180. f1.write( 'data = False\n' )
  181. f1.write( 'down = %s\n' % (polarity == 'MagDown'))
  182. f1.write( 'year = "%(YEAR)s"\n' % script_opts)
  183. f1.write( 'stream = "%(STREAM)s"\n' % script_opts)
  184. f1.write( 'line = "%(LINE)s"\n\n' % script_opts)
  185. f1.write( 'channel = "%s"\n\n' % decay)
  186. f1.write( '#subdecay chains\n' )
  187. f1.write( 'KShortPiPlus = %s\n' % (channel == 'Kshort') )
  188. f1.write( 'KplusPi0Merged = False\n' )
  189. f1.write( 'KplusPi0Resolved = %s\n' % (channel == 'Kplus'))
  190. # f_lfns = open('../../LFN_files/%(DEC)s_%(YEAR)s%(POL)s.py'%script_opts)
  191. # for line in f_lfns.readlines():
  192. # f1.write(line)
  193. # f1.write("from Gaudi.Configuration import FileCatalog\n")
  194. # f1.write("""FileCatalog().Catalogs +=['xmlcatalog_file:/afs/cern.ch/work/r/rekopecn/public/B_2_KstarMuMu/DaVinciDev_v41r2/tuplecreation/xml_files/catalog_%(DEC)s_%(YEAR)s%(POL)s.xml']\n""" % script_opts)
  195. #f_lfns.close()
  196. f = open('./BasicOptfile.py')
  197. for line in f.readlines():
  198. f1.write(line)
  199. f.close()
  200. f1.write( """dv.EvtMax = -1\n""" )
  201. f1.write( """dv.TupleFile = "%(DEC)s_%(YEAR)s%(POL)s.root"\n""" % script_opts )
  202. f1.write( """dv.CondDBtag = "%(CONDB)s%(CONDB_POL)s"\n""" % script_opts )
  203. f1.write( """dv.DDDBtag = "%(DDDBtag)s"\n""" % script_opts )
  204. f1.close()