Belle II Software development
EvtD0ToKpipi0pi0.h
1// Model: EvtD0ToKpipi0pi0
2// This file is an amplitude model for D0 -> K- pi+ pi0 pi0.
3// The model is from the BESIII Collaboration in PRD 99, 092008 (2019). DOI:  https://doi.org/10.1103/PhysRevD.99.092008
4//
5// Permission to include these files in basf2 was generously granted by the BESIII Collaboration.
6//
7// Please cite the original reference for any public/published results where this model was used.
8
9#pragma once
10
11#include <EvtGenBase/EvtDecayProb.hh>
12
13namespace Belle2 {
18
19 class EvtD0ToKpipi0pi0: public EvtDecayProb {
20
21 public:
22 EvtD0ToKpipi0pi0() {}
23 virtual ~EvtD0ToKpipi0pi0();
24 std::string getName();
25 EvtDecayBase* clone();
26 void init();
27 void initProbMax();
28 void decay(EvtParticle* p);
29
30 private:
32 EvtComplex KPiSFormfactor(const double sa, const double sb, const double sc, const double r);
34 double PDF(double* Km, double* Pip, double* Pi01, double* Pi02);
36 EvtComplex D2VV(const double* P1, const double* P2, const double* P3, const double* P4, int* g, const int flag);
37 EvtComplex D2AP_A2VP(const double* P1, const double* P2, const double* P3, const double* P4, int* g, const int flag);
38 EvtComplex D2AP_A2SP(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
39 EvtComplex D2PP_P2VP(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
40 EvtComplex D2VP_V2VP(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
41 EvtComplex D2VS(const double* P1, const double* P2, const double* P3, const double* P4, int g, const int flag);
42 EvtComplex D2TS(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
43 EvtComplex PHSP(double* Km, double* Pip);
44
46 double LorentzDotProduct(const double* a1, const double* a2)const;
48 double Qabcs(const double sa, const double sb, const double sc)const;
50 double BWBarrierFactor(const double l, const double sa, const double sb, const double sc, const double r)const;
52 void covariantTensor1(const double* daug1, const double* daug2, double* t1) const;
54 void covariantTensor2(const double* daug1, const double* daug2, double (*t2)[4]) const;
55
57 EvtComplex propagatorRBW(double mass, double width, const double sa, const double sb, const double sc, const double r,
58 const int l)const;
60 EvtComplex propagatorGS(double mass, double width, const double sa, const double sb, const double sc, const double r,
61 const int l)const;
62
64 double energyDependentWidth(const double mass, const double sa, const double sb, const double sc, const double r,
65 const int l) const;
67 double h(const double m, const double q) const;
69 double dh(double mass, const double q0) const;
71 double f(double mass, const double sx, const double q0, const double q) const;
73 double d(double mass, const double q0) const;
74
76 static constexpr int STDim = 4;
77 double G[STDim][STDim], E[STDim][STDim][STDim][STDim];
78
80 static constexpr int numberOfResonances = 5;
81 double mass[numberOfResonances];
82 double width[numberOfResonances];
83
85 static constexpr int numOfParameters = 68;
86 int mod[numOfParameters];
87 double rho[numOfParameters];
88 double phi[numOfParameters];
89
91 double mD;
92 double rRes;
93 double rD;
94 double metap;
95 double mk0;
96 double mass_Kaon;
97 double mass_Pion;
98 double math_pi;
99 double mass_Pi0;
100 double mkstrm;
101 double mkstr0;
102
103 double pi;
104 double mpi;
105 double g1;
106 double g2;
107 };
108
110} // Belle 2 Namespace
111
static constexpr int numOfParameters
Number of fit parameters.
static constexpr int STDim
Number of spacetime dimensions (t, x, y, z)
static constexpr int numberOfResonances
Number of resonances.
double mD
Fixed parameters.
double d(double mass, const double q0) const
d function in Gounaris-Sakurai lineshape
EvtComplex propagatorRBW(double mass, double width, const double sa, const double sb, const double sc, const double r, const int l) const
Relativistic Breit-Wigner lineshape function.
double dh(double mass, const double q0) const
derivative h function in Gounaris-Sakurai lineshape
double BWBarrierFactor(const double l, const double sa, const double sb, const double sc, const double r) const
Blatt-Weisskopf barrier factors.
double f(double mass, const double sx, const double q0, const double q) const
f function in Gounaris-Sakurai lineshape
void covariantTensor1(const double *daug1, const double *daug2, double *t1) const
Covariant Spin-1 Projector.
double LorentzDotProduct(const double *a1, const double *a2) const
Four-vector dot product.
EvtComplex propagatorGS(double mass, double width, const double sa, const double sb, const double sc, const double r, const int l) const
Gounaris-Sakurai lineshape function.
EvtComplex D2VV(const double *P1, const double *P2, const double *P3, const double *P4, int *g, const int flag)
Amplitude modes.
double PDF(double *Km, double *Pip, double *Pi01, double *Pi02)
Probability distribution function of the decay.
double Qabcs(const double sa, const double sb, const double sc) const
Magnitudes of daughter particle momenta in the rest system of the mother particle.
EvtComplex KPiSFormfactor(const double sa, const double sb, const double sc, const double r)
K pi S-wave form factor.
void covariantTensor2(const double *daug1, const double *daug2, double(*t2)[4]) const
Covariant Spin-2 Projector.
double h(const double m, const double q) const
h function in Gounaris-Sakurai lineshape
double energyDependentWidth(const double mass, const double sa, const double sb, const double sc, const double r, const int l) const
Energy dependent width.
Abstract base class for different kinds of events.