9#include "EvtGenBase/EvtParticle.hh"
10#include "EvtGenBase/EvtPDL.hh"
12#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
13#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
14#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh"
16#include "generators/evtgen/EvtGenModelRegister.h"
17#include "generators/evtgen/models/EvtLLSW.h"
18#include "generators/evtgen/models/EvtLLSWFF.h"
55 p->initializePhaseSpace(getNDaug(), getDaugs());
71 static EvtId EM = EvtPDL::getId(
"e-");
72 static EvtId EP = EvtPDL::getId(
"e+");
73 static EvtId MUM = EvtPDL::getId(
"mu-");
74 static EvtId MUP = EvtPDL::getId(
"mu+");
75 static EvtId TAUM = EvtPDL::getId(
"tau-");
76 static EvtId TAUP = EvtPDL::getId(
"tau+");
79 if (lnum == EP || lnum == EM || lnum == MUP || lnum == MUM) {
83 if (lnum == TAUP || lnum == TAUM) {
94 if (getNArg() < 2) checkNArg(2);
97 static EvtId D1P1P = EvtPDL::getId(
"D_1+");
98 static EvtId D1P1N = EvtPDL::getId(
"D_1-");
99 static EvtId D1P10 = EvtPDL::getId(
"D_10");
100 static EvtId D1P1B = EvtPDL::getId(
"anti-D_10");
101 static EvtId D3P2P = EvtPDL::getId(
"D_2*+");
102 static EvtId D3P2N = EvtPDL::getId(
"D_2*-");
103 static EvtId D3P20 = EvtPDL::getId(
"D_2*0");
104 static EvtId D3P2B = EvtPDL::getId(
"anti-D_2*0");
106 static EvtId DS1P = EvtPDL::getId(
"D_s1+");
107 static EvtId DS1M = EvtPDL::getId(
"D_s1-");
108 static EvtId DS2STP = EvtPDL::getId(
"D_s2*+");
109 static EvtId DS2STM = EvtPDL::getId(
"D_s2*-");
111 EvtId daughter = getDaug(0);
113 bool isNarrow =
false;
115 if (daughter == D1P1P || daughter == D1P1N || daughter == D1P10 || daughter == D1P1B ||
116 daughter == D3P2P || daughter == D3P2N || daughter == D3P20 || daughter == D3P2B ||
117 daughter == DS1P || daughter == DS1M || daughter == DS2STP || daughter == DS2STM)
123 checkSpinParent(EvtSpinType::SCALAR);
124 checkSpinDaughter(1, EvtSpinType::DIRAC);
125 checkSpinDaughter(2, EvtSpinType::NEUTRINO);
127 EvtSpinType::spintype mesontype = EvtPDL::getSpinType(getDaug(0));
130 llswffmodel =
new EvtLLSWFF(getArg(0), getArg(1), getNArg() > 2 ? getArg(2) : 0., getNArg() > 3 ? getArg(3) : 0.);
134 if (mesontype == EvtSpinType::SCALAR) {
135 calcamp =
new EvtSemiLeptonicScalarAmp;
137 if (mesontype == EvtSpinType::VECTOR) {
138 calcamp =
new EvtSemiLeptonicVectorAmp;
140 if (mesontype == EvtSpinType::TENSOR) {
141 calcamp =
new EvtSemiLeptonicTensorAmp;
The class provides the form factors for orbitally excited semileptonic decays.
The class provides the decay amplitude for orbitally excited semileptonic decays.
EvtSemiLeptonicAmp * calcamp
Pointers needed to calculate amplitude.
void init()
Initializes module.
virtual ~EvtLLSW()
virtual destructor
EvtLLSW()
Default constructor.
EvtDecayBase * clone()
Clones module.
EvtSemiLeptonicFF * llswffmodel
Pointers needed for FFs.
void initProbMax()
Sets maximal probab.
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.