BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtD0To2pip2pim.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: EvtD0To2pip2pim.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 EVTD0TO2PIP2PIM_HH
22#define EVTD0TO2PIP2PIM_HH
23
25#include <vector>
26#include <complex>
27
28class EvtParticle;
29
31
32public:
33
35 virtual ~EvtD0To2pip2pim();
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 int charm;
55 int tagmode;
56
57 void setInput(double* pip1, double* pim1, double* pip2, double* pim2);
58 int CalAmp();
59
60 complex<double> Get_AmpD0(){return m_AmpD0;}
61 complex<double> Get_AmpDb(){return m_AmpDb;}
62
63 double Get_strongPhase();
64 complex<double> Amp(vector<double> Pip1, vector<double> Pim1, vector<double> Pip2, vector<double> Pim2);
65 double arg(complex<double> x);
66 double mag2(complex<double> x);
67
68 complex<double> CalD0Amp();
69 complex<double> CalDbAmp();
70
71 vector<double> sum_tensor(vector<double> pa, vector<double> pb);
72 double contract_11_0(vector<double> pa, vector<double> pb);
73 double contract_22_0(vector<double> pa, vector<double> pb);
74 vector<double> contract_21_1(vector<double> pa, vector<double> pb);
75 vector<double> contract_22_2(vector<double> pa, vector<double> pb);
76 vector<double> contract_31_2(vector<double> pa, vector<double> pb);
77 vector<double> contract_41_3(vector<double> pa, vector<double> pb);
78 vector<double> contract_42_2(vector<double> pa, vector<double> pb);
79
80 vector<double> OrbitalTensors(vector<double> pa, vector<double> pb, vector<double> pc, double r, int rank);
81 vector<double> ProjectionTensors(vector<double> pa, int rank);
82
83 double fundecaymomentum(double mr2, double m1_2, double m2_2);
84 double fundecaymomentum2(double mr2, double m1_2, double m2_2);
85 complex<double> breitwigner(double mx2, double mr, double wr);
86 double h(double m, double q);
87 double dh(double m0, double q0);
88 double f(double m0, double sx, double q0, double q);
89 double d(double m0, double q0);
90 double wid(double mass, double sa, double sb, double sc, double r, int l);
91 double widT1260(int i, double g1, double g2);
92 double widT1300(int i);
93 double widT1640(int i);
94 double anywid1260(double sc, double g1, double g2);
95 double anywid1300(double sc);
96 double anywid1640(double sc);
97
98 complex<double> GS(double mx2, double mr, double wr, double m1_2, double m2_2, double r, int l);
99 complex<double> RBW(double mx2, double mr, double wr, double m1_2, double m2_2, double r, int l);
100 complex<double> RBWa1260(double mx2, double mr, double g1, double g2);
101 complex<double> RBWpi1300(double mx2, double mr, double wr);
102 complex<double> RBWa1640(double mx2, double mr, double wr);
103 double rho22(double sc);
104 complex<double> rhoMTX(int i, int j, double s);
105 complex<double> KMTX(int i, int j, double s);
106 complex<double> IMTX(int i, int j);
107 complex<double> FMTX(double Kijx, double Kijy, double rhojjx, double rhojjy, int i, int j);
108 double FINVMTX(double s, double *FINVx, double *FINVy);
109 complex<double> PVTR(int ID, double s);
110 complex<double> Fvector(double sa, double s0, int l);
111
112 vector<double> m_Pip1;
113 vector<double> m_Pim1;
114 vector<double> m_Pip2;
115 vector<double> m_Pim2;
116
117 vector<double> g_uv;
118 vector<double> epsilon_uvmn;
119 vector< complex<double> > fitpara;
120
121 double math_pi;
122 double mass_Pion;
123
124 double rRes;
125 double rD;
126 double m_Pi;
127 double m2_Pi;
128
129 double m0_rho770;
130 double w0_rho770;
131
132 double m0_rho1450;
133 double w0_rho1450;
134
135 double m0_f21270;
136 double w0_f21270;
137
138 double m0_a11260;
139 double g1_a11260;
140 double g2_a11260;
141
142 double m0_pi1300;
143 double w0_pi1300;
144
145 double m0_a11420;
146 double w0_a11420;
147
148 double m0_a11640;
149 double w0_a11640;
150
151 double m0_a21320;
152 double w0_a21320;
153
154 double m0_pi11400;
155 double w0_pi11400;
156
157 double s0_prod;
158
159 complex<double> m_AmpD0;
160 complex<double> m_AmpDb;
161 complex<double> m_RAmp;
162
163 double delta;
164
165};
166
167#endif
double mass
TF1 * g1
int ID[no]
XmlRpcServer s
Definition: HelloServer.cpp:11
****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 decay(EvtParticle *p)
virtual ~EvtD0To2pip2pim()
void getName(std::string &name)
EvtDecayBase * clone()