15 import modularAnalysis
as ma
16 import variables
as va
19 from vertex
import kFit
20 from b2biiConversion
import convertBelleMdstToBelleIIMdst
21 from b2biiMonitors
import addBeamParamsConversionMonitors
22 from b2biiMonitors
import addTrackConversionMonitors
23 from b2biiMonitors
import addNeutralsConversionMonitors
25 os.environ[
'USE_GRAND_REPROCESS_DATA'] =
'1'
26 os.environ[
'PGUSER'] =
'g0db'
30 if len(sys.argv) == 1:
31 basf2.B2WARNING(
"In the beginning of an analysis it is recommended to study the monitoring histograms.\n"
32 "These tell you if the conversion works as expected.\n"
33 "If you want to create them, just provide any argument to this script.")
37 print(
'BELLE2_EXTERNALS_DIR = ' + str(os.getenv(
'BELLE2_EXTERNALS_DIR')))
38 print(
'BELLE2_EXTERNALS_SUBDIR = ' + str(os.getenv(
'BELLE2_EXTERNALS_SUBDIR')))
39 print(
'BELLE2_EXTERNALS_OPTION = ' + str(os.getenv(
'BELLE2_EXTERNALS_OPTION')))
40 print(
'BELLE2_EXTERNALS_VERSION = ' + str(os.getenv(
'BELLE2_EXTERNALS_VERSION')))
41 print(
'BELLE2_LOCAL_DIR = ' + str(os.getenv(
'BELLE2_LOCAL_DIR')))
42 print(
'BELLE2_RELEASE = ' + str(os.getenv(
'BELLE2_RELEASE')))
43 print(
'BELLE2_OPTION = ' + str(os.getenv(
'BELLE2_OPTION')))
44 print(
'BELLE_POSTGRES_SERVER = ' + str(os.getenv(
'BELLE_POSTGRES_SERVER')))
45 print(
'USE_GRAND_REPROCESS_DATA = ' + str(os.getenv(
'USE_GRAND_REPROCESS_DATA')))
46 print(
'PANTHER_TABLE_DIR = ' + str(os.getenv(
'PANTHER_TABLE_DIR')))
47 print(
'PGUSER = ' + str(os.getenv(
'PGUSER')))
50 mypath = basf2.create_path()
51 inputfile = basf2.find_file(
'b2bii_input_evtgen_exp_07_BptoD0pip-D0toKpipi0-0.mdst',
'examples',
False)
52 convertBelleMdstToBelleIIMdst(inputfile, path=mypath)
57 addBeamParamsConversionMonitors(path=mypath)
58 addTrackConversionMonitors(path=mypath)
59 addNeutralsConversionMonitors(path=mypath)
65 ma.fillParticleList(
'pi+:all',
'', path=mypath)
66 ma.fillParticleList(
'K+:all',
'', path=mypath)
67 ma.fillParticleList(
'mu+:all',
'', path=mypath)
68 ma.fillParticleList(
'e+:all',
'', path=mypath)
72 ma.matchMCTruth(
'pi0:mdst', path=mypath)
73 ma.printVariableValues(
'gamma:mdst', [
'mcPDG',
'E',
'clusterE9E25'], path=mypath)
74 ma.printVariableValues(
'pi0:mdst', [
'mcPDG',
'p',
'M',
'InvM'], path=mypath)
81 ma.cutAndCopyList(
'K_S0:good',
'K_S0:mdst', cut=
'goodBelleKshort', path=mypath)
85 kFit(
'K_S0:good', 0, path=mypath)
88 ma.matchMCTruth(
'K_S0:good', path=mypath)
89 ma.printVariableValues(
'K_S0:good', [
'mcPDG',
'M',
'InvM',
'p',
'px',
'py',
'pz',
90 'extraInfo(goodKs)',
'extraInfo(ksnbVLike)',
'extraInfo(ksnbNoLam)'], path=mypath)
93 va.variables.addAlias(
'Lkpi',
'atcPIDBelle(3,2)')
94 va.variables.addAlias(
'Lppi',
'atcPIDBelle(4,2)')
95 va.variables.addAlias(
'Lpk',
'atcPIDBelle(4,3)')
101 ma.printVariableValues(
'pi+:all', [
'mcPDG',
'p',
'Lkpi',
'Lppi',
'muIDBelle',
102 'muIDBelleQuality',
'eIDBelle',
'nSVDHits'], path=mypath)
105 ma.reconstructDecay(
'D0:Kpipi0 -> K-:all pi+:all pi0:mdst',
'1.7 < M < 2.0', path=mypath)
106 ma.reconstructDecay(
'B+:D0pi -> anti-D0:Kpipi0 pi+:all',
'4.8 < M < 5.5', path=mypath)
108 ma.matchMCTruth(
'B+:D0pi', path=mypath)
111 kinematics_and_truth = vc.kinematics + vc.mc_truth
112 variables = vu.create_aliases_for_selected(kinematics_and_truth,
'^B+ -> [ ^D0 -> ^K- ^pi+ ^pi0] ^pi+')
114 belle1pid = [
'eIDBelle',
'muIDBelleQuality',
'muIDBelle',
'Lkpi',
'Lppi',
'Lpk']
115 variables += vu.create_aliases_for_selected(belle1pid,
'B+ -> [ D0 -> ^K- ^pi+ pi0] ^pi+')
117 ma.variablesToNtuple(
'B+:D0pi', variables, filename=
'B2BII_ConvertAndReconstruct_Example.root', path=mypath)
120 mypath.add_module(
'Progress')
122 basf2.process(mypath)
125 print(basf2.statistics)