Belle II Software development
EvtDsToKKpi.h
1// Model: EvtDsToKKpi
2// This file is an amplitude model for Ds+ -> K- K+ pi+.
3// The model is from the BESIII Collaboration in PRD 104, 012016 (2021). DOI: https://doi.org/10.1103/PhysRevD.104.012016
4//
5// Permission to use 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#include <EvtGenBase/EvtDecayProb.hh>
11#include <EvtGenBase/EvtDecayAmp.hh>
12#include <EvtGenBase/EvtParticle.hh>
13#include <fstream>
14
15namespace Belle2 {
20 class EvtDsToKKpi: public EvtDecayProb {
21
22 public:
23
24 EvtDsToKKpi() {}
25 virtual ~EvtDsToKKpi();
26 std::string getName();
27 EvtDecayBase* clone();
28 void init();
29 void initProbMax();
30 void decay(EvtParticle* p);
31
32 private:
33 void MIP_LineShape(double sa, double pro[2]);
34 void calEvaMy(double* pKm, double* pKp, double* pPi, double* mass1, double* width1, double* amp, double* phase, int* g0,
35 int* modetype, int nstates, double& Result);
36 void Com_Multi(double a1[2], double a2[2], double res[2]);
37 void Com_Divide(double a1[2], double a2[2], double res[2]);
38 double SCADot(double a1[4], double a2[4]);
39 double barrier(int l, double sa, double sb, double sc, double r);
40 double barrierNeo(int l, double sa, double sb, double sc, double r, double mR);
41 double barrierNeoDs(int l, double sa, double sb, double sc, double r, double mR, double mb);
42 void calt1(double daug1[4], double daug2[4], double t1[4]);
43 void calt2(double daug1[4], double daug2[4], double t2[4][4]);
44 void propagator(double mass, double width, double sx, double prop[2]);
45 double wid(double mass, double sa, double sb, double sc, double r, int l);
46 void Flatte_rhoab(double sa, double sb, double sc, double rho[2]);
47 void propagatorFlatte(double mass, double width, double sx, double* sb, double* sc, double prop[2]);
48 void propagator980(double mass, double sx, double* sb, double* sc, double prop[2]);
49 void propagatora0980(double mass, double sx, double* sb, double* sc, double prop[2]);
50 void propagatorKstr1430(double mass, double sx, double* sb, double* sc, double prop[2]);
51 void propagatorRBW(double mass, double width, double sa, double sb, double sc, double r, int l, double prop[2]);
52 void propagatorRBWNeo(double mass, double width, double sa, double sb, double sc, double r, int l, double prop[2]);
53 void propagatorRBWNeoKstr892(double mass, double width, double sa, double sb, double sc, double r, int l, double prop[2]);
54 double h(double m, double q);
55 double dh(double mass, double q0);
56 double f(double mass, double sx, double q0, double q);
57 double d(double mass, double q0);
58 void propagatorGS(double mass, double width, double sa, double sb, double sc, double r, int l, double prop[2]);
59
60 // Parameters
61 double phi[6], rho[6], mass[6], width[6];
62 int modetype[6];
63 double mD, mDs, rRes, rD, mkstr, mk0, mass_Kaon, mass_Pion, mass_Pi0, mass_EtaP, mass_Eta, math_pi, afRatio;
64 int G[4][4], E[4][4][4][4];
65
66 };
67
68} // Belle2 namespace
Abstract base class for different kinds of events.