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