10#include "EvtGenBase/EvtParticle.hh"
11#include "EvtGenBase/EvtGenKine.hh"
12#include "EvtGenBase/EvtPDL.hh"
13#include "EvtGenBase/EvtReport.hh"
14#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
15#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
18#include "generators/evtgen/EvtGenModelRegister.h"
19#include "generators/evtgen/models/EvtBGL2.h"
20#include "generators/evtgen/models/EvtBGL2FF.h"
25 m_bgl2ffmodel(nullptr)
57 p->initializePhaseSpace(getNDaug(), getDaugs());
65 EvtId parnum, mesnum, lnum, nunum;
67 parnum = getParentId();
72 double mymaxprob =
m_calcamp->CalcMaxProb(parnum, mesnum,
76 static EvtId EM = EvtPDL::getId(
"e-");
77 static EvtId EP = EvtPDL::getId(
"e+");
78 static EvtId MUM = EvtPDL::getId(
"mu-");
79 static EvtId MUP = EvtPDL::getId(
"mu+");
80 static EvtId TAUM = EvtPDL::getId(
"tau-");
81 static EvtId TAUP = EvtPDL::getId(
"tau+");
83 if (lnum == EP || lnum == EM || lnum == MUP || lnum == MUM) {
84 setProbMax(mymaxprob);
87 if (lnum == TAUP || lnum == TAUM) {
104 checkSpinParent(EvtSpinType::SCALAR);
106 checkSpinDaughter(1, EvtSpinType::DIRAC);
107 checkSpinDaughter(2, EvtSpinType::NEUTRINO);
109 EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0));
110 if (d1type == EvtSpinType::SCALAR) {
111 if (getNArg() == 8) {
112 m_bgl2ffmodel =
new EvtBGL2FF(getArg(0), getArg(1), getArg(2), getArg(3), getArg(4), getArg(5), getArg(6), getArg(7));
113 m_calcamp =
new EvtSemiLeptonicScalarAmp;
115 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"BGL2 (N=3) model for scalar meson daughters needs 8 arguments. Sorry." << std::endl;
120 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"BGL2 model handles only scalar meson daughters. Use the EvtBGL class for vector mesons." <<
The class provides the form factors for semileptonic D and D* decays with full mass dependence.
The class provides the form factors for orbitally excited semileptonic decays.
void init()
Initializes module.
virtual ~EvtBGL2()
virtual destructor
EvtSemiLeptonicFF * m_bgl2ffmodel
Pointers needed for form factors.
EvtDecayBase * clone()
Clones module.
EvtSemiLeptonicAmp * m_calcamp
Pointers needed to calculate amplitude.
void initProbMax()
Sets maximal probab.
std::string getName()
Returns name of module.
EvtBGL2()
Default constructor.
void decay(EvtParticle *p)
Creates a decay.
#define B2_EVTGEN_REGISTER_MODEL(classname)
Class to register B2_EVTGEN_REGISTER_MODEL.