Belle II Software development
EvtDToKSpipi0pi0.h
1// Model: EvtDToKSpipi0pi0
2// This file is an amplitude model for D+ -> K_S0 pi- pi0 pi0.
3// The model is from the BESIII Collaboration in JHEP09 (2023) 077. DOI:  https://doi.org/10.1007/JHEP09(2023)077
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 EvtDToKSpipi0pi0: public EvtDecayProb {
20
21 public:
22 EvtDToKSpipi0pi0() {}
23 virtual ~EvtDToKSpipi0pi0();
24 std::string getName();
25 EvtDecayBase* clone();
26 void init();
27 void initProbMax();
28 void decay(EvtParticle* p);
29
30 private:
32 double calPDF(const double Ks[], const double Pip[], const double Pi01[], const double Pi02[], double& Result);
33
35 void Com_Multi(const double a1[2], const double a2[2], double res[2]);
37 void Com_Divide(const double a1[2], const double a2[2], double res[2]);
39 double SCADot(const double a1[4], const double a2[4]);
40
42 double Barrier(const double mass2, const int l, const double sa, const double sb, const double sc, const double r2);
44 void calt1(const double daug1[4], const double daug2[4], double t1[4]);
46 void calt2(const double daug1[4], const double daug2[4], double t2[4][4]);
48 double wid(const double mass2, const double mass, const double sa, const double sb, const double sc, const double r2, const int l);
50 double widl1(const double mass2, const double mass, const double sa, const double sb, const double sc, const double r2);
51
53 void propagatorRBW(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc,
54 const double r2, const int l, double prop[2]);
56 void propagatorRBWl1(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc,
57 const double r2, double prop[2]);
59 void propagatorRBW_a1(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc,
60 const double r2, const int l, double prop[2]);
62 void propagatorGS(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc,
63 const double r2, double prop[2]);
65 void propagatorsigma500(const double sa, const double sb, const double sc, double prop[2]);
66
68 void rhoab(const double sa, const double sb, const double sc, double res[2]);
70 void rho4Pi(const double sa, double res[2]);
72 void KPiSLASS(const double sa, const double sb, const double sc, double prop[2]);
73
76
78 static constexpr int STDim = 4;
79 double G[STDim][STDim], E[STDim][STDim][STDim][STDim];
80
82 static constexpr int numOfParameters = 24;
83 double rho[numOfParameters];
84 double phi[numOfParameters];
85
87 static constexpr int topologies = 20;
88 double modetype[topologies];
89
91 double mrho, Grho, mKstr0, GKstr0, msigma, Gsigma;
92 double ma1, Ga1, mK1270, GK1270, mK1400, GK1400;
93
95 double mD;
96 double math_pi;
97 };
98
100} // Belle 2 Namespace
static constexpr int numOfParameters
Number of Fit Parameters.
static constexpr int topologies
Number of Decay Topologies.
int mother_c
Mother PDG code.
static constexpr int STDim
Number of Spacetime Dimensions (t, x, y, z)
double mD
Fixed parameters.
double mrho
Resonance Mass and Width.
double Barrier(const double mass2, const int l, const double sa, const double sb, const double sc, const double r2)
Blatt-Weisskopf barrier factors.
double SCADot(const double a1[4], const double a2[4])
Four-Vector Scalar Product.
void rho4Pi(const double sa, double res[2])
Two-body Phase-space Function (Two Pions)
void propagatorsigma500(const double sa, const double sb, const double sc, double prop[2])
sigma(500) Lineshape Function
void calt1(const double daug1[4], const double daug2[4], double t1[4])
Covariant Spin-1 Projector.
void calt2(const double daug1[4], const double daug2[4], double t2[4][4])
Covariant Spin-2 Projector.
void Com_Multi(const double a1[2], const double a2[2], double res[2])
Complex Multiplication.
void propagatorRBW_a1(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc, const double r2, const int l, double prop[2])
Relativistic Breit-Wigner Lineshape Function (Specific to a_1)
void propagatorRBW(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc, const double r2, const int l, double prop[2])
Relativistic Breit-Wigner Lineshape Function.
void KPiSLASS(const double sa, const double sb, const double sc, double prop[2])
LASS Parameterization Kpi S-Wave Function.
double widl1(const double mass2, const double mass, const double sa, const double sb, const double sc, const double r2)
Energy Dependent Width (L=1)
void propagatorRBWl1(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc, const double r2, double prop[2])
Relativistic Breit-Wigner Lineshape Function (L=1)
double wid(const double mass2, const double mass, const double sa, const double sb, const double sc, const double r2, const int l)
Energy Dependent Width.
void propagatorGS(const double mass2, const double mass, const double width, const double sa, const double sb, const double sc, const double r2, double prop[2])
Gounaris-Sakurai lineshape Function.
void Com_Divide(const double a1[2], const double a2[2], double res[2])
Complex Division.
double calPDF(const double Ks[], const double Pip[], const double Pi01[], const double Pi02[], double &Result)
Probability distribution function of the decay.
void rhoab(const double sa, const double sb, const double sc, double res[2])
Two-body Phase-space Function.
Abstract base class for different kinds of events.