Belle II Software prerelease-11-00-00a
EvtHNLBCL.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#include <EvtGenBase/EvtParticle.hh>
10#include <EvtGenBase/EvtPDL.hh>
11#include <string>
12
13#include <generators/evtgen/EvtGenModelRegister.h>
14#include <generators/evtgen/models/EvtHNLBCL.h>
15#include <generators/evtgen/models/EvtBCLFF.h>
16#include <generators/evtgen/models/EvtHNLSemiLeptonicScalarAmp.h>
17#include <generators/evtgen/models/EvtHNLSemiLeptonicVectorAmp.h>
18
19
20namespace Belle2 {
25
28
29 EvtHNLBCL::EvtHNLBCL() : bclmodel(nullptr), calcamp(nullptr) {}
30
32 {
33 delete bclmodel;
34 bclmodel = nullptr;
35 delete calcamp;
36 calcamp = nullptr;
37 }
38
39 std::string EvtHNLBCL::getName()
40 {
41 return "HNLBCL";
42 }
43
44 EvtDecayBase* EvtHNLBCL::clone()
45 {
46 return new EvtHNLBCL;
47 }
48
49 void EvtHNLBCL::decay(EvtParticle* p)
50 {
51 p->initializePhaseSpace(getNDaug(), getDaugs());
52 calcamp->CalcAmp(p, _amp2, bclmodel);
53 }
54
55
57 {
58
59 EvtId parnum, mesnum, lnum, nunum;
60
61 parnum = getParentId();
62 mesnum = getDaug(0);
63 lnum = getDaug(1);
64 nunum = getDaug(2);
65
66 double mymaxprob = calcamp->CalcMaxProb(parnum, mesnum, lnum, nunum, bclmodel);
67
68 setProbMax(mymaxprob);
69 }
70
71
73 {
74
75 checkNDaug(3);
76
77 //We expect the parent to be a scalar
78 //and the daughters to be X lepton neutrino
79
80 checkSpinParent(EvtSpinType::SCALAR);
81 checkSpinDaughter(1, EvtSpinType::DIRAC);
82 checkSpinDaughter(2, EvtSpinType::DIRAC);
83
84 EvtSpinType::spintype mesontype = EvtPDL::getSpinType(getDaug(0));
85
86 bclmodel = new EvtBCLFF(getNArg(), getArgs());
87
88 if (mesontype == EvtSpinType::SCALAR) {
90 }
91 if (mesontype == EvtSpinType::VECTOR) {
93 }
94 // Tensor Meson implementation is possible here.
95
96 }
97
99}
100
BCL Form Factors.
Definition EvtBCLFF.h:21
The class provides the form factors for orbitally excited semileptonic decays.
Definition EvtHNLBCL.h:24
EvtSemiLeptonicAmp * calcamp
Pointers needed to calculate amplitude.
Definition EvtHNLBCL.h:55
EvtSemiLeptonicFF * bclmodel
Pointers needed for FFs.
Definition EvtHNLBCL.h:52
Amplitude calculator for semileptonic HNL scalar decays.
Amplitude calculator for semileptonic HNL Vector decays.
void init()
Initializes module.
Definition EvtHNLBCL.cc:72
virtual ~EvtHNLBCL()
virtual destructor
Definition EvtHNLBCL.cc:31
EvtDecayBase * clone()
Clones module.
Definition EvtHNLBCL.cc:44
void initProbMax()
Sets maximal probab.
Definition EvtHNLBCL.cc:56
std::string getName()
Returns name of module.
Definition EvtHNLBCL.cc:39
#define B2_EVTGEN_REGISTER_MODEL(classname)
Class to register B2_EVTGEN_REGISTER_MODEL.
EvtHNLBCL()
Default constructor.
Definition EvtHNLBCL.cc:29
void decay(EvtParticle *p)
Creates a decay.
Definition EvtHNLBCL.cc:49
Abstract base class for different kinds of events.