BOSS 8.0.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 <complex>
26#include <vector>
27
28class EvtParticle;
29
31
32public:
34 virtual ~EvtD0To2pip2pim();
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 int charm;
53 int tagmode;
54
55 void setInput( double* pip1, double* pim1, double* pip2, double* pim2 );
56 int CalAmp();
57
58 complex<double> Get_AmpD0() { return m_AmpD0; }
59 complex<double> Get_AmpDb() { return m_AmpDb; }
60
61 double Get_strongPhase();
62 complex<double> Amp( vector<double> Pip1, vector<double> Pim1, vector<double> Pip2,
63 vector<double> Pim2 );
64 double arg( complex<double> x );
65 double mag2( complex<double> x );
66
67 complex<double> CalD0Amp();
68 complex<double> CalDbAmp();
69
70 vector<double> sum_tensor( vector<double> pa, vector<double> pb );
71 double contract_11_0( vector<double> pa, vector<double> pb );
72 double contract_22_0( vector<double> pa, vector<double> pb );
73 vector<double> contract_21_1( vector<double> pa, vector<double> pb );
74 vector<double> contract_22_2( vector<double> pa, vector<double> pb );
75 vector<double> contract_31_2( vector<double> pa, vector<double> pb );
76 vector<double> contract_41_3( vector<double> pa, vector<double> pb );
77 vector<double> contract_42_2( vector<double> pa, vector<double> pb );
78
79 vector<double> OrbitalTensors( vector<double> pa, vector<double> pb, vector<double> pc,
80 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,
99 int l );
100 complex<double> RBW( double mx2, double mr, double wr, double m1_2, double m2_2, double r,
101 int l );
102 complex<double> RBWa1260( double mx2, double mr, double g1, double g2 );
103 complex<double> RBWpi1300( double mx2, double mr, double wr );
104 complex<double> RBWa1640( double mx2, double mr, double wr );
105 double rho22( double sc );
106 complex<double> rhoMTX( int i, int j, double s );
107 complex<double> KMTX( int i, int j, double s );
108 complex<double> IMTX( int i, int j );
109 complex<double> FMTX( double Kijx, double Kijy, double rhojjx, double rhojjy, int i, int j );
110 double FINVMTX( double s, double* FINVx, double* FINVy );
111 complex<double> PVTR( int ID, double s );
112 complex<double> Fvector( double sa, double s0, int l );
113
114 vector<double> m_Pip1;
115 vector<double> m_Pim1;
116 vector<double> m_Pip2;
117 vector<double> m_Pim2;
118
119 vector<double> g_uv;
120 vector<double> epsilon_uvmn;
121 vector<complex<double>> fitpara;
122
123 double math_pi;
124 double mass_Pion;
125
126 double rRes;
127 double rD;
128 double m_Pi;
129 double m2_Pi;
130
131 double m0_rho770;
132 double w0_rho770;
133
134 double m0_rho1450;
135 double w0_rho1450;
136
137 double m0_f21270;
138 double w0_f21270;
139
140 double m0_a11260;
141 double g1_a11260;
142 double g2_a11260;
143
144 double m0_pi1300;
145 double w0_pi1300;
146
147 double m0_a11420;
148 double w0_a11420;
149
150 double m0_a11640;
151 double w0_a11640;
152
153 double m0_a21320;
154 double w0_a21320;
155
156 double m0_pi11400;
157 double w0_pi11400;
158
159 double s0_prod;
160
161 complex<double> m_AmpD0;
162 complex<double> m_AmpDb;
163 complex<double> m_RAmp;
164
165 double delta;
166};
167
168#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 decay(EvtParticle *p)
virtual ~EvtD0To2pip2pim()
void getName(std::string &name)
EvtDecayBase * clone()