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