13 make Upsilon(4S) ntuple for checks and studies of the generator file:
14 particles: Upsilon(4S), two daughters (i.e. BBbar) and four granddaughters (e.g. B0->Jpsi+K0S)
15 variables: mcPDG,M,nDaughters,mcDecayTime,mcLifeTime,mcX,mcY,mcZ,mcE,mcPX,mcPY,mcPZ;
19 import modularAnalysis
as ma
20 from variables
import variables
23 variables.addAlias(
'B00_mcPDG',
'daughter(0, mcPDG)')
24 variables.addAlias(
'B00_M',
'daughter(0, M)')
25 variables.addAlias(
'B00_nDaughters',
'daughter(0, nDaughters)')
26 variables.addAlias(
'B00_mcDecayTime',
'daughter(0, mcDecayTime)')
27 variables.addAlias(
'B00_mcLifeTime',
'daughter(0, mcLifeTime)')
28 variables.addAlias(
'B00_mcX',
'daughter(0, mcDecayVertexX)')
29 variables.addAlias(
'B00_mcY',
'daughter(0, mcDecayVertexY)')
30 variables.addAlias(
'B00_mcZ',
'daughter(0, mcDecayVertexZ)')
31 variables.addAlias(
'B00_mcE',
'daughter(0, mcE)')
32 variables.addAlias(
'B00_mcPX',
'daughter(0, mcPX)')
33 variables.addAlias(
'B00_mcPY',
'daughter(0, mcPY)')
34 variables.addAlias(
'B00_mcPZ',
'daughter(0, mcPZ)')
36 variables.addAlias(
'B00_daughter0_mcPDG',
'daughter(0, daughter(0, mcPDG))')
37 variables.addAlias(
'B00_daughter0_M',
'daughter(0, daughter(0, M))')
38 variables.addAlias(
'B00_daughter0_nDaughters',
'daughter(0, daughter(0, nDaughters))')
39 variables.addAlias(
'B00_daughter0_mcDecayTime',
'daughter(0, daughter(0, mcDecayTime))')
40 variables.addAlias(
'B00_daughter0_mcLifeTime',
'daughter(0, daughter(0, mcLifeTime))')
41 variables.addAlias(
'B00_daughter0_mcX',
'daughter(0, daughter(0, mcDecayVertexX))')
42 variables.addAlias(
'B00_daughter0_mcY',
'daughter(0, daughter(0, mcDecayVertexY))')
43 variables.addAlias(
'B00_daughter0_mcZ',
'daughter(0, daughter(0, mcDecayVertexZ))')
44 variables.addAlias(
'B00_daughter0_mcE',
'daughter(0, daughter(0, mcE))')
45 variables.addAlias(
'B00_daughter0_mcPX',
'daughter(0, daughter(0, mcPX))')
46 variables.addAlias(
'B00_daughter0_mcPY',
'daughter(0, daughter(0, mcPY))')
47 variables.addAlias(
'B00_daughter0_mcPZ',
'daughter(0, daughter(0, mcPZ))')
49 variables.addAlias(
'B00_daughter1_mcPDG',
'daughter(0, daughter(1, mcPDG))')
50 variables.addAlias(
'B00_daughter1_M',
'daughter(0, daughter(1, M))')
51 variables.addAlias(
'B00_daughter1_nDaughters',
'daughter(0, daughter(1, nDaughters))')
52 variables.addAlias(
'B00_daughter1_mcDecayTime',
'daughter(0, daughter(1, mcDecayTime))')
53 variables.addAlias(
'B00_daughter1_mcLifeTime',
'daughter(0, daughter(1, mcLifeTime))')
54 variables.addAlias(
'B00_daughter1_mcX',
'daughter(0, daughter(1, mcDecayVertexX))')
55 variables.addAlias(
'B00_daughter1_mcY',
'daughter(0, daughter(1, mcDecayVertexY))')
56 variables.addAlias(
'B00_daughter1_mcZ',
'daughter(0, daughter(1, mcDecayVertexZ))')
57 variables.addAlias(
'B00_daughter1_mcE',
'daughter(0, daughter(1, mcE))')
58 variables.addAlias(
'B00_daughter1_mcPX',
'daughter(0, daughter(1, mcPX))')
59 variables.addAlias(
'B00_daughter1_mcPY',
'daughter(0, daughter(1, mcPY))')
60 variables.addAlias(
'B00_daughter1_mcPZ',
'daughter(0, daughter(1, mcPZ))')
62 variables.addAlias(
'B01_mcPDG',
'daughter(1, mcPDG)')
63 variables.addAlias(
'B01_M',
'daughter(1, M)')
64 variables.addAlias(
'B01_nDaughters',
'daughter(1, nDaughters)')
65 variables.addAlias(
'B01_mcDecayTime',
'daughter(1, mcDecayTime)')
66 variables.addAlias(
'B01_mcLifeTime',
'daughter(1, mcLifeTime)')
67 variables.addAlias(
'B01_mcX',
'daughter(1, mcDecayVertexX)')
68 variables.addAlias(
'B01_mcY',
'daughter(1, mcDecayVertexY)')
69 variables.addAlias(
'B01_mcZ',
'daughter(1, mcDecayVertexZ)')
70 variables.addAlias(
'B01_mcE',
'daughter(1, mcE)')
71 variables.addAlias(
'B01_mcPX',
'daughter(1, mcPX)')
72 variables.addAlias(
'B01_mcPY',
'daughter(1, mcPY)')
73 variables.addAlias(
'B01_mcPZ',
'daughter(1, mcPZ)')
75 variables.addAlias(
'B01_daughter0_mcPDG',
'daughter(1, daughter(0, mcPDG))')
76 variables.addAlias(
'B01_daughter0_M',
'daughter(1, daughter(0, M))')
77 variables.addAlias(
'B01_daughter0_nDaughters',
'daughter(1, daughter(0, nDaughters))')
78 variables.addAlias(
'B01_daughter0_mcDecayTime',
'daughter(1, daughter(0, mcDecayTime))')
79 variables.addAlias(
'B01_daughter0_mcLifeTime',
'daughter(1, daughter(0, mcLifeTime))')
80 variables.addAlias(
'B01_daughter0_mcX',
'daughter(1, daughter(0, mcDecayVertexX))')
81 variables.addAlias(
'B01_daughter0_mcY',
'daughter(1, daughter(0, mcDecayVertexY))')
82 variables.addAlias(
'B01_daughter0_mcZ',
'daughter(1, daughter(0, mcDecayVertexZ))')
83 variables.addAlias(
'B01_daughter0_mcE',
'daughter(1, daughter(0, mcE))')
84 variables.addAlias(
'B01_daughter0_mcPX',
'daughter(1, daughter(0, mcPX))')
85 variables.addAlias(
'B01_daughter0_mcPY',
'daughter(1, daughter(0, mcPY))')
86 variables.addAlias(
'B01_daughter0_mcPZ',
'daughter(1, daughter(0, mcPZ))')
88 variables.addAlias(
'B01_daughter1_mcPDG',
'daughter(1, daughter(1, mcPDG))')
89 variables.addAlias(
'B01_daughter1_M',
'daughter(1, daughter(1, M))')
90 variables.addAlias(
'B01_daughter1_nDaughters',
'daughter(1, daughter(1, nDaughters))')
91 variables.addAlias(
'B01_daughter1_mcDecayTime',
'daughter(1, daughter(1, mcDecayTime))')
92 variables.addAlias(
'B01_daughter1_mcLifeTime',
'daughter(1, daughter(1, mcLifeTime))')
93 variables.addAlias(
'B01_daughter1_mcX',
'daughter(1, daughter(1, mcDecayVertexX))')
94 variables.addAlias(
'B01_daughter1_mcY',
'daughter(1, daughter(1, mcDecayVertexY))')
95 variables.addAlias(
'B01_daughter1_mcZ',
'daughter(1, daughter(1, mcDecayVertexZ))')
96 variables.addAlias(
'B01_daughter1_mcE',
'daughter(1, daughter(1, mcE))')
97 variables.addAlias(
'B01_daughter1_mcPX',
'daughter(1, daughter(1, mcPX))')
98 variables.addAlias(
'B01_daughter1_mcPY',
'daughter(1, daughter(1, mcPY))')
99 variables.addAlias(
'B01_daughter1_mcPZ',
'daughter(1, daughter(1, mcPZ))')
101 if len(sys.argv) != 2:
102 sys.exit(
'Must provide one input parameter: [output_root_file_name]'
105 outRootFileName = sys.argv[1]
108 cp_val_path = b2.create_path()
110 environmentType =
"default"
112 ma.inputMdstList(environmentType=environmentType, filelist=[], path=cp_val_path)
114 Upsilon4S = (
'Upsilon(4S):all',
'')
115 ma.fillParticleListsFromMC([Upsilon4S],
True, path=cp_val_path)
116 ma.matchMCTruth(
'Upsilon(4S):all', path=cp_val_path)
118 ma.variablesToNtuple(decayString=
'Upsilon(4S):all',
119 variables=[
"generatorEventWeight",
121 "mcPDG",
"M",
"nDaughters",
"mcDecayTime",
"mcLifeTime",
122 "mcX",
"mcY",
"mcZ",
"mcE",
"mcPX",
"mcPY",
"mcPZ",
124 'B00_mcPDG',
'B00_M',
'B00_nDaughters',
125 'B00_mcDecayTime',
'B00_mcLifeTime',
126 'B00_mcX',
'B00_mcY',
'B00_mcZ',
127 'B00_mcE',
'B00_mcPX',
'B00_mcPY',
'B00_mcPZ',
128 'B00_daughter0_mcPDG',
'B00_daughter1_mcPDG',
129 'B00_daughter0_M',
'B00_daughter1_M',
130 'B00_daughter0_mcDecayTime',
'B00_daughter1_mcDecayTime',
131 'B00_daughter0_mcLifeTime',
'B00_daughter1_mcLifeTime',
132 'B00_daughter0_mcX',
'B00_daughter1_mcX',
133 'B00_daughter0_mcY',
'B00_daughter1_mcY',
134 'B00_daughter0_mcZ',
'B00_daughter1_mcZ',
135 'B00_daughter0_mcE',
'B00_daughter1_mcE',
136 'B00_daughter0_mcPX',
'B00_daughter1_mcPX',
137 'B00_daughter0_mcPY',
'B00_daughter1_mcPY',
138 'B00_daughter0_mcPZ',
'B00_daughter1_mcPZ',
140 'B01_mcPDG',
'B01_M',
'B01_nDaughters',
141 'B01_mcDecayTime',
'B01_mcLifeTime',
142 'B01_mcX',
'B01_mcY',
'B01_mcZ',
143 'B01_mcE',
'B01_mcPX',
'B01_mcPY',
'B01_mcPZ',
144 'B01_daughter0_mcPDG',
'B01_daughter1_mcPDG',
145 'B01_daughter0_M',
'B01_daughter1_M',
146 'B01_daughter0_mcDecayTime',
'B01_daughter1_mcDecayTime',
147 'B01_daughter0_mcLifeTime',
'B01_daughter1_mcLifeTime',
148 'B01_daughter0_mcX',
'B01_daughter1_mcX',
149 'B01_daughter0_mcY',
'B01_daughter1_mcY',
150 'B01_daughter0_mcZ',
'B01_daughter1_mcZ',
151 'B01_daughter0_mcE',
'B01_daughter1_mcE',
152 'B01_daughter0_mcPX',
'B01_daughter1_mcPX',
153 'B01_daughter0_mcPY',
'B01_daughter1_mcPY',
154 'B01_daughter0_mcPZ',
'B01_daughter1_mcPZ'],
155 filename=outRootFileName,
156 treename=
'UpsilonTree',
159 ma.summaryOfLists(particleLists=[
'Upsilon(4S):all'], path=cp_val_path)
162 ma.process(cp_val_path)