Belle II Software  release-05-01-25
EvtB0toKsKK.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2012-2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jeremy Dalseno *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #include <iomanip>
12 #include <cmath>
13 #include <string>
14 
15 #include "EvtGenBase/EvtCPUtil.hh"
16 #include "EvtGenBase/EvtPDL.hh"
17 #include "EvtGenBase/EvtTensor4C.hh"
18 
19 #include <generators/evtgen/EvtGenModelRegister.h>
20 #include "generators/evtgen/models/EvtB0toKsKK.h"
21 
22 namespace Belle2 {
29  B2_EVTGEN_REGISTER_MODEL(EvtB0toKsKK);
30 
31  EvtB0toKsKK::~EvtB0toKsKK() {}
32 
33  std::string EvtB0toKsKK::getName()
34  {
35  return "B0toKsKK";
36  }
37 
38  EvtDecayBase* EvtB0toKsKK::clone()
39  {
40  return new EvtB0toKsKK;
41  }
42 
43  void EvtB0toKsKK::init()
44  {
45  // Check number of arguments
46  checkNArg(32);
47 
48  // Check number of daughters
49  checkNDaug(3);
50 
51  // Check decay chain
52  if ((getParentId() != EvtPDL::getId("B0") &&
53  getParentId() != EvtPDL::getId("anti-B0")) ||
54  (getDaug(0) != EvtPDL::getId("K_S0")) ||
55  (getDaug(1) != EvtPDL::getId("K+") &&
56  getDaug(1) != EvtPDL::getId("K-")) ||
57  (getDaug(2) != EvtPDL::getId("K+") &&
58  getDaug(2) != EvtPDL::getId("K-"))) {
59  std::cout << "ERROR: Invalid decay" << std::endl;
60  std::cout << "USAGE: K_S0 K+ K-" << std::endl;
61  exit(1);
62  }
63 
64  a_f0ks_ =
65  (1.0 + getArg(3)) * EvtComplex(getArg(1) * cos(getArg(2) * M_PI / 180.0),
66  getArg(1) * sin(getArg(2) * M_PI / 180.0));
67  a_phiks_ =
68  (1.0 + getArg(7)) * EvtComplex(getArg(5) * cos(getArg(6) * M_PI / 180.0),
69  getArg(5) * sin(getArg(6) * M_PI / 180.0));
70  a_fxks_ =
71  (1.0 + getArg(11)) * EvtComplex(getArg(9) * cos(getArg(10) * M_PI / 180.0),
72  getArg(9) * sin(getArg(10) * M_PI / 180.0));
73  a_chic0ks_ =
74  (1.0 + getArg(15)) * EvtComplex(getArg(13) * cos(getArg(14) * M_PI / 180.0),
75  getArg(13) * sin(getArg(14) * M_PI / 180.0));
76  a_kpkmnr_ =
77  (1.0 + getArg(19)) * EvtComplex(getArg(17) * cos(getArg(18) * M_PI / 180.0),
78  getArg(17) * sin(getArg(18) * M_PI / 180.0));
79  a_kskpnr_ =
80  (1.0 + getArg(24)) * EvtComplex(getArg(22) * cos(getArg(23) * M_PI / 180.0),
81  getArg(22) * sin(getArg(23) * M_PI / 180.0));
82  a_kskmnr_ =
83  (1.0 + getArg(29)) * EvtComplex(getArg(27) * cos(getArg(28) * M_PI / 180.0),
84  getArg(27) * sin(getArg(28) * M_PI / 180.0));
85 
86  abar_f0ks_ =
87  (1.0 - getArg(3)) * EvtComplex(getArg(1) * cos(getArg(2) * M_PI / 180.0),
88  getArg(1) * sin(getArg(2) * M_PI / 180.0));
89  abar_phiks_ =
90  (1.0 - getArg(7)) * EvtComplex(getArg(5) * cos(getArg(6) * M_PI / 180.0),
91  getArg(5) * sin(getArg(6) * M_PI / 180.0));
92  abar_fxks_ =
93  (1.0 - getArg(11)) * EvtComplex(getArg(9) * cos(getArg(10) * M_PI / 180.0),
94  getArg(9) * sin(getArg(10) * M_PI / 180.0));
96  (1.0 - getArg(15)) * EvtComplex(getArg(13) * cos(getArg(14) * M_PI / 180.0),
97  getArg(13) * sin(getArg(14) * M_PI / 180.0));
98  abar_kpkmnr_ =
99  (1.0 - getArg(19)) * EvtComplex(getArg(17) * cos(getArg(18) * M_PI / 180.0),
100  getArg(17) * sin(getArg(18) * M_PI / 180.0));
101  abar_kskpnr_ =
102  (1.0 - getArg(24)) * EvtComplex(getArg(22) * cos(getArg(23) * M_PI / 180.0),
103  getArg(22) * sin(getArg(23) * M_PI / 180.0));
104  abar_kskmnr_ =
105  (1.0 - getArg(29)) * EvtComplex(getArg(27) * cos(getArg(28) * M_PI / 180.0),
106  getArg(27) * sin(getArg(28) * M_PI / 180.0));
107 
108  alpha_kpkmnr = getArg(21);
109  alpha_kskpnr = getArg(26);
110  alpha_kskmnr = getArg(31);
111 
112  std::cout << setiosflags(std::ios::left) << std::endl
113  << "B0 Channel " << std::setw(20) << "Relative amplitude" << std::setw(20) << "Relative phase" << std::endl
114  << "f0ks " << std::setw(20) << real(a_f0ks_) << std::setw(20) << imag(a_f0ks_) << std::endl
115  << "phiks " << std::setw(20) << real(a_phiks_) << std::setw(20) << imag(a_phiks_) << std::endl
116  << "fxks " << std::setw(20) << real(a_fxks_) << std::setw(20) << imag(a_fxks_) << std::endl
117  << "chic0ks " << std::setw(20) << real(a_chic0ks_) << std::setw(20) << imag(a_chic0ks_) << std::endl
118  << "kpkmnr " << std::setw(20) << real(a_kpkmnr_) << std::setw(20) << imag(a_kpkmnr_) << std::endl
119  << "kskpnr " << std::setw(20) << real(a_kskpnr_) << std::setw(20) << imag(a_kskpnr_) << std::endl
120  << "kskmnr " << std::setw(20) << real(a_kskmnr_) << std::setw(20) << imag(a_kskmnr_) << std::endl
121  << std::endl;
122 
123  std::cout << setiosflags(std::ios::left) << std::endl
124  << "B0B Channel " << std::setw(20) << "Relative amplitude" << std::setw(20) << "Relative phase" << std::endl
125  << "f0ks " << std::setw(20) << real(abar_f0ks_) << std::setw(20) << imag(abar_f0ks_) << std::endl
126  << "phiks " << std::setw(20) << real(abar_phiks_) << std::setw(20) << imag(abar_phiks_) << std::endl
127  << "fxks " << std::setw(20) << real(abar_fxks_) << std::setw(20) << imag(abar_fxks_) << std::endl
128  << "chic0ks " << std::setw(20) << real(abar_chic0ks_) << std::setw(20) << imag(abar_chic0ks_) << std::endl
129  << "kpkmnr " << std::setw(20) << real(abar_kpkmnr_) << std::setw(20) << imag(abar_kpkmnr_) << std::endl
130  << "kskpnr " << std::setw(20) << real(abar_kskpnr_) << std::setw(20) << imag(abar_kskpnr_) << std::endl
131  << "kskmnr " << std::setw(20) << real(abar_kskmnr_) << std::setw(20) << imag(abar_kskmnr_) << std::endl
132  << std::endl;
133 
134  // Open debugging file
135  debugfile_.open("debug.dat", std::ios::out);
136  }
137 
139  {
140  //setProbMax(50000.0);
141  //setProbMax(100000.0);
142  //setProbMax(200000.0);
143  //setProbMax(400000.0);
144  //setProbMax(600000.0);
145  setProbMax(1100000.0);
146  }
147 
148  void EvtB0toKsKK::decay(EvtParticle* p)
149  {
150  // Btag
151  static EvtId B0 = EvtPDL::getId("B0");
152  static EvtId B0B = EvtPDL::getId("anti-B0");
153 
154  double t;
155  EvtId other_b;
156 
157  //std::cout << EvtCPUtil::getInstance()->getMixingType() << std::endl;
158  //EvtCPUtil::getInstance()->setMixingType(0);
159  EvtCPUtil::getInstance()->OtherB(p, t, other_b, 0.5);
160  //EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.4);
161  //EvtCPUtil::getInstance()->OtherB(p,t,other_b);
162 
163  // Brec
164  p->initializePhaseSpace(getNDaug(), getDaugs());
165  EvtVector4R p4ks, p4kp, p4km;
166  if (p->getId() == B0) {
167  p4ks = p->getDaug(0)->getP4();
168  p4kp = p->getDaug(1)->getP4();
169  p4km = p->getDaug(2)->getP4();
172  /*p4ks = p->getDaug(0)->getP4();
173  p4kp = p->getDaug(2)->getP4();
174  p4km = p->getDaug(1)->getP4();*/
175  } else {
176  p4ks = p->getDaug(0)->getP4();
177  p4kp = p->getDaug(2)->getP4();
178  p4km = p->getDaug(1)->getP4();
180  /*p4ks = p->getDaug(0)->getP4();
181  p4kp = p->getDaug(1)->getP4();
182  p4km = p->getDaug(2)->getP4();*/
183  }
184 
185  /*std::cout << (p4ks + p4kp).mass() << " " << (p4ks + p4km).mass() << " "
186  << (p4kp + p4km).mass() << std::endl;
187  if( p->getId() == other_b )
188  std::cout << "same flavour" << std::endl;
189  std::cout << p->getId() << " --> " << p->getDaug(0)->getId() << " "
190  << p->getDaug(1)->getId() << " " << p->getDaug(2)->getId()
191  << std::endl;
192  std::cout << B0 << std::endl;
193  std::cout << B0B << std::endl;
194  std::cout << other_b << std::endl;*/
195  /*std::cout << p->getLifetime() << std::endl;
196  std::cout << p->get4Pos() << std::endl;
197  std::cout << p->getP4() << std::endl;
198  std::cout << p->getP4Lab() << std::endl;
199  EvtParticle *parent=p->getParent();
200  if (parent->getDaug(0)!=p){
201  std::cout << parent->getDaug(0)->getLifetime() << std::endl;
202  std::cout << parent->getDaug(0)->get4Pos() << std::endl;
203  std::cout << parent->getDaug(0)->getP4() << std::endl;
204  std::cout << parent->getDaug(0)->getP4Lab() << std::endl;
205  std::cout << parent->getDaug(0)->getP4Lab()+p->getP4Lab() << std::endl;
206  }
207  else{
208  std::cout << parent->getDaug(1)->getLifetime() << std::endl;
209  std::cout << parent->getDaug(1)->get4Pos() << std::endl;
210  std::cout << parent->getDaug(1)->getP4() << std::endl;
211  std::cout << parent->getDaug(1)->getP4Lab() << std::endl;
212  std::cout << parent->getDaug(1)->getP4Lab()+p->getP4Lab() << std::endl;
213  }
214  std::cout << parent->getP4() << std::endl;
215  std::cout << t << std::endl;*/
216 
217  // Relative amplides and phases with direct CP violation
218  a_f0ks_ =
219  (1.0 + getArg(3)) * EvtComplex(getArg(1) * cos(getArg(2) * M_PI / 180.0),
220  getArg(1) * sin(getArg(2) * M_PI / 180.0));
221  a_phiks_ =
222  (1.0 + getArg(7)) * EvtComplex(getArg(5) * cos(getArg(6) * M_PI / 180.0),
223  getArg(5) * sin(getArg(6) * M_PI / 180.0));
224  a_fxks_ =
225  (1.0 + getArg(11)) * EvtComplex(getArg(9) * cos(getArg(10) * M_PI / 180.0),
226  getArg(9) * sin(getArg(10) * M_PI / 180.0));
227  a_chic0ks_ =
228  (1.0 + getArg(15)) * EvtComplex(getArg(13) * cos(getArg(14) * M_PI / 180.0),
229  getArg(13) * sin(getArg(14) * M_PI / 180.0));
230  a_kpkmnr_ =
231  (1.0 + getArg(19)) * EvtComplex(getArg(17) * cos(getArg(18) * M_PI / 180.0),
232  getArg(17) * sin(getArg(18) * M_PI / 180.0));
233  a_kskpnr_ =
234  (1.0 + getArg(24)) * EvtComplex(getArg(22) * cos(getArg(23) * M_PI / 180.0),
235  getArg(22) * sin(getArg(23) * M_PI / 180.0));
236  a_kskmnr_ =
237  (1.0 + getArg(29)) * EvtComplex(getArg(27) * cos(getArg(28) * M_PI / 180.0),
238  getArg(27) * sin(getArg(28) * M_PI / 180.0));
239 
240  abar_f0ks_ =
241  (1.0 - getArg(3)) * EvtComplex(getArg(1) * cos(getArg(2) * M_PI / 180.0),
242  getArg(1) * sin(getArg(2) * M_PI / 180.0));
243  abar_phiks_ =
244  (1.0 - getArg(7)) * EvtComplex(getArg(5) * cos(getArg(6) * M_PI / 180.0),
245  getArg(5) * sin(getArg(6) * M_PI / 180.0));
246  abar_fxks_ =
247  (1.0 - getArg(11)) * EvtComplex(getArg(9) * cos(getArg(10) * M_PI / 180.0),
248  getArg(9) * sin(getArg(10) * M_PI / 180.0));
249  abar_chic0ks_ =
250  (1.0 - getArg(15)) * EvtComplex(getArg(13) * cos(getArg(14) * M_PI / 180.0),
251  getArg(13) * sin(getArg(14) * M_PI / 180.0));
252  abar_kpkmnr_ =
253  (1.0 - getArg(19)) * EvtComplex(getArg(17) * cos(getArg(18) * M_PI / 180.0),
254  getArg(17) * sin(getArg(18) * M_PI / 180.0));
255  abar_kskpnr_ =
256  (1.0 - getArg(24)) * EvtComplex(getArg(22) * cos(getArg(23) * M_PI / 180.0),
257  getArg(22) * sin(getArg(23) * M_PI / 180.0));
258  abar_kskmnr_ =
259  (1.0 - getArg(29)) * EvtComplex(getArg(27) * cos(getArg(28) * M_PI / 180.0),
260  getArg(27) * sin(getArg(28) * M_PI / 180.0));
261 
262  // Mixing-induced CP asymmetry
263  const double pCP_f0ks = getArg(4) * M_PI / 180.0;
264  const double pCP_phiks = getArg(8) * M_PI / 180.0;
265  const double pCP_fxks = getArg(12) * M_PI / 180.0;
266  const double pCP_chic0ks = getArg(16) * M_PI / 180.0;
267  const double pCP_kpkmnr = getArg(20) * M_PI / 180.0;
268  const double pCP_kskpnr = getArg(25) * M_PI / 180.0;
269  const double pCP_kskmnr = getArg(30) * M_PI / 180.0;
270 
271  if (other_b == B0) {
272  a_f0ks_ *=
273  EvtComplex(cos(+2.0 * pCP_f0ks), sin(+2.0 * pCP_f0ks));
274  a_phiks_ *=
275  EvtComplex(cos(+2.0 * pCP_phiks), sin(+2.0 * pCP_phiks));
276  a_fxks_ *=
277  EvtComplex(cos(+2.0 * pCP_fxks), sin(+2.0 * pCP_fxks));
278  a_chic0ks_ *=
279  EvtComplex(cos(+2.0 * pCP_chic0ks), sin(+2.0 * pCP_chic0ks));
280  a_kpkmnr_ *=
281  EvtComplex(cos(+2.0 * pCP_kpkmnr), sin(+2.0 * pCP_kpkmnr));
282  a_kskpnr_ *=
283  EvtComplex(cos(+2.0 * pCP_kskpnr), sin(+2.0 * pCP_kskpnr));
284  a_kskmnr_ *=
285  EvtComplex(cos(+2.0 * pCP_kskmnr), sin(+2.0 * pCP_kskmnr));
286  }
287  if (other_b == B0B) {
288  abar_f0ks_ *=
289  EvtComplex(cos(-2.0 * pCP_f0ks), sin(-2.0 * pCP_f0ks));
290  abar_phiks_ *=
291  EvtComplex(cos(-2.0 * pCP_phiks), sin(-2.0 * pCP_phiks));
292  abar_fxks_ *=
293  EvtComplex(cos(-2.0 * pCP_fxks), sin(-2.0 * pCP_fxks));
294  abar_chic0ks_ *=
295  EvtComplex(cos(-2.0 * pCP_chic0ks), sin(-2.0 * pCP_chic0ks));
296  abar_kpkmnr_ *=
297  EvtComplex(cos(-2.0 * pCP_kpkmnr), sin(-2.0 * pCP_kpkmnr));
298  abar_kskpnr_ *=
299  EvtComplex(cos(-2.0 * pCP_kskpnr), sin(-2.0 * pCP_kskpnr));
300  abar_kskmnr_ *=
301  EvtComplex(cos(-2.0 * pCP_kskmnr), sin(-2.0 * pCP_kskmnr));
302  }
303 
304  //Form Factors
305  EvtComplex Amp_f0ks = A_f0ks(p4ks, p4kp, p4km);
306  EvtComplex Amp_phiks = A_phiks(p4ks, p4kp, p4km);
307  EvtComplex Amp_fxks = A_fxks(p4ks, p4kp, p4km);
308  EvtComplex Amp_chic0ks = A_chic0ks(p4ks, p4kp, p4km);
309  EvtComplex Amp_kpkmnr = A_kknr(p4kp, p4km, alpha_kpkmnr);
310  EvtComplex Amp_kskpnr = A_kknr(p4ks, p4kp, alpha_kskpnr);
311  EvtComplex Amp_kskmnr = A_kknr(p4ks, p4km, alpha_kskmnr);
312 
313  EvtComplex Ampbar_f0ks = A_f0ks(p4ks, p4km, p4kp);
314  EvtComplex Ampbar_phiks = A_phiks(p4ks, p4km, p4kp);
315  EvtComplex Ampbar_fxks = A_fxks(p4ks, p4km, p4kp);
316  EvtComplex Ampbar_chic0ks = A_chic0ks(p4ks, p4km, p4kp);
317  EvtComplex Ampbar_kpkmnr = A_kknr(p4km, p4kp, alpha_kpkmnr);
318  EvtComplex Ampbar_kskpnr = A_kknr(p4ks, p4km, alpha_kskpnr);
319  EvtComplex Ampbar_kskmnr = A_kknr(p4ks, p4kp, alpha_kskmnr);
320 
321  const EvtComplex A_B0toKsKK =
322  (a_f0ks_ * Amp_f0ks) +
323  (a_phiks_ * Amp_phiks) +
324  (a_fxks_ * Amp_fxks) +
325  (a_chic0ks_ * Amp_chic0ks) +
326  (a_kpkmnr_ * Amp_kpkmnr) +
327  (a_kskpnr_ * Amp_kskpnr) +
328  (a_kskmnr_ * Amp_kskmnr);
329 
330  const EvtComplex Abar_B0toKsKK =
331  (abar_f0ks_ * Ampbar_f0ks) +
332  (abar_phiks_ * Ampbar_phiks) +
333  (abar_fxks_ * Ampbar_fxks) +
334  (abar_chic0ks_ * Ampbar_chic0ks) +
335  (abar_kpkmnr_ * Ampbar_kpkmnr) +
336  (abar_kskpnr_ * Ampbar_kskpnr) +
337  (abar_kskmnr_ * Ampbar_kskmnr);
338 
339  // CP asymmetry
340  const double dm = getArg(0);
341 
342  EvtComplex amp;
343  if (other_b == B0B) {
344  amp =
345  A_B0toKsKK * cos(dm * t / (2.0 * EvtConst::c)) +
346  EvtComplex(0.0, 1.0) * Abar_B0toKsKK * sin(dm * t / (2.0 * EvtConst::c));
347  }
348  if (other_b == B0) {
349  amp =
350  A_B0toKsKK *
351  EvtComplex(0.0, 1.0) * sin(dm * t / (2.0 * EvtConst::c)) +
352  Abar_B0toKsKK * cos(dm * t / (2.0 * EvtConst::c));
353  }
354 
355  if (abs2(amp) > 50000.0)
356  debugfile_ << abs2(amp) << std::endl;
357  vertex(amp);
358 
359  return;
360  }
361 
362  EvtVector4R EvtB0toKsKK::umu(const EvtVector4R& p4a, const EvtVector4R& p4b,
363  const EvtVector4R& p4c)
364  {
365  const double s = (p4a + p4b + p4c) * (p4a + p4b + p4c);
366 
367  const EvtVector4R umu = (p4a + p4b + p4c) / sqrt(s);
368 
369  return umu;
370  }
371 
372  EvtVector4R EvtB0toKsKK::Smu(const EvtVector4R& p4a, const EvtVector4R& p4b,
373  const EvtVector4R& /*p4c*/)
374  {
375  const double ma = p4a.mass();
376  const double mb = p4b.mass();
377  const double mres = (p4a + p4b).mass();
378  const double ma2 = ma * ma;
379  const double mb2 = mb * mb;
380  const double mres2 = mres * mres;
381 
382  const double N1 =
383  mres /
384  (sqrt(mres2 - ((ma + mb) * (ma + mb))) * sqrt(mres2 - ((ma - mb) * (ma - mb))));
385 
386  const EvtVector4R Smu =
387  N1 * ((p4a - p4b) - ((p4a + p4b) * (ma2 - mb2) / mres2));
388 
389  return Smu;
390  }
391 
392  EvtVector4R EvtB0toKsKK::Lmu(const EvtVector4R& p4a, const EvtVector4R& p4b,
393  const EvtVector4R& p4c)
394  {
395  const double mc = p4c.mass();
396  const double mres = (p4a + p4b).mass();
397  const double mc2 = mc * mc;
398  const double mres2 = mres * mres;
399  const double s = (p4a + p4b + p4c) * (p4a + p4b + p4c);
400 
401  const double N2 =
402  sqrt(s) /
403  (sqrt(s - ((mres + mc) * (mres + mc))) * sqrt(s - ((mres - mc) * (mres - mc))));
404 
405  const EvtVector4R Lmu =
406  N2 * ((p4c - (p4a + p4b)) - ((p4c + (p4a + p4b)) * (mc2 - mres2) / s));
407 
408  return Lmu;
409  }
410 
411  EvtTensor4C EvtB0toKsKK::gmunu_tilde(const EvtVector4R& p4a,
412  const EvtVector4R& p4b,
413  const EvtVector4R& p4c)
414  {
415  const double s = (p4a + p4b + p4c) * (p4a + p4b + p4c);
416 
417  const EvtVector4R umu = (p4a + p4b + p4c) / sqrt(s);
418 
419  const EvtTensor4C gmunu_tilde =
420  EvtTensor4C::g() - EvtGenFunctions::directProd(umu, umu);
421 
422  return gmunu_tilde;
423  }
424 
425  EvtTensor4C EvtB0toKsKK::Tmunu(const EvtVector4R& p4a, const EvtVector4R& p4b,
426  const EvtVector4R& p4c)
427  {
428  const double mres = (p4a + p4b).mass();
429  const EvtVector4R wmu = (p4a + p4b) / mres;
430 
431  const EvtTensor4C Tmunu =
432  sqrt(3.0 / 2.0) *
433  (EvtGenFunctions::directProd(Smu(p4a, p4b, p4c), Smu(p4a, p4b, p4c)) +
434  (1.0 / 3.0 * (EvtTensor4C::g() - EvtGenFunctions::directProd(wmu, wmu))));
435 
436  return Tmunu;
437  }
438 
439  EvtTensor4C EvtB0toKsKK::Multiply(const EvtTensor4C& t1,
440  const EvtTensor4C& t2)
441  {
442  EvtTensor4C t;
443  for (unsigned int i = 0; i < 4; i++)
444  for (unsigned int j = 0; j < 4; j++) {
445  const EvtComplex element =
446  t1.get(i, 0) * t2.get(0, j) +
447  t1.get(i, 1) * t2.get(1, j) +
448  t1.get(i, 2) * t2.get(2, j) +
449  t1.get(i, 3) * t2.get(3, j);
450  t.set(i, j, element);
451  }
452  return t;
453  }
454 
455  EvtTensor4C EvtB0toKsKK::RaiseIndices(const EvtTensor4C& t)
456  {
457  const EvtTensor4C tmp = Multiply(t, EvtTensor4C::g());
458  const EvtTensor4C t_raised = Multiply(EvtTensor4C::g(), tmp);
459 
460  return t_raised;
461  }
462 
463  void EvtB0toKsKK::RaiseIndex(EvtVector4R& vector)
464  {
465  vector.set(1, -vector.get(1));
466  vector.set(2, -vector.get(2));
467  vector.set(3, -vector.get(3));
468  }
469 
470  EvtTensor4C EvtB0toKsKK::Mmunu(const EvtVector4R& p4a, const EvtVector4R& p4b,
471  const EvtVector4R& p4c)
472  {
473  const EvtTensor4C Mmunu =
474  sqrt(3.0 / 2.0) *
475  (EvtGenFunctions::directProd(Lmu(p4a, p4b, p4c), Lmu(p4a, p4b, p4c)) +
476  (1.0 / 3.0 * gmunu_tilde(p4a, p4b, p4c)));
477 
478  return Mmunu;
479  }
480 
481  double EvtB0toKsKK::BWBF(const double& q, const unsigned int& L)
482  {
483  //Meson radius
484  const double d = 1.0;
485 
486  const double z = q * q * d * d;
487 
488  double bwbf = 1.0;
489 
490  if (L == 1)
491  bwbf = sqrt(2.0 * z / (1.0 + z));
492  if (L == 2)
493  bwbf = sqrt(13.0 * z * z / (((z - 3.0) * (z - 3.0)) + (9.0 * z)));
494  if (L > 2) {
495  std::cout << "ERROR: BWBF not implemented for L>2" << std::endl;
496  exit(1);
497  }
498  return bwbf;
499  }
500 
501  double EvtB0toKsKK::BWBF(const double& q, const double& q0,
502  const unsigned int& L)
503  {
504  //Meson radius
505  const double d = 1.0;
506 
507  const double z = q * q * d * d;
508  const double z0 = q0 * q0 * d * d;
509 
510  double bwbf = 1.0;
511 
512  if (L == 1)
513  bwbf = sqrt((1.0 + z0) / (1.0 + z));
514  if (L == 2)
515  bwbf = sqrt((((z0 - 3.0) * (z0 - 3.0)) + (9.0 * z0)) / (((z - 3.0) * (z - 3.0)) + (9.0 * z)));
516  if (L > 2) {
517  std::cout << "ERROR: BWBF not implemented for L>2" << std::endl;
518  exit(1);
519  }
520  return bwbf;
521  }
522 
523  EvtComplex EvtB0toKsKK::BreitWigner(const double& m, const double& m0,
524  const double& Gamma0,
525  const double& q, const double& q0,
526  const unsigned int& L)
527  {
528  const double s = m * m;
529  const double s0 = m0 * m0;
530 
531  const double Gamma =
532  Gamma0 * m0 / m * pow(q / q0, (2 * L) + 1) *
533  BWBF(q, q0, L) * BWBF(q, q0, L);
534 
535  const EvtComplex BreitWigner = 1.0 / EvtComplex(s0 - s, -m0 * Gamma);
536 
537  return BreitWigner;
538  }
539 
540  EvtVector4R EvtB0toKsKK::Boost(const EvtVector4R& p4,
541  const EvtVector4R& boost)
542  {
543  const double bx = boost.get(1) / boost.get(0);
544  const double by = boost.get(2) / boost.get(0);
545  const double bz = boost.get(3) / boost.get(0);
546 
547  const double bx2 = bx * bx;
548  const double by2 = by * by;
549  const double bz2 = bz * bz;
550 
551  const double b2 = bx2 + by2 + bz2;
552  if (b2 == 0.0)
553  return p4;
554  assert(b2 < 1.0);
555 
556  const double gamma = 1.0 / sqrt(1 - b2);
557 
558  const double gb2 = (gamma - 1.0) / b2;
559 
560  const double gb2xy = gb2 * bx * by;
561  const double gb2xz = gb2 * bx * bz;
562  const double gb2yz = gb2 * by * bz;
563 
564  const double gbx = gamma * bx;
565  const double gby = gamma * by;
566  const double gbz = gamma * bz;
567 
568  const double e_b =
569  (gamma * p4.get(0)) - (gbx * p4.get(1)) - (gby * p4.get(2)) - (gbz * p4.get(3));
570  const double x_b =
571  (-gbx * p4.get(0)) + ((1.0 + (gb2 * bx2)) * p4.get(1)) +
572  (gb2xy * p4.get(2)) + (gb2xz * p4.get(3));
573  const double y_b =
574  (-gby * p4.get(0)) + (gb2xy * p4.get(1)) +
575  ((1.0 + (gb2 * by2)) * p4.get(2)) + (gb2yz * p4.get(3));
576  const double z_b =
577  (-gbz * p4.get(0)) + (gb2xz * p4.get(1)) +
578  (gb2yz * p4.get(2)) + ((1.0 + (gb2 * bz2)) * p4.get(3));
579 
580  const EvtVector4R p4_b(e_b, x_b, y_b, z_b);
581 
582  return p4_b;
583  }
584 
585  double EvtB0toKsKK::p(const double& mab, const double& M, const double& mc)
586  {
587  const double sab = mab * mab;
588  const double M_p_mc2 = (M + mc) * (M + mc);
589  const double M_m_mc2 = (M - mc) * (M - mc);
590 
591  const double p = sqrt((sab - M_p_mc2) * (sab - M_m_mc2)) / (2.0 * mab);
592 
593  return p;
594  }
595 
596  double EvtB0toKsKK::q(const double& mab, const double& ma, const double& mb)
597  {
598  const double mab2 = mab * mab;
599  const double ma_p_mb2 = (ma + mb) * (ma + mb);
600  const double ma_m_mb2 = (ma - mb) * (ma - mb);
601 
602  const double q = sqrt((mab2 - ma_p_mb2) * (mab2 - ma_m_mb2)) / (2.0 * mab);
603 
604  return q;
605  }
606 
607  EvtComplex EvtB0toKsKK::Flatte_k(const double& s, const double& m_h)
608  {
609  const double k2 = 1.0 - (4.0 * m_h * m_h / s);
610  EvtComplex k;
611  if (k2 < 0.0)
612  k = EvtComplex(0.0, sqrt(fabs(k2)));
613  else
614  k = sqrt(k2);
615 
616  return k;
617  }
618 
619  EvtComplex EvtB0toKsKK::Flatte(const double& m, const double& m0)
620  {
621  const double g_pipi = 0.165;
622  const double g_kk = 4.21 * g_pipi;
623 
624  static EvtId pip = EvtPDL::getId("pi+");
625  static EvtId kp = EvtPDL::getId("K+");
626 
627  const double s = m * m;
628  const double s0 = m0 * m0;
629 
630  const EvtComplex rho_pipi = 2.0 * Flatte_k(s, EvtPDL::getMeanMass(pip)) / m;
631  const EvtComplex rho_kk = 2.0 * Flatte_k(s, EvtPDL::getMeanMass(kp)) / m;
632 
633  const EvtComplex Gamma =
634  EvtComplex(0.0, 1.0) * ((g_pipi * rho_pipi) + (g_kk * rho_kk));
635 
636  const EvtComplex Flatte = 1.0 / (s0 - s - Gamma);
637 
638  return Flatte;
639  }
640 
641  EvtComplex EvtB0toKsKK::A_f0ks(const EvtVector4R& /*p4ks*/,
642  const EvtVector4R& p4kp,
643  const EvtVector4R& p4km)
644  {
645  static EvtId f0 = EvtPDL::getId("f_0");
646 
647  const double f0_m = EvtPDL::getMeanMass(f0);
648 
649  const EvtVector4R p4kpkm = p4kp + p4km;
650  const double mkpkm = p4kpkm.mass();
651 
652  //Angular distribution
653  const EvtComplex H_f0ks = 1.0;
654 
655  //Barrier factors
656  const EvtComplex D_f0ks = 1.0;
657 
658  //Line shape
659  const EvtComplex L_f0ks = Flatte(mkpkm, f0_m);
660 
661  //Amplitude
662  const EvtComplex A_f0ks = D_f0ks * H_f0ks * L_f0ks;
663 
664  return A_f0ks;
665  }
666 
668  double s13_min(const double& s12, const double& M,
669  const double& m1, const double& m2, const double& m3)
670  {
671  const double E2star = (s12 - (m2 * m2) + (m1 * m1)) / 2.0 / sqrt(s12);
672  const double E3star = (M * M - s12 - (m3 * m3)) / 2.0 / sqrt(s12);
673 
674  const double s23_min =
675  ((E2star + E3star) * (E2star + E3star)) -
676  ((sqrt((E2star * E2star) - (m1 * m1)) + sqrt((E3star * E3star) - (m3 * m3))) *
677  (sqrt((E2star * E2star) - (m1 * m1)) + sqrt((E3star * E3star) - (m3 * m3))));
678 
679  return s23_min;
680  }
681 
683  double s13_max(const double& s12, const double& M,
684  const double& m1, const double& m2, const double& m3)
685  {
686  const double E2star = (s12 - (m2 * m2) + (m1 * m1)) / 2.0 / sqrt(s12);
687  const double E3star = (M * M - s12 - (m3 * m3)) / 2.0 / sqrt(s12);
688 
689  const double s23_max =
690  ((E2star + E3star) * (E2star + E3star)) -
691  ((sqrt((E2star * E2star) - (m1 * m1)) - sqrt((E3star * E3star) - (m3 * m3))) *
692  (sqrt((E2star * E2star) - (m1 * m1)) - sqrt((E3star * E3star) - (m3 * m3))));
693 
694  return s23_max;
695  }
696 
697  EvtComplex EvtB0toKsKK::A_phiks(const EvtVector4R& p4ks,
698  const EvtVector4R& p4kp,
699  const EvtVector4R& p4km)
700  {
701  static EvtId phi = EvtPDL::getId("phi");
702 
703  const double phi_m = EvtPDL::getMeanMass(phi);
704  const double phi_w = EvtPDL::getWidth(phi);
705 
706  const EvtVector4R p4kpkm = p4kp + p4km;
707  const double mkpkm = p4kpkm.mass();
708 
709  //Angular distribution
710  const EvtVector4R S_mu = Smu(p4kp, p4km, p4ks);
711  const EvtVector4R L_mu = Lmu(p4kp, p4km, p4ks);
712 
713  const EvtTensor4C g_munu_tilde = gmunu_tilde(p4kp, p4km, p4ks);
714  const EvtTensor4C g__munu_tilde = RaiseIndices(g_munu_tilde);
715 
716  EvtComplex H_phiks = 0.0;
717  for (unsigned int i = 0; i < 4; i++)
718  for (unsigned int j = 0; j < 4; j++)
719  H_phiks += g__munu_tilde.get(i, j) * S_mu.get(i) * L_mu.get(j);
720 
721  //Barrier factors
722  const EvtVector4R p4kp_kpkm = Boost(p4kp, p4kpkm);
723 
724  const EvtComplex D_phiks = BWBF(p4kp_kpkm.d3mag(), 1);
725 
726  //Line shape
727  const double q0_phi = q(phi_m, p4kp.mass(), p4km.mass());
728  const EvtComplex L_phiks =
729  BreitWigner(mkpkm, phi_m, phi_w, p4kp_kpkm.d3mag(), q0_phi, 1);
730 
731  //Amplitude
732  const EvtComplex A_phiks = D_phiks * H_phiks * L_phiks;
733 
735  /*const EvtVector4R p4ks_kpkm = Boost(p4ks, p4kpkm);
736  const double p4ks_kpkm_alt = p(mkpkm, (p4ks+p4kp+p4km).mass(), p4ks.mass());
737  const double p4kp_kpkm_alt = q(mkpkm, p4kp.mass(), p4km.mass());
738  //std::cout << p4ks_kpkm.d3mag() << std::endl;
739  //std::cout << p4ks_kpkm_alt << std::endl;
740  //std::cout << p4kp_kpkm.d3mag() << std::endl;
741  //std::cout << p4kp_kpkm_alt << std::endl;
742  const double costheta =
743  p4ks_kpkm.dot(p4kp_kpkm)/p4ks_kpkm.d3mag()/p4kp_kpkm.d3mag();
744  //const double z = p4ks_kpkm.d3mag()/(p4ks+p4kp+p4km).mass();
745  //const double H_phiks_alt = -sqrt(1.0+(z*z))*costheta;
746  const double sp_min =
747  s13_min( mkpkm*mkpkm, (p4ks+p4kp+p4km).mass(),
748  p4kp.mass(), p4km.mass(), p4ks.mass() );
749  const double sp_max =
750  s13_max( mkpkm*mkpkm, (p4ks+p4kp+p4km).mass(),
751  p4kp.mass(), p4km.mass(), p4ks.mass() );
752  const double sp = (p4ks+p4kp).mass2();
753  const double costheta_alt = (sp_max + sp_min - (2.0*sp))/(sp_max - sp_min);
754  //std::cout << costheta << std::endl;
755  //std::cout << costheta_alt << std::endl;
756  //exit(1);
757  const double z_alt = p4ks_kpkm_alt/(p4ks+p4kp+p4km).mass();
758  const double H_phiks_alt = -sqrt(1.0+(z_alt*z_alt))*costheta_alt;
759  //std::cout << H_phiks << std::endl;
760  //std::cout << H_phiks_alt << std::endl;
761  if( real(H_phiks) != H_phiks_alt )
762  {
763  std::cout << H_phiks << std::endl;
764  std::cout << H_phiks_alt << std::endl;
765  }
766  const EvtComplex A_phiks = D_phiks*H_phiks_alt*L_phiks;*/
768 
769  return A_phiks;
770  }
771 
772  EvtComplex EvtB0toKsKK::A_fxks(const EvtVector4R& /*p4ks*/,
773  const EvtVector4R& p4kp,
774  const EvtVector4R& p4km)
775  {
776  static EvtId fx = EvtPDL::getId("f_0(1500)");
777 
778  const double fx_m = EvtPDL::getMeanMass(fx);
779  const double fx_w = EvtPDL::getWidth(fx);
780 
781  const EvtVector4R p4kpkm = p4kp + p4km;
782  const double mkpkm = p4kpkm.mass();
783 
784  //Angular distribution
785  const EvtComplex H_fxks = 1.0;
786 
787  //Barrier factors
788  const EvtComplex D_fxks = 1.0;
789 
790  //Line shape
791  const EvtVector4R p4kp_kpkm = Boost(p4kp, p4kpkm);
792  const double q0_fx = q(fx_m, p4kp.mass(), p4km.mass());
793  const EvtComplex L_fxks =
794  BreitWigner(mkpkm, fx_m, fx_w, p4kp_kpkm.d3mag(), q0_fx, 0);
795 
796  //Amplitude
797  const EvtComplex A_fxks = D_fxks * H_fxks * L_fxks;
798 
799  return A_fxks;
800  }
801 
802  EvtComplex EvtB0toKsKK::A_chic0ks(const EvtVector4R& /*p4ks*/,
803  const EvtVector4R& p4kp,
804  const EvtVector4R& p4km)
805  {
806  static EvtId chic0 = EvtPDL::getId("chi_c0");
807 
808  const double chic0_m = EvtPDL::getMeanMass(chic0);
809  const double chic0_w = EvtPDL::getWidth(chic0);
810 
811  const EvtVector4R p4kpkm = p4kp + p4km;
812  const double mkpkm = p4kpkm.mass();
813 
814  //Angular distribution
815  const EvtComplex H_chic0ks = 1.0;
816 
817  //Barrier factors
818  const EvtComplex D_chic0ks = 1.0;
819 
820  //Line shape
821  const EvtVector4R p4kp_kpkm = Boost(p4kp, p4kpkm);
822  const double q0_chic0 = q(chic0_m, p4kp.mass(), p4km.mass());
823  const EvtComplex L_chic0ks =
824  BreitWigner(mkpkm, chic0_m, chic0_w, p4kp_kpkm.d3mag(), q0_chic0, 0);
825 
826  //Amplitude
827  const EvtComplex A_chic0ks = D_chic0ks * H_chic0ks * L_chic0ks;
828 
829  return A_chic0ks;
830  }
831 
832  EvtComplex EvtB0toKsKK::A_kknr(const EvtVector4R& p4k1,
833  const EvtVector4R& p4k2,
834  const double& alpha_kk)
835  {
836  const EvtVector4R p4kk = p4k1 + p4k2;
837  const double m2kk = p4kk.mass2();
838 
839  const EvtComplex A_kknr = exp(-alpha_kk * m2kk);
840 
841  return A_kknr;
842  }
843 
845 } // Belle 2 Namespace
Belle2::s13_max
double s13_max(const double &s12, const double &M, const double &m1, const double &m2, const double &m3)
maximum s13
Definition: EvtB0toKsKK.cc:691
Belle2::EvtB0toKsKK::initProbMax
void initProbMax()
Initialize standard stream objects for probability function
Definition: EvtB0toKsKK.cc:146
Belle2::EvtB0toKsKK::a_fxks_
EvtComplex a_fxks_
Variable member a_fxks_
Definition: EvtB0toKsKK.h:99
Belle2::EvtB0toKsKK::decay
void decay(EvtParticle *p)
Member of particle in EvtGen.
Definition: EvtB0toKsKK.cc:156
Belle2::EvtB0toKsKK::p
double p(const double &mab, const double &M, const double &mc)
Constants p
Definition: EvtB0toKsKK.cc:593
Belle2::EvtB0toKsKK::getName
std::string getName()
Get function Name
Definition: EvtB0toKsKK.cc:41
Belle2::EvtB0toKsKK::debugfile_
std::ofstream debugfile_
debuging stream
Definition: EvtB0toKsKK.h:117
Belle2::EvtB0toKsKK::alpha_kskmnr
double alpha_kskmnr
Variable member alpha_kskmnr.
Definition: EvtB0toKsKK.h:115
Belle2::EvtB0toKsKK::Smu
EvtVector4R Smu(const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
Function 4Vector Smu.
Definition: EvtB0toKsKK.cc:380
Belle2::EvtB0toKsKK::a_kskmnr_
EvtComplex a_kskmnr_
Variable member a_kskmnr_.
Definition: EvtB0toKsKK.h:103
Belle2::EvtB0toKsKK::a_phiks_
EvtComplex a_phiks_
Variable member a_phiks_
Definition: EvtB0toKsKK.h:98
Belle2::EvtB0toKsKK::abar_kpkmnr_
EvtComplex abar_kpkmnr_
Variable member abar_kpkmnr_
Definition: EvtB0toKsKK.h:109
Belle2::EvtB0toKsKK::Lmu
EvtVector4R Lmu(const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
Function 4Vector Lmu.
Definition: EvtB0toKsKK.cc:400
Belle2::EvtB0toKsKK::a_kpkmnr_
EvtComplex a_kpkmnr_
Variable member a_kpkmnr_.
Definition: EvtB0toKsKK.h:101
Belle2::EvtB0toKsKK::RaiseIndex
void RaiseIndex(EvtVector4R &vector)
Member function RaiseIndices.
Definition: EvtB0toKsKK.cc:471
Belle2::EvtB0toKsKK::A_fxks
EvtComplex A_fxks(const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
A_fxks is amplitude of fxks.
Definition: EvtB0toKsKK.cc:780
Belle2::EvtB0toKsKK::RaiseIndices
EvtTensor4C RaiseIndices(const EvtTensor4C &t)
Function RaiseIndices
Definition: EvtB0toKsKK.cc:463
Belle2::s13_min
double s13_min(const double &s12, const double &M, const double &m1, const double &m2, const double &m3)
minimum s13
Definition: EvtB0toKsKK.cc:676
Belle2::EvtB0toKsKK::abar_kskmnr_
EvtComplex abar_kskmnr_
Variable member abar_kskmnr_
Definition: EvtB0toKsKK.h:111
Belle2::EvtB0toKsKK::BreitWigner
EvtComplex BreitWigner(const double &m, const double &m0, const double &Gamma0, const double &q, const double &q0, const unsigned int &L)
BreitWigner Shape.
Definition: EvtB0toKsKK.cc:531
Belle2::EvtB0toKsKK::abar_phiks_
EvtComplex abar_phiks_
Variable member abar_phiks_.
Definition: EvtB0toKsKK.h:106
Belle2::B2_EVTGEN_REGISTER_MODEL
B2_EVTGEN_REGISTER_MODEL(EvtB0toKsKK)
register the model in EvtGen
Belle2::EvtB0toKsKK::Flatte
EvtComplex Flatte(const double &m, const double &m0)
Constant Flatte.
Definition: EvtB0toKsKK.cc:627
Belle2::EvtB0toKsKK::Mmunu
EvtTensor4C Mmunu(const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
Function Tensor Mmunu.
Definition: EvtB0toKsKK.cc:478
Belle2::EvtB0toKsKK::a_f0ks_
EvtComplex a_f0ks_
<Variable names for form factors
Definition: EvtB0toKsKK.h:97
Belle2::EvtB0toKsKK::abar_fxks_
EvtComplex abar_fxks_
Variable member abar_fxks_
Definition: EvtB0toKsKK.h:107
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::EvtB0toKsKK::a_chic0ks_
EvtComplex a_chic0ks_
Variable member a_chic0ks_.
Definition: EvtB0toKsKK.h:100
Belle2::EvtB0toKsKK::init
void init()
Initialize standard stream objects
Definition: EvtB0toKsKK.cc:51
Belle2::EvtB0toKsKK::abar_kskpnr_
EvtComplex abar_kskpnr_
Variable member abar_kskpnr_
Definition: EvtB0toKsKK.h:110
Belle2::EvtB0toKsKK::A_f0ks
EvtComplex A_f0ks(const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
A_f0ks is amplitude of f0.
Definition: EvtB0toKsKK.cc:649
Belle2::EvtB0toKsKK::a_kskpnr_
EvtComplex a_kskpnr_
Variable member a_kskpnr_.
Definition: EvtB0toKsKK.h:102
Belle2::EvtB0toKsKK::alpha_kskpnr
double alpha_kskpnr
Variable member alpha_kskpnr.
Definition: EvtB0toKsKK.h:114
Belle2::EvtB0toKsKK::A_chic0ks
EvtComplex A_chic0ks(const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
A_chic0ks is amplitude of chic0ks.
Definition: EvtB0toKsKK.cc:810
Belle2::EvtB0toKsKK::alpha_kpkmnr
double alpha_kpkmnr
Variable member alpha_kpkmnr.
Definition: EvtB0toKsKK.h:113
Belle2::EvtB0toKsKK::abar_chic0ks_
EvtComplex abar_chic0ks_
Variable member abar_chic0ks_.
Definition: EvtB0toKsKK.h:108
Belle2::EvtB0toKsKK::A_kknr
EvtComplex A_kknr(const EvtVector4R &p4k1, const EvtVector4R &p4k2, const double &alpha_kk)
A_kknr is amplitude of kknr.
Definition: EvtB0toKsKK.cc:840
Belle2::EvtB0toKsKK::abar_f0ks_
EvtComplex abar_f0ks_
Variable member abar_f0ks_
Definition: EvtB0toKsKK.h:105
Belle2::EvtB0toKsKK::Multiply
EvtTensor4C Multiply(const EvtTensor4C &t1, const EvtTensor4C &t2)
Function Tensor Multiply
Definition: EvtB0toKsKK.cc:447
Belle2::EvtB0toKsKK::Tmunu
EvtTensor4C Tmunu(const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
Function Tensor Tmunu
Definition: EvtB0toKsKK.cc:433
Belle2::EvtB0toKsKK::gmunu_tilde
EvtTensor4C gmunu_tilde(const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
Function Tensor gmunu
Definition: EvtB0toKsKK.cc:419
Belle2::EvtB0toKsKK::q
double q(const double &mab, const double &ma, const double &mb)
Constants q.
Definition: EvtB0toKsKK.cc:604
Belle2::EvtB0toKsKK::umu
EvtVector4R umu(const EvtVector4R &p4a, const EvtVector4R &p4b, const EvtVector4R &p4c)
Function 4Vector umu.
Definition: EvtB0toKsKK.cc:370
Belle2::EvtB0toKsKK::Boost
EvtVector4R Boost(const EvtVector4R &p4, const EvtVector4R &boost)
Parameter for boost frame
Definition: EvtB0toKsKK.cc:548
Belle2::EvtB0toKsKK::Flatte_k
EvtComplex Flatte_k(const double &s, const double &m_h)
Constant Flatte_k.
Definition: EvtB0toKsKK.cc:615
Belle2::EvtB0toKsKK::A_phiks
EvtComplex A_phiks(const EvtVector4R &p4ks, const EvtVector4R &p4kp, const EvtVector4R &p4km)
A_phiks is amplitude of phi.
Definition: EvtB0toKsKK.cc:705
Belle2::EvtB0toKsKK::clone
EvtDecayBase * clone()
Clone the decay of B0toKsKK.
Definition: EvtB0toKsKK.cc:46
Belle2::EvtB0toKsKK::BWBF
double BWBF(const double &q, const unsigned int &L)
Meson radius
Definition: EvtB0toKsKK.cc:489