Belle II Software development
EvtD0ToKpipipi.h
1// Model: EvtD0ToKpipipi
2// This file is an amplitude model for D0 -> K- pi+ pi+ pi-.
3// The model is from the BESIII Collaboration in PRD 95, 072010 (2017). DOI:  https://doi.org/10.1103/PhysRevD.95.072010
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 EvtD0ToKpipipi: public EvtDecayProb {
20
21 public:
22
23 EvtD0ToKpipipi() {}
24 virtual ~EvtD0ToKpipipi();
25 std::string getName();
26 EvtDecayBase* clone();
27 void init();
28 void initProbMax();
29 void decay(EvtParticle* p);
30
31 private:
33 EvtComplex KPiSFormfactor(const double sa, const double sb, const double sc, const double r);
35 double calPDF(double* Km, double* Pip1, double* Pip2, double* Pim);
37 EvtComplex D2VV(const double* P1, const double* P2, const double* P3, const double* P4, int* g);
38 EvtComplex D2AP_A2VP(const double* P1, const double* P2, const double* P3, const double* P4, int* g, const int flag);
39 EvtComplex D2AP_A2SP(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
40 EvtComplex D2PP_P2VP(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
41 EvtComplex D2VP_V2VP(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
42 EvtComplex D2VS(const double* P1, const double* P2, const double* P3, const double* P4, int g, const int flag);
43 EvtComplex D2TS(const double* P1, const double* P2, const double* P3, const double* P4, const int flag);
44 EvtComplex PHSP(double* Km, double* Pip);
45
47 double dot(const double* a1, const double* a2)const;
49 double Qabcs(const double sa, const double sb, const double sc)const;
51 double barrier(const double l, const double sa, const double sb, const double sc, const double r)const;
53 void calt1(const double* daug1, const double* daug2, double* t1) const;
55 void calt2(const double* daug1, const double* daug2, double (*t2)[4]) const;
56
58 EvtComplex propagatorRBW(double mass, double width, const double sa, const double sb, const double sc, const double r,
59 const int l)const;
61 EvtComplex propagatorGS(double mass, double width, const double sa, const double sb, const double sc, const double r,
62 const int l)const;
64 EvtComplex propogator(double mass, double width, const double sx) const;
65
67 double wid(double mass, const double sa, const double sb, const double sc, const double r, const int l) const;
69 double h(const double m, const double q) const;
71 double dh(double mass, const double q0) const;
73 double f(double mass, const double sx, const double q0, const double q) const;
75 double d(double mass, const double q0) const;
76
78 static constexpr int STDim = 4;
79 double G[STDim][STDim], E[STDim][STDim][STDim][STDim];
80
82 static constexpr int numberOfResonances = 4;
83 double mass[numberOfResonances];
84 double width[numberOfResonances];
85
87 static constexpr int numOfParameters = 24;
88 double rho[numOfParameters];
89 double phi[numOfParameters];
90
92 double mD;
93 double rRes;
94 double rD;
95 double metap;
96 double mkstr;
97 double mk0;
98 double mass_Kaon;
99 double mass_Pion;
100 double mass_Pi0;
101 double math_pi;
102
103 double pi;
104 double mpi;
105 double g1;
106 double g2;
107 };
108
110} // Belle 2 Namespace
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 calPDF(double *Km, double *Pip1, double *Pip2, double *Pim)
Probability distribution function of the decay.
EvtComplex D2VV(const double *P1, const double *P2, const double *P3, const double *P4, int *g)
Amplitude modes.
double f(double mass, const double sx, const double q0, const double q) const
f function in Gounaris-Sakurai lineshape
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.
double dot(const double *a1, const double *a2) const
Four-Vector Scalar Product.
void calt1(const double *daug1, const double *daug2, double *t1) const
Covariant Spin-1 Projector.
void calt2(const double *daug1, const double *daug2, double(*t2)[4]) const
Covariant Spin-2 Projector.
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.
double barrier(const double l, const double sa, const double sb, const double sc, const double r) const
Blatt-Weisskopf barrier factors.
double wid(double mass, const double sa, const double sb, const double sc, const double r, const int l) const
Energy dependent width.
EvtComplex propogator(double mass, double width, const double sx) const
Relativistic Breit-Wigner Lineshape Function (Fixed Width)
double h(const double m, const double q) const
h function in Gounaris-Sakurai lineshape
Abstract base class for different kinds of events.