9#include "EvtGenBase/EvtPatches.hh"
12#include "EvtGenBase/EvtParticle.hh"
13#include "EvtGenBase/EvtGenKine.hh"
14#include "EvtGenBase/EvtPDL.hh"
15#include "EvtGenBase/EvtReport.hh"
16#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
17#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
20#include "generators/evtgen/EvtGenModelRegister.h"
21#include "generators/evtgen/models/EvtHQET3.h"
22#include "generators/evtgen/models/EvtHQET3FF.h"
61 p->initializePhaseSpace(getNDaug(), getDaugs());
69 EvtId parnum, mesnum, lnum, nunum;
71 parnum = getParentId();
76 double mymaxprob =
calcamp->CalcMaxProb(parnum, mesnum,
80 static EvtId EM = EvtPDL::getId(
"e-");
81 static EvtId EP = EvtPDL::getId(
"e+");
82 static EvtId MUM = EvtPDL::getId(
"mu-");
83 static EvtId MUP = EvtPDL::getId(
"mu+");
84 static EvtId TAUM = EvtPDL::getId(
"tau-");
85 static EvtId TAUP = EvtPDL::getId(
"tau+");
87 if (lnum == EP || lnum == EM || lnum == MUP || lnum == MUM) {
88 setProbMax(mymaxprob);
91 if (lnum == TAUP || lnum == TAUM) {
108 checkSpinParent(EvtSpinType::SCALAR);
110 checkSpinDaughter(1, EvtSpinType::DIRAC);
111 checkSpinDaughter(2, EvtSpinType::NEUTRINO);
113 EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0));
114 if (d1type == EvtSpinType::SCALAR) {
115 if (getNArg() == 3) {
117 calcamp =
new EvtSemiLeptonicScalarAmp;
119 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"HQET3 model for scalar meson daughters needs 2 arguments. Sorry." << endl;
122 }
else if (d1type == EvtSpinType::VECTOR) {
123 if (getNArg() == 5) {
125 calcamp =
new EvtSemiLeptonicVectorAmp;
127 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"HQET3 model for vector meson daughtersneeds 4 arguments. Sorry." << endl;
131 EvtGenReport(EVTGEN_ERROR,
"EvtGen") <<
"HQET3 model handles only scalar and vector meson daughters. Sorry." << endl;
The class provides the form factors for semileptonic D & D* decays with full mass dependence.
The class provides the form factors for orbitally excited semileptonic decays.
EvtSemiLeptonicAmp * calcamp
Pointers needed to calculate amplitude.
void init()
Initializes module.
EvtSemiLeptonicFF * hqetffmodel
Pointers needed for FFs.
EvtDecayBase * clone()
Clones module.
EvtHQET3()
Default constructor.
void initProbMax()
Sets maximal probab.
virtual ~EvtHQET3()
virtual destructor
std::string getName()
Returns name of module.
void decay(EvtParticle *p)
Creates a decay.
#define B2_EVTGEN_REGISTER_MODEL(classname)
Class to register B2_EVTGEN_REGISTER_MODEL.