20 import modularAnalysis
as ma
21 from variables
import variables
22 from vertex
import raveFit
23 from ROOT
import gSystem
27 ap = argparse.ArgumentParser()
28 ap.add_argument(
"--mc", help=
"Input file is MC", action=
'store_true', default=
False)
29 ap.add_argument(
"--vfit", help=
"Do vertex fit", action=
'store_true', default=
False)
30 ap.add_argument(
"--tag", help=
"Global tag (data only)", default=
"data_reprocessing_proc7")
31 ap.add_argument(
"--out", help=
"Output file", default=
"Dstar.root")
32 args = ap.parse_args()
38 basf2.use_central_database(args.tag, basf2.LogLevel.WARNING)
41 gSystem.Load(
'libtop.so')
44 main = basf2.create_path()
47 ma.inputMdstList(
'default',
'Input.root', path=main)
50 ma.fillParticleList(
'K-:all',
'-2.0 < d0 < 2.0 and -4.0 < z0 < 4.0', path=main)
51 ma.fillParticleList(
'pi+:all',
'-2.0 < d0 < 2.0 and -4.0 < z0 < 4.0', path=main)
54 ma.reconstructDecay(
'D0:kpi -> K-:all pi+:all',
'1.8 < M < 1.95', path=main)
56 raveFit(
'D0:kpi', 0.001, fit_type=
'vertex', decay_string=
'', constraint=
'', daughtersUpdate=
True, path=main)
59 ma.reconstructDecay(
'D*+ -> D0:kpi pi+:all',
'0.0 < Q < 0.020', path=main)
61 raveFit(
'D*+', 0.001,
'',
'rave',
'vertex',
'ipprofile',
True, path=main)
65 ma.matchMCTruth(
'D*+', path=main)
68 variables.addAlias(
'isBunch',
'isTopRecBunchReconstructed')
69 variables.addAlias(
'bunchOffset',
'topRecBunchCurrentOffset')
70 variables.addAlias(
'M_D0',
'daughter(0, M)')
71 variables.addAlias(
'p_cms',
'useCMSFrame(p)')
73 variables.addAlias(
'p_K',
'daughter(0, daughter(0, p))')
74 variables.addAlias(
'flag_K',
'daughter(0, daughter(0, topFlag))')
75 variables.addAlias(
'kaonLL_K',
'daughter(0, daughter(0, topKaonLogL))')
76 variables.addAlias(
'pionLL_K',
'daughter(0, daughter(0, topPionLogL))')
77 variables.addAlias(
'slotID_K',
'daughter(0, daughter(0, topSlotID))')
79 variables.addAlias(
'p_pi',
'daughter(0, daughter(1, p))')
80 variables.addAlias(
'flag_pi',
'daughter(0, daughter(1, topFlag))')
81 variables.addAlias(
'kaonLL_pi',
'daughter(0, daughter(1, topKaonLogL))')
82 variables.addAlias(
'pionLL_pi',
'daughter(0, daughter(1, topPionLogL))')
83 variables.addAlias(
'slotID_pi',
'daughter(0, daughter(1, topSlotID))')
85 varlist = [
'M_D0',
'Q',
'dQ',
'p_cms',
'isBunch',
'bunchOffset',
'p_K',
'p_pi',
86 'kaonLL_K',
'pionLL_K',
'flag_K',
'slotID_K',
87 'kaonLL_pi',
'pionLL_pi',
'flag_pi',
'slotID_pi']
89 ma.variablesToNtuple(
'D*+', varlist,
'dstar', args.out, path=main)
95 print(basf2.statistics)