BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtD0ToKSpipipi0.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: EvtD0ToKSpipipi0.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 EVTD0TOKSPIPIPI0_HH
22#define EVTD0TOKSPIPIPI0_HH
23
25
26class EvtParticle;
27
29
30public:
32 virtual ~EvtD0ToKSpipipi0();
33
34 void getName( std::string& name );
36
37 void init();
38 void initProbMax();
39 void decay( EvtParticle* p );
40
41private:
42 double AmplitudeSquare();
43
44 EvtVector4R GetDaugMomLab( int i ) { return _p4Lab[i]; }
45 EvtVector4R GetDaugMomCM( int i ) { return _p4CM[i]; }
46 EvtVector4R GetDaugMomHel( int i ) { return _p4Hel[i]; }
47
48 void readInputFile();
49 void readInputCoeff();
50 void initPar();
51
52 // Functions
53 void addPartialWave( EvtComplex amp, double mag, double pha );
54 void addPartialWave( EvtComplex amp1, EvtComplex amp2, double mag, double pha );
55 void addPartialWave( double t1, EvtComplex resX, EvtComplex resY, double mag, double pha );
56 void addPartialWave( double t1, EvtComplex resX1, EvtComplex resY1, double t2,
57 EvtComplex resX2, EvtComplex resY2, double fact, double mag,
58 double pha ); // For iso-spin conjugate
59
60 void createPropagator( EvtVector4R, EvtVector4R, EvtVector4R, EvtVector4R );
61 void createSpinfactor( EvtVector4R, EvtVector4R, EvtVector4R, EvtVector4R );
62
63 // Spin Factor
64 vector<double> Proj( vector<double> pa, int rank );
65 double contract_11_0( vector<double> pa, vector<double> pb );
66 double contract_22_0( vector<double> pa, vector<double> pb );
67 vector<double> contract_21_1( vector<double> pa, vector<double> pb );
68 vector<double> contract_22_2( vector<double> pa, vector<double> pb );
69 vector<double> contract_31_2( vector<double> pa, vector<double> pb );
70 vector<double> contract_41_3( vector<double> pa, vector<double> pb );
71 vector<double> contract_42_2( vector<double> pa, vector<double> pb );
72
73 vector<double> OrbitalTensors( vector<double> pa, vector<double> pb, vector<double> pc,
74 double r, int rank );
75
76 //------------------------------------------------------------//
77 double D2PP_P2SP();
78 double D2PP_P2VP( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
79 int l );
80 double D2VP_V2VP( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
81 int l );
82 double D2AP_A2SP( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
83 int l );
84 double D2AP_A2VP( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
85 int l );
86 double D2AP_A2TP( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
87 int l );
88 double D2TP_T2VP( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
89 int l );
90 double D2TP_T2TP( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
91 int l );
92 double D2PTP_PT2SP( vector<double> p1, vector<double> p2, vector<double> p3,
93 vector<double> p4, int l );
94 double D2PTP_PT2VP( vector<double> p1, vector<double> p2, vector<double> p3,
95 vector<double> p4, int l );
96 double D2PTP_PT2TP( vector<double> p1, vector<double> p2, vector<double> p3,
97 vector<double> p4, int l );
98 double D2SS();
99 double D2VS( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
100 int l );
101 double D2VV( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
102 int l );
103 double D2TS( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
104 int l );
105 double D2TV( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
106 int l );
107 double D2TT( vector<double> p1, vector<double> p2, vector<double> p3, vector<double> p4,
108 int l );
109
110 // Propagator
111 double fundecaymomentum( double mr2, double m1_2, double m2_2 );
112 double fundecaymomentum2( double mr2, double m1_2, double m2_2 );
113 double wid( double mass, double sa, double sb, double sc, double r, int l );
114 EvtComplex BW( double mx2, double mr, double wr );
115 EvtComplex RBW( double mx2, double mr, double wr, double m1_2, double m2_2, double r,
116 int l );
117 EvtComplex LASS( double mx2, double m1_2, double m2_2 );
118
119 double h( double m, double q );
120 double dh( double m0, double q0 );
121 double f( double m0, double sx, double q0, double q );
122 double d( double m0, double q0 );
123 EvtComplex GS( double mx2, double mr, double wr, double m1_2, double m2_2, double r, int l );
124
125 double rho4pi( double s );
126 double rho2pi( double s );
127 EvtComplex sigma( double mx2, double mr, double gf );
128
129 EvtComplex irho( double mr2, double m1_2, double m2_2 );
130 EvtComplex Flatte2( double mx2, double mr2, double g1, double m1a, double m1b, double g2,
131 double m2a, double m2b );
132
133 EvtComplex create_RBW_propagator( string name, double mx2, double m1_2, double m2_2, int l );
134 EvtComplex create_BW_propagator( string name, double mx2 );
135 EvtComplex create_GS_propagator( string name, double mx2 ); // for rho0
136 EvtComplex create_KPiSLASS_propagator( string name, double mx2, double m1_2, double m2_2 );
137 EvtComplex create_sigma_propagator( string name, double mx2 );
138 EvtComplex create_Flatte2_propagator( string name, double mx2, double, double, double,
139 double );
140
141 double amps();
142
143 EvtVector4R _p4Lab[10], _p4CM[10], _p4Hel[10];
144 int _nd;
145 EvtVector4R _pd[4];
146
147 double rRes;
148 double rD;
149
150 double math_pi;
151 double mpip;
152 double mpim;
153 double mpion;
154 double mkaon;
155
156 vector<double> g;
157 vector<double> epsilon;
158
159 EvtComplex totalAmp;
160
161 std::map<string, double> resonance_par;
162 std::map<string, double> coefficient;
163 std::map<string, double> spinfactor;
164 std::map<string, EvtComplex> propagator;
165
166 std::vector<string> VwaveName;
167 std::vector<string> VcoeffName;
168 std::vector<string> Vres1;
169 std::vector<string> Vres2;
170 std::vector<string> Vmodetype;
171 std::vector<string> Vcom1;
172 std::vector<int> Vl;
173 std::vector<int> Vconj;
174};
175
176#endif
double p2[4]
double p1[4]
double mass
TF1 * g1
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
virtual ~EvtD0ToKSpipipi0()
EvtDecayBase * clone()
void getName(std::string &name)
void decay(EvtParticle *p)