BOSS 7.1.1
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtD0Topippim2pi0.hh
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of models developed at BES collaboration
5// based on the EvtGen framework. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/BesCopyright
9// Copyright (A) 2006 Ping Rong-Gang @IHEP
10//
11// Module: EvtD0Topippim2pi0.cc
12//
13// Description: Model provided by user, see the mannual
14//
15// Modification history:
16//
17// Liaoyuan Dong Aug. 8, 2022 Module created
18//
19//------------------------------------------------------------------------
20
21#ifndef EVTD0TOPIPPIM2PI0_HH
22#define EVTD0TOPIPPIM2PI0_HH
23
25#include <vector>
26#include <complex>
27
28class EvtParticle;
29
31
32public:
33
35 virtual ~EvtD0Topippim2pi0();
36
37 void getName(std::string& name);
39
40 void init();
41 void initProbMax();
42 void decay(EvtParticle *p);
43
44private:
45
46 double AmplitudeSquare(int charm, int tagmode);
47
48 EvtVector4R GetDaugMomLab(int i){return _p4Lab[i];}
49 EvtVector4R GetDaugMomCM(int i) {return _p4CM[i];}
50 EvtVector4R GetDaugMomHel(int i){return _p4Hel[i];}
51
52 EvtVector4R _p4Lab[10],_p4CM[10],_p4Hel[10];
53 int _nd;
54
55 int charm;
56 int tagmode;
57
58 void setInput(double* pip, double* pim, double* pi01, double* pi02);
59 int CalAmp();
60
61 complex<double> Get_AmpD0(){return m_AmpD0;}
62 complex<double> Get_AmpDb(){return m_AmpDb;}
63
64 double Get_strongPhase();
65 complex<double> Amp(vector<double> Pip1, vector<double> Pim1, vector<double> Pip2, vector<double> Pim2);
66 double arg(complex<double> x);
67 double mag2(complex<double> x);
68
69 complex<double> CalD0Amp();
70 complex<double> CalDbAmp();
71
72 vector<double> sum_tensor(vector<double> pa, vector<double> pb);
73 double contract_11_0(vector<double> pa, vector<double> pb);
74 double contract_22_0(vector<double> pa, vector<double> pb);
75 vector<double> contract_21_1(vector<double> pa, vector<double> pb);
76 vector<double> contract_22_2(vector<double> pa, vector<double> pb);
77 vector<double> contract_31_2(vector<double> pa, vector<double> pb);
78 vector<double> contract_41_3(vector<double> pa, vector<double> pb);
79 vector<double> contract_42_2(vector<double> pa, vector<double> pb);
80
81 vector<double> OrbitalTensors(vector<double> pa, vector<double> pb, vector<double> pc, double r, int rank);
82 vector<double> ProjectionTensors(vector<double> pa, int rank);
83
84 double fundecaymomentum(double mr2, double m1_2, double m2_2);
85 double fundecaymomentum2(double mr2, double m1_2, double m2_2);
86 complex<double> breitwigner(double mx2, double mr, double wr);
87 double h(double m, double q);
88 double dh(double m0, double q0);
89 double f(double m0, double sx, double q0, double q);
90 double d(double m0, double q0);
91 double wid(double mass, double sa, double sb, double sc, double r, int l);
92 double widT1260(int i, double g1, double g2);
93 double widT1300(int i);
94 double widT1640(int i);
95 double anywid1260(double sc, double g1, double g2);
96 double anywid1300(double sc);
97 double anywid1640(double sc);
98
99 complex<double> GS(double mx2, double mr, double wr, double m1_2, double m2_2, double r, int l);
100 complex<double> RBW(double mx2, double mr, double wr, double m1_2, double m2_2, double r, int l);
101 complex<double> RBWa1260(double mx2, double mr, double g1, double g2);
102 complex<double> RBWpi1300(double mx2, double mr, double wr);
103 complex<double> RBWa1640(double mx2, double mr, double wr);
104 double rho22(double sc);
105 complex<double> rhoMTX(int i, int j, double s);
106 complex<double> KMTX(int i, int j, double s);
107 complex<double> IMTX(int i, int j);
108 complex<double> FMTX(double Kijx, double Kijy, double rhojjx, double rhojjy, int i, int j);
109 double FINVMTX(double s, double *FINVx, double *FINVy);
110 complex<double> PVTR(int ID, double s);
111 complex<double> Fvector(double sa, double s0, int l);
112
113 vector<double> m_Pip;
114 vector<double> m_Pim;
115 vector<double> m_Pi01;
116 vector<double> m_Pi02;
117
118 vector<double> g_uv;
119 vector<double> epsilon_uvmn;
120 vector< complex<double> > fitpara;
121
122 double math_pi;
123 double mass_Pion;
124
125 double rRes;
126 double rD;
127 double m_Pi;
128 double m2_Pi;
129 double m_Pi0;
130 double m2_Pi0;
131
132 double m0_rho7700;
133 double w0_rho7700;
134
135 double m0_rho770p;
136 double w0_rho770p;
137
138 double m0_rho1450;
139 double w0_rho1450;
140
141 double m0_f21270;
142 double w0_f21270;
143
144 double m0_a11260;
145 double g1_a11260;
146 double g2_a11260;
147
148 double m0_pi1300;
149 double w0_pi1300;
150
151 double m0_a11420;
152 double w0_a11420;
153
154 double m0_a11640;
155 double w0_a11640;
156
157 double m0_a21320;
158 double w0_a21320;
159
160 double m0_pi11400;
161 double w0_pi11400;
162
163 double m0_h11170;
164 double w0_h11170;
165
166 double m0_pi21670;
167 double w0_pi21670;
168
169 double m0_omega;
170 double w0_omega;
171
172 double m0_phi;
173 double w0_phi;
174
175 double s0_prod;
176
177 complex<double> m_AmpD0;
178 complex<double> m_AmpDb;
179 complex<double> m_RAmp;
180
181 double delta;
182
183};
184
185#endif
double mass
TF1 * g1
int ID[no]
XmlRpcServer s
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition KKsem.h:33
void getName(std::string &name)
void decay(EvtParticle *p)
EvtDecayBase * clone()