2 Python wrapper for MELA
3 >>> from mela import Mela, SimpleParticle_t, SimpleParticleCollection_t, TVar
5 Then you can use m mostly like a C++ mela object.
7 >>> m.setProcess(TVar.SelfDefine_spin0, TVar.JHUGen, TVar.ZZINDEPENDENT)
9 The main change is that computeP and similar functions return the ME instead of modifying a reference.
10 (computeP_selfD* are not implemented here, but you can access the functionality through computeP)
12 >>> print(m.computeP(False))
14 You can modify the couplings either by
15 >>> m.selfDHzzcoupl[0][0][0] = 1
16 >>> m.selfDHzzcoupl[0][0][1] = 2
17 or by the more convenient way
20 SimpleParticle_t and SimpleParticleCollection_t are implemented to take inputs in ways more normal for python.
21 >>> daughters = SimpleParticleCollection_t([
22 ... "11 -71.89 30.50 -47.20 91.25",
23 ... #...other daughters
26 There are also a few functions for convenience
27 >>> m.setInputEvent_fromLHE_Hwithdecay( #or _StableHiggs or _JHUGenVBFVH, or _JHUGenttH
33 which are useful for quick tests.
35 See examples at the bottom.
38 from __future__
import print_function
39 from collections
import namedtuple
41 from pythonmelautils
import MultiDimensionalCppArray, SelfDParameter, SelfDCoupling
42 from ROOT
import TUtil, TVar
52 computeptemplate =
"""
54 float getPAux(Mela& mela) {
59 array<float, 8> computeDecayAngles(Mela& mela) {
60 array<float, 8> result;
61 mela.computeDecayAngles(
73 array<float, 7> computeVBFAngles(Mela& mela) {
74 array<float, 7> result;
75 mela.computeVBFAngles(
86 array<float, 9> computeVBFAngles_ComplexBoost(Mela& mela) {
87 array<float, 9> result;
88 mela.computeVBFAngles_ComplexBoost(
101 array<float, 7> computeVHAngles(Mela& mela, TVar::Production prod) {
102 mela.setProcess(TVar::HSMHiggs, TVar::JHUGen, prod);
103 array<float, 7> result;
104 mela.computeVHAngles(
115 //not implementing the computeP_selfD* functions here
116 //would be easier to do in pure python but not worth it anyway
117 float computeP(Mela& mela, bool useConstant) {
119 mela.computeP(result, useConstant);
122 float computeD_CP(Mela& mela, TVar::MatrixElement myME, TVar::Process myType) {
124 mela.computeD_CP(myME, myType, result);
127 float computeProdP(Mela& mela, bool useConstant) {
129 mela.computeProdP(result, useConstant);
132 float computeProdDecP(Mela& mela, bool useConstant) {
134 mela.computeProdDecP(result, useConstant);
137 float computeProdP_VH(Mela& mela, bool includeHiggsDecay, bool useConstant) {
139 mela.computeProdP_VH(result, includeHiggsDecay, useConstant);
142 float computeProdP_ttH(Mela& mela, int topProcess, int topDecay, bool useConstant) {
144 mela.computeProdP_ttH(result, topProcess, topDecay, useConstant);
147 float compute4FermionWeight(Mela& mela) {
149 mela.compute4FermionWeight(result);
152 float getXPropagator(Mela& mela, TVar::ResonancePropagatorScheme scheme) {
154 mela.getXPropagator(scheme, result);
157 float computePM4l(Mela& mela, TVar::SuperMelaSyst syst) {
159 mela.computePM4l(syst, result);
162 float computeD_gg(Mela& mela, TVar::MatrixElement myME, TVar::Process myType) {
164 mela.computeD_gg(myME, myType, result);
167 float getConstant(Mela& mela) {
169 mela.getConstant(result);
172 float computeDijetConvBW(Mela& mela, bool useTrueBW) {
174 mela.computeDijetConvBW(result, useTrueBW);
178 vector<vector<double>> getWeightedMEArray(MelaIO& melaio) {
179 double resultarray[nmsq][nmsq] = {{0}};
180 melaio.getWeightedMEArray(resultarray);
181 vector<vector<double>> result;
182 for (const auto& lst : resultarray) {
184 for (const auto& number : lst) {
185 vctr.push_back(number);
187 result.push_back(vctr);
191 vector<vector<double>> getUnweightedMEArray(MelaIO& melaio) {
192 double resultarray[nmsq][nmsq];
193 melaio.getUnweightedMEArray(resultarray);
194 vector<vector<double>> result;
195 for (const auto& lst : resultarray) {
197 for (const auto& number : lst) {
198 vctr.push_back(number);
200 result.push_back(vctr);
204 std::pair<vector<double>, vector<double>> getPartonWeights(MelaIO& melaio) {
205 std::pair<vector<double>, vector<double>> result;
206 result.first.resize(nmsq);
207 result.second.resize(nmsq);
208 melaio.getPartonWeights(result.first.data(), result.second.data());
215 type(self).counter += 1
218 (
"selfDHggcoupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HGG, 2)),
219 (
"selfDHg4g4coupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HGG, 2)),
220 (
"selfDHqqcoupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HQQ, 2)),
221 (
"selfDHbbcoupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HQQ, 2)),
222 (
"selfDHttcoupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HQQ, 2)),
223 (
"selfDHb4b4coupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HQQ, 2)),
224 (
"selfDHt4t4coupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HQQ, 2)),
225 (
"selfDHzzcoupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HVV, 2)),
226 (
"selfDHwwcoupl", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HVV, 2)),
227 (
"selfDHzzLambda_qsq", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HVV_LAMBDAQSQ, ROOT.py_SIZE_HVV_CQSQ)),
228 (
"selfDHwwLambda_qsq", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HVV_LAMBDAQSQ, ROOT.py_SIZE_HVV_CQSQ)),
229 (
"selfDHzzCLambda_qsq", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HVV_CQSQ)),
230 (
"selfDHwwCLambda_qsq", (ROOT.nSupportedHiggses, ROOT.py_SIZE_HVV_CQSQ)),
231 (
"selfDHzzpcoupl", (ROOT.py_SIZE_HVV, 2)),
232 (
"selfDHzpzpcoupl", (ROOT.py_SIZE_HVV, 2)),
233 (
"selfDZpffcoupl", (ROOT.py_SIZE_Vpff, 2)),
234 (
"selfDHwwpcoupl", (ROOT.py_SIZE_HVV, 2)),
235 (
"selfDHwpwpcoupl", (ROOT.py_SIZE_HVV, 2)),
236 (
"selfDWpffcoupl", (ROOT.py_SIZE_Vpff, 2)),
237 (
"selfDZqqcoupl", (ROOT.py_SIZE_ZQQ, 2)),
238 (
"selfDZvvcoupl", (ROOT.py_SIZE_ZVV, 2)),
239 (
"selfDGqqcoupl", (ROOT.py_SIZE_GQQ, 2)),
240 (
"selfDGggcoupl", (ROOT.py_SIZE_GGG, 2)),
241 (
"selfDGvvcoupl", (ROOT.py_SIZE_GVV, 2)),
242 (
"selfDGvvpcoupl", (ROOT.py_SIZE_GVV, 2)),
243 (
"selfDGvpvpcoupl", (ROOT.py_SIZE_GVV, 2)),
244 (
"selfDaTQGCcoupl", (ROOT.py_SIZE_ATQGC, 2)),
248 for name, dimensions
in arrays:
253 "mela{}{}".format(self.
index, name),
254 "mela.{}".format(name),
256 {
"Mela& mela": self.
__mela},
260 f = getattr(self, name).writecpp(f)
261 bkpgErrorIgnoreLevel, ROOT.gErrorIgnoreLevel = ROOT.gErrorIgnoreLevel, ROOT.kInfo+1
263 for name, dimensions
in arrays:
264 getattr(self, name).compilecpp(f)
265 ROOT.gErrorIgnoreLevel = bkpgErrorIgnoreLevel
269 return getattr(self.
__mela, name)
273 if hasattr(self.
__mela, name):
274 return setattr(self.
__mela, name, value)
275 elif hasattr(
type(self), name)
and hasattr(getattr(
type(self), name),
"__set__"):
276 return getattr(
type(self), name).__set__(self, value)
278 raise ValueError(
"Can't set attribute '{}' for python Mela, which doesn't exist for C++ MELA".format(name))
282 def setInputEvent(self, daughters, associated=None, mothers=None, isGen=False):
283 if daughters
is None: daughters = ROOT.nullptr
284 if associated
is None: associated = ROOT.nullptr
285 if mothers
is None: mothers = ROOT.nullptr
290 "For any LHE event that writes H (id=25 or 39) explicitly and decays it"
291 from lhefile
import LHEEvent_Hwithdecay
294 "For any LHE event that writes H (id=25) explicitly and doesn't decay it"
295 from lhefile
import LHEEvent_StableHiggs
298 "For undecayed JHUGen VBF and VH (same as StableHiggs, but insists on exactly 2 associated particles)"
299 from lhefile
import LHEEvent_JHUGenVBFVH
302 "For undecayed JHUGen ttH (same as StableHiggs, but insists on exactly 6 associated particles)"
303 from lhefile
import LHEEvent_JHUGenttH
308 DecayAngles = namedtuple(
"DecayAngles",
"qH m1 m2 costheta1 costheta2 Phi costhetastar Phi1")
310 VBFAngles = namedtuple(
"VBFAngles",
"Q2V1 Q2V2 costheta1 costheta2 Phi costhetastar Phi1")
313 result = ROOT.computeVBFAngles_ComplexBoost(self.
__mela)
314 result = tuple(result)
315 return self.
VBFAngles(result[0], result[1], result[2]+1j*result[3], result[4]+1j*result[5], *result[6:])
316 VHAngles = namedtuple(
"VHAngles",
"mVstar mV costheta1 costheta2 Phi costhetastar Phi1")
340 result = ROOT.getWeightedMEArray(self.
__melaio)
341 return [list(_)
for _
in result]
343 result = ROOT.getUnweightedMEArray(self.
__melaio)
344 return [list(_)
for _
in result]
346 result = ROOT.getPartonWeights(self.
__melaio)
347 return list(result.first), list(result.second)
390 ghzgs1_prime2 =
SelfDCoupling(
"selfDHzzcoupl", 0, ROOT.py_gHIGGS_ZA_1_PRIME2)
402 Lambda_z11 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_1, ROOT.py_cLambdaHIGGS_VV_QSQ1)
403 Lambda_z12 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_2, ROOT.py_cLambdaHIGGS_VV_QSQ1)
404 Lambda_z13 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_3, ROOT.py_cLambdaHIGGS_VV_QSQ1)
405 Lambda_z14 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_4, ROOT.py_cLambdaHIGGS_VV_QSQ1)
408 Lambda_z21 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_1, ROOT.py_cLambdaHIGGS_VV_QSQ2)
409 Lambda_z22 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_2, ROOT.py_cLambdaHIGGS_VV_QSQ2)
410 Lambda_z23 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_3, ROOT.py_cLambdaHIGGS_VV_QSQ2)
411 Lambda_z24 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_4, ROOT.py_cLambdaHIGGS_VV_QSQ2)
413 cz_q12sq =
SelfDParameter(
"selfDHzzCLambda_qsq", 0, ROOT.py_cLambdaHIGGS_VV_QSQ12)
414 Lambda_z01 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_1, ROOT.py_cLambdaHIGGS_VV_QSQ12)
415 Lambda_z02 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_2, ROOT.py_cLambdaHIGGS_VV_QSQ12)
416 Lambda_z03 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_3, ROOT.py_cLambdaHIGGS_VV_QSQ12)
417 Lambda_z04 =
SelfDParameter(
"selfDHzzLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_4, ROOT.py_cLambdaHIGGS_VV_QSQ12)
458 Lambda_w11 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_1, ROOT.py_cLambdaHIGGS_VV_QSQ1)
459 Lambda_w12 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_2, ROOT.py_cLambdaHIGGS_VV_QSQ1)
460 Lambda_w13 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_3, ROOT.py_cLambdaHIGGS_VV_QSQ1)
461 Lambda_w14 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_4, ROOT.py_cLambdaHIGGS_VV_QSQ1)
464 Lambda_w21 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_1, ROOT.py_cLambdaHIGGS_VV_QSQ2)
465 Lambda_w22 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_2, ROOT.py_cLambdaHIGGS_VV_QSQ2)
466 Lambda_w23 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_3, ROOT.py_cLambdaHIGGS_VV_QSQ2)
467 Lambda_w24 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_4, ROOT.py_cLambdaHIGGS_VV_QSQ2)
469 cw_q12sq =
SelfDParameter(
"selfDHwwCLambda_qsq", 0, ROOT.py_cLambdaHIGGS_VV_QSQ12)
470 Lambda_w01 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_1, ROOT.py_cLambdaHIGGS_VV_QSQ12)
471 Lambda_w02 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_2, ROOT.py_cLambdaHIGGS_VV_QSQ12)
472 Lambda_w03 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_3, ROOT.py_cLambdaHIGGS_VV_QSQ12)
473 Lambda_w04 =
SelfDParameter(
"selfDHwwLambda_qsq", 0, ROOT.py_LambdaHIGGS_QSQ_VV_4, ROOT.py_cLambdaHIGGS_VV_QSQ12)
511 ghzpgs1_prime2 =
SelfDCoupling(
"selfDHzzpcoupl", ROOT.py_gHIGGS_ZA_1_PRIME2)
528 ghzpzp1_prime2 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_1_PRIME2)
529 ghzpzp1_prime3 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_1_PRIME3)
530 ghzpzp1_prime4 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_1_PRIME4)
531 ghzpzp1_prime5 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_1_PRIME5)
534 ghzpzp2_prime2 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_2_PRIME2)
535 ghzpzp2_prime3 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_2_PRIME3)
536 ghzpzp2_prime4 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_2_PRIME4)
537 ghzpzp2_prime5 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_2_PRIME5)
540 ghzpzp3_prime2 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME2)
541 ghzpzp3_prime3 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME3)
542 ghzpzp3_prime4 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME4)
543 ghzpzp3_prime5 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME5)
546 ghzpzp4_prime2 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_4_PRIME2)
547 ghzpzp4_prime3 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_4_PRIME3)
548 ghzpzp4_prime4 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_4_PRIME4)
549 ghzpzp4_prime5 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_4_PRIME5)
551 ghzpzp1_prime6 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_1_PRIME6)
552 ghzpzp1_prime7 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_1_PRIME7)
553 ghzpzp2_prime6 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_2_PRIME6)
554 ghzpzp2_prime7 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_2_PRIME7)
555 ghzpzp3_prime6 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME6)
556 ghzpzp3_prime7 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME7)
557 ghzpzp4_prime6 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME6)
558 ghzpzp4_prime7 =
SelfDCoupling(
"selfDHzpzpcoupl", ROOT.py_gHIGGS_VV_3_PRIME7)
567 ezp_NuE_right =
SelfDCoupling(
"selfDZpffcoupl", ROOT.py_gHIGGS_Vp_NuE_right)
573 ezp_Str_right =
SelfDCoupling(
"selfDZpffcoupl", ROOT.py_gHIGGS_Vp_Str_right)
575 ezp_Chm_right =
SelfDCoupling(
"selfDZpffcoupl", ROOT.py_gHIGGS_Vp_Chm_right)
577 ezp_Bot_right =
SelfDCoupling(
"selfDZpffcoupl", ROOT.py_gHIGGS_Vp_Bot_right)
579 ezp_Top_right =
SelfDCoupling(
"selfDZpffcoupl", ROOT.py_gHIGGS_Vp_Top_right)
592 ewp_Chm_right =
SelfDCoupling(
"selfDWpffcoupl", ROOT.py_gHIGGS_Vp_Chm_right)
594 ewp_Top_right =
SelfDCoupling(
"selfDWpffcoupl", ROOT.py_gHIGGS_Vp_Top_right)
606 graviton_qq_left =
SelfDCoupling(
"selfDGqqcoupl", ROOT.py_gGRAVITON_QQ_LEFT)
607 graviton_qq_right =
SelfDCoupling(
"selfDGqqcoupl", ROOT.py_gGRAVITON_QQ_RIGHT)
684 if iterable
is None:
return ROOT.SimpleParticleCollection_t()
685 result = ROOT.SimpleParticleCollection_t()
687 result.push_back(SimpleParticle_t(_))
691 if pxortlv
is py
is pz
is e
is None:
692 if isinstance(lineorid, ROOT.SimpleParticle_t):
return lineorid
693 if isinstance(lineorid, basestring):
694 lineorid = lineorid.split()
695 if len(lineorid) == 13:
696 id, status, mother1, mother2, color1, color2, px, py, pz, e, m, lifetime, spin = (
f(_)
for f, _
in zip((int, int, int, int, int, int, float, float, float, float, float, float, float), lineorid))
697 elif len(lineorid) == 5:
698 id, px, py, pz, e = (
f(_)
for f, _
in zip((int, float, float, float, float), lineorid))
699 elif len(lineorid) == 2:
700 id, pxortlv = lineorid
702 raise ValueError(
"len(lineorid) has to be 5 or 13, not {}".format(len(lineorid)))
707 if py
is pz
is e
is None:
710 tlv = ROOT.TLorentzVector(px, py, pz, e)
712 return ROOT.SimpleParticle_t(id, tlv)
714 if __name__ ==
"__main__":
718 12 50 1.0000000E+00 1.2500000E+02 7.8125000E-03 1.2380607E-01
719 2 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 1.65430825479E+03 1.65430825479E+03 0.00000000000E+00 0.00000000000E+00 1.
720 -1 -1 0 0 0 503 0.00000000000E+00 0.00000000000E+00 -1.42857195999E+01 1.42857195999E+01 0.00000000000E+00 0.00000000000E+00 1.
721 24 2 1 2 0 0 -2.29473352103E+00 -1.04804828491E+02 4.95291431378E+02 5.12296652853E+02 7.83896718395E+01 0.00000000000E+00 1.
722 25 2 1 2 0 0 2.29473352103E+00 1.04804828491E+02 1.14473110382E+03 1.15629732154E+03 1.24999511524E+02 0.00000000000E+00 1.
723 14 1 3 3 0 0 4.42035961901E+00 -5.60456350211E+01 4.09886160671E+02 4.13723721213E+02 8.42936970218E-06 0.00000000000E+00 1.
724 -13 1 3 3 0 0 -6.71509314004E+00 -4.87591934698E+01 8.54052707068E+01 9.85729316407E+01 1.05660000144E-01 0.00000000000E+00 1.
725 23 2 4 4 0 0 -2.00748771644E+01 3.21702667586E+01 3.27018956548E+02 3.30034988785E+02 2.33188576920E+01 0.00000000000E+00 1.
726 23 2 4 4 0 0 2.23696106855E+01 7.26345617324E+01 8.17712147272E+02 8.26262332755E+02 9.09950970840E+01 0.00000000000E+00 1.
727 -11 1 7 7 0 0 -1.74223737299E+01 9.11950220870E+00 1.06644211152E+02 1.08442114510E+02 5.11001208360E-04 0.00000000000E+00 1.
728 11 1 7 7 0 0 -2.65250343458E+00 2.30507645499E+01 2.20374745396E+02 2.21592874275E+02 5.10994690391E-04 0.00000000000E+00 1.
729 -13 1 8 8 0 0 8.81223774828E+00 8.87930337607E+01 5.03683096793E+02 5.11525690007E+02 1.05660000328E-01 0.00000000000E+00 1.
730 13 1 8 8 0 0 1.35573729372E+01 -1.61584720283E+01 3.14029050479E+02 3.14736642748E+02 1.05659999907E-01 0.00000000000E+00 1.
735 12 50 1.0000000E+00 1.2500000E+02 7.8125000E-03 1.2380607E-01
736 1 -1 0 0 503 0 0.00000000000E+00 0.00000000000E+00 1.58591490197E+03 1.58591490197E+03 0.00000000000E+00 0.00000000000E+00 1.
737 -1 -1 0 0 0 503 0.00000000000E+00 0.00000000000E+00 -8.99084923758E+00 8.99084923758E+00 0.00000000000E+00 0.00000000000E+00 1.
738 23 2 1 2 0 0 4.31808951699E+01 1.18843550193E+01 8.22005355890E+02 8.28398612649E+02 9.24425698805E+01 0.00000000000E+00 1.
739 25 2 1 2 0 0 -4.31808951699E+01 -1.18843550193E+01 7.54918696840E+02 7.66507138556E+02 1.25000508063E+02 0.00000000000E+00 1.
740 11 1 3 3 0 0 -1.35803884002E+01 -5.28931958672E+00 5.41360784563E+02 5.41556924907E+02 5.11072900539E-04 0.00000000000E+00 1.
741 -11 1 3 3 0 0 5.67612835701E+01 1.71736746060E+01 2.80644571326E+02 2.86841687743E+02 5.11012071458E-04 0.00000000000E+00 1.
742 23 2 4 4 0 0 -2.43038338852E+01 5.06442605250E+00 2.48359236741E+02 2.53284239962E+02 4.30612469142E+01 0.00000000000E+00 1.
743 23 2 4 4 0 0 -1.88770612847E+01 -1.69487810718E+01 5.06559460099E+02 5.13222898594E+02 7.84324703350E+01 0.00000000000E+00 1.
744 -13 1 7 7 0 0 -3.25370809281E+01 -6.79837669312E+00 2.02354268485E+02 2.05066186143E+02 1.05659999991E-01 0.00000000000E+00 1.
745 13 1 7 7 0 0 8.23324704291E+00 1.18628027456E+01 4.60049682560E+01 4.82180538193E+01 1.05659999989E-01 0.00000000000E+00 1.
746 -13 1 8 8 0 0 4.59433181687E+00 -3.18015647781E+01 4.39027117172E+02 4.40201395027E+02 1.05659999655E-01 0.00000000000E+00 1.
747 13 1 8 8 0 0 -2.34713931016E+01 1.48527837063E+01 6.75323429266E+01 7.30215035668E+01 1.05660000010E-01 0.00000000000E+00 1.
752 11 60 1.0000000E+00 1.2500000E+02 7.8125000E-03 1.2380607E-01
753 1 -1 0 0 501 0 0.00000000000E+00 0.00000000000E+00 8.38349783822E+01 8.38349783822E+01 0.00000000000E+00 0.00000000000E+00 1.
754 2 -1 0 0 502 0 0.00000000000E+00 0.00000000000E+00 -8.69647303563E+02 8.69647303563E+02 0.00000000000E+00 0.00000000000E+00 1.
755 4 1 1 2 501 0 4.93534233194E+01 -7.45486758049E+00 2.54822242213E+01 5.60417629563E+01 0.00000000000E+00 0.00000000000E+00 1.
756 1 1 1 2 502 0 -4.29482465415E+01 4.39907893858E+01 -7.51475061906E+02 7.53985749267E+02 0.00000000000E+00 0.00000000000E+00 1.
757 25 2 1 2 0 0 -6.40517677787E+00 -3.65359218053E+01 -5.98194874970E+01 1.43454769722E+02 1.25000000000E+02 0.00000000000E+00 1.
758 23 2 5 5 0 0 -1.61638014503E+01 -3.55963825472E+01 -2.51394501445E+01 1.03431837860E+02 9.24001201399E+01 0.00000000000E+00 1.
759 23 2 5 5 0 0 9.75862467247E+00 -9.39539258134E-01 -3.46800373525E+01 4.00229318615E+01 1.74073718437E+01 0.00000000000E+00 1.
760 -11 1 6 6 0 0 3.37109433312E+01 -2.97615359833E+01 4.38251799494E+00 4.51816687231E+01 5.11000134768E-04 0.00000000000E+00 1.
761 11 1 6 6 0 0 -4.98747447816E+01 -5.83484656388E+00 -2.95219681394E+01 5.82501691374E+01 5.11001208360E-04 0.00000000000E+00 1.
762 -13 1 7 7 0 0 1.46596263059E+01 5.33582780943E-01 -2.31337995488E+01 2.73929406894E+01 1.05660000000E-01 0.00000000000E+00 1.
763 13 1 7 7 0 0 -4.90100163341E+00 -1.47312203908E+00 -1.15462378037E+01 1.26299911721E+01 1.05660000000E-01 0.00000000000E+00 1.
768 11 -71.89077865749999319 30.50307494750000004 -47.20025487019999844 91.25012710839999386
769 -11 -25.13451734110000046 -18.85931656560000036 -81.42283896300000379 87.27597887359999618
770 11 -51.80274100940000181 1.64269040236999997 -41.79162596869999646 66.57899375339999892
771 -11 -93.72924763700000028 39.45060783929999815 -92.98363978320000456 137.79506373300000632
774 -1 211.33318543799998679 -14.90577872979999974 3.74371777679000006 211.89127619999999297
775 2 31.22409920730000010 -37.83127789369999761 1.23465418111000003 49.06805813689999951
778 -1 0.00000000000000000 0.00000000000000000 192.71975508899998886 192.71975508899998886
779 2 0.00000000000000000 0.00000000000000000 -451.13974271600000066 451.13974271600000066
783 SimpleParticleCollection_t(line.split()
for line
in daughters.split(
"\n")
if line.split()),
784 SimpleParticleCollection_t(line.split()
for line
in associated.split(
"\n")
if line.split()),
785 SimpleParticleCollection_t(line.split()
for line
in mothers.split(
"\n")
if line.split()),
798 (1, 0, 0, -12110.20),
801 m.ghz1, m.ghz2, m.ghz4, m.ghz1_prime2 = _
802 m.setProcess(TVar.SelfDefine_spin0, TVar.JHUGen, TVar.ZZINDEPENDENT)
803 dec = m.computeP(
False)
804 m.ghz1, m.ghz2, m.ghz4, m.ghz1_prime2 = _
805 m.setProcess(TVar.SelfDefine_spin0, TVar.JHUGen, TVar.Had_WH)
806 prod = m.computeProdP(
False)
807 print(prod, dec, prod*dec)
809 print(m.computeDecayAngles())
810 print(m.computeVBFAngles())
811 print(m.computeVBFAngles_ComplexBoost())
812 print(m.computeVHAngles(TVar.Had_WH))
814 print(
" BW:", m.getXPropagator(TVar.FixedWidth))
815 print(
" CPS:", m.getXPropagator(TVar.CPS))
816 print(m.getIORecord().getWeightedMEArray())
817 print(m.getIORecord().getUnweightedMEArray())
818 print(m.getIORecord().getPartonWeights())