BOSS 8.0.0
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 <complex>
26#include <vector>
27
28class EvtParticle;
29
31
32public:
34 virtual ~EvtD0Topippim2pi0();
35
36 void getName( std::string& name );
38
39 void init();
40 void initProbMax();
41 void decay( EvtParticle* p );
42
43private:
44 double AmplitudeSquare( int charm, int tagmode );
45
46 EvtVector4R GetDaugMomLab( int i ) { return _p4Lab[i]; }
47 EvtVector4R GetDaugMomCM( int i ) { return _p4CM[i]; }
48 EvtVector4R GetDaugMomHel( int i ) { return _p4Hel[i]; }
49
50 EvtVector4R _p4Lab[10], _p4CM[10], _p4Hel[10];
51 int _nd;
52
53 int charm;
54 int tagmode;
55
56 void setInput( double* pip, double* pim, double* pi01, double* pi02 );
57 int CalAmp();
58
59 complex<double> Get_AmpD0() { return m_AmpD0; }
60 complex<double> Get_AmpDb() { return m_AmpDb; }
61
62 double Get_strongPhase();
63 complex<double> Amp( vector<double> Pip1, vector<double> Pim1, vector<double> Pip2,
64 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,
81 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,
100 int l );
101 complex<double> RBW( double mx2, double mr, double wr, double m1_2, double m2_2, double r,
102 int l );
103 complex<double> RBWa1260( double mx2, double mr, double g1, double g2 );
104 complex<double> RBWpi1300( double mx2, double mr, double wr );
105 complex<double> RBWa1640( double mx2, double mr, double wr );
106 double rho22( double sc );
107 complex<double> rhoMTX( int i, int j, double s );
108 complex<double> KMTX( int i, int j, double s );
109 complex<double> IMTX( int i, int j );
110 complex<double> FMTX( double Kijx, double Kijy, double rhojjx, double rhojjy, int i, int j );
111 double FINVMTX( double s, double* FINVx, double* FINVy );
112 complex<double> PVTR( int ID, double s );
113 complex<double> Fvector( double sa, double s0, int l );
114
115 vector<double> m_Pip;
116 vector<double> m_Pim;
117 vector<double> m_Pi01;
118 vector<double> m_Pi02;
119
120 vector<double> g_uv;
121 vector<double> epsilon_uvmn;
122 vector<complex<double>> fitpara;
123
124 double math_pi;
125 double mass_Pion;
126
127 double rRes;
128 double rD;
129 double m_Pi;
130 double m2_Pi;
131 double m_Pi0;
132 double m2_Pi0;
133
134 double m0_rho7700;
135 double w0_rho7700;
136
137 double m0_rho770p;
138 double w0_rho770p;
139
140 double m0_rho1450;
141 double w0_rho1450;
142
143 double m0_f21270;
144 double w0_f21270;
145
146 double m0_a11260;
147 double g1_a11260;
148 double g2_a11260;
149
150 double m0_pi1300;
151 double w0_pi1300;
152
153 double m0_a11420;
154 double w0_a11420;
155
156 double m0_a11640;
157 double w0_a11640;
158
159 double m0_a21320;
160 double w0_a21320;
161
162 double m0_pi11400;
163 double w0_pi11400;
164
165 double m0_h11170;
166 double w0_h11170;
167
168 double m0_pi21670;
169 double w0_pi21670;
170
171 double m0_omega;
172 double w0_omega;
173
174 double m0_phi;
175 double w0_phi;
176
177 double s0_prod;
178
179 complex<double> m_AmpD0;
180 complex<double> m_AmpDb;
181 complex<double> m_RAmp;
182
183 double delta;
184};
185
186#endif
double mass
TF1 * g1
Double_t x[10]
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()