13 #include "EvtGenBase/EvtParticle.hh"
14 #include "EvtGenBase/EvtGenKine.hh"
15 #include "EvtGenBase/EvtPDL.hh"
16 #include "EvtGenBase/EvtReport.hh"
17 #include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
18 #include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
21 #include "generators/evtgen/EvtGenModelRegister.h"
22 #include "generators/evtgen/models/EvtBGL.h"
23 #include "generators/evtgen/models/EvtBGLFF.h"
62 p->initializePhaseSpace(getNDaug(), getDaugs());
70 EvtId parnum, mesnum, lnum, nunum;
72 parnum = getParentId();
77 double mymaxprob =
calcamp->CalcMaxProb(parnum, mesnum,
81 static EvtId EM = EvtPDL::getId(
"e-");
82 static EvtId EP = EvtPDL::getId(
"e+");
83 static EvtId MUM = EvtPDL::getId(
"mu-");
84 static EvtId MUP = EvtPDL::getId(
"mu+");
85 static EvtId TAUM = EvtPDL::getId(
"tau-");
86 static EvtId TAUP = EvtPDL::getId(
"tau+");
88 if (lnum == EP || lnum == EM || lnum == MUP || lnum == MUM) {
89 setProbMax(mymaxprob);
92 if (lnum == TAUP || lnum == TAUM) {
109 checkSpinParent(EvtSpinType::SCALAR);
111 checkSpinDaughter(1, EvtSpinType::DIRAC);
112 checkSpinDaughter(2, EvtSpinType::NEUTRINO);
114 EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0));
115 if (d1type == EvtSpinType::SCALAR) {
116 if (getNArg() == 8) {
117 bglffmodel =
new EvtBGLFF(getArg(0), getArg(1), getArg(2), getArg(3), getArg(4), getArg(5), getArg(6), getArg(7));
118 calcamp =
new EvtSemiLeptonicScalarAmp;
120 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"BGL (N=3) model for scalar meson daughters needs 8 arguments. Sorry." << endl;
124 }
else if (d1type == EvtSpinType::VECTOR) {
125 if (getNArg() == 6) {
126 bglffmodel =
new EvtBGLFF(getArg(0), getArg(1), getArg(2), getArg(3), getArg(4), getArg(5));
127 calcamp =
new EvtSemiLeptonicVectorAmp;
129 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"BGL model for vector meson daughters needs 6 arguments. Sorry." << endl;
133 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"BGL model handles only scalar and vector meson daughters. Sorry." << endl;