Belle II Software development
BW_t Struct Reference

Description: The class to treat resonances, their lineshapes, and dispersion relation integral. More...

Public Member Functions

 BW_t (double m, double gtot, double ghad, double bll, double alpha=1/137.035999084)
 m is the mass of a resonance gtot is the total width of a resonance ghad is the hadronic width of a resonance bll is the leptonic width of a resonance alpha is the fine structure constant (it might depend on energy scale)
 
double R (double s) const
 resonance shape
 
double Rp (double s) const
 the first derivative of a resonance shape
 
double Rpp (double s) const
 the second derivative of a resonance shape
 
double DRIntegral (double s, double sp) const
 Dispersion relation indefinite integral: s is the parmeter, sp is the integration variable.
 
void addknots (std::vector< double > &en) const
 Based on the resonance parameters place knots for linear piece-wise approximation with enough precision.
 

Public Attributes

double Mv2
 resonance mass squared
 
double Gv2
 resonance width squared
 
double A
 resonance total amplitude
 

Detailed Description

Description: The class to treat resonances, their lineshapes, and dispersion relation integral.

Definition at line 224 of file EvtbTosllNPR.cc.

Constructor & Destructor Documentation

◆ BW_t()

BW_t ( double m,
double gtot,
double ghad,
double bll,
double alpha = 1 / 137.035999084 )
inline

m is the mass of a resonance gtot is the total width of a resonance ghad is the hadronic width of a resonance bll is the leptonic width of a resonance alpha is the fine structure constant (it might depend on energy scale)

Definition at line 241 of file EvtbTosllNPR.cc.

242 {
243 // const double alpha = 1 / 137.035999084; // (+-21) PDG 2021
244 Mv2 = m * m;
245 Gv2 = gtot * gtot;
246 A = (9 / (alpha * alpha)) * bll * gtot * ghad;
247 }
double A
resonance total amplitude
double Mv2
resonance mass squared
double Gv2
resonance width squared

Member Function Documentation

◆ addknots()

void addknots ( std::vector< double > & en) const
inline

Based on the resonance parameters place knots for linear piece-wise approximation with enough precision.

The current method might be not optimal but the better strategy requires more investigations.

Definition at line 297 of file EvtbTosllNPR.cc.

298 {
299 double Mv = sqrt(Mv2), Gv = sqrt(Gv2);
300 double w = 0.6;
301 double smin = (Mv - w * Gv) * (Mv - w * Gv);
302 double smax = (Mv + w * Gv) * (Mv + w * Gv);
303 en.push_back(Mv * Mv);
304 for (int i = 0, n = 30; i < n; i++) {
305 double s = smin + (smax - smin) * (i + 0.5) / n;
306 en.push_back(s);
307 }
308 w = 2;
309 double smin1 = (Mv - w * Gv) * (Mv - w * Gv);
310 double smax1 = (Mv + w * Gv) * (Mv + w * Gv);
311 for (int i = 0, n = 30; i < n; i++) {
312 double s = smin1 + (smax1 - smin1) * (i + 0.5) / n;
313 if (s >= smin && s <= smax)
314 continue;
315 en.push_back(s);
316 }
317 w = 8;
318 double smin2 = (Mv - w * Gv) * (Mv - w * Gv);
319 double smax2 = (Mv + w * Gv) * (Mv + w * Gv);
320 for (int i = 0, n = 30; i < n; i++) {
321 double s = smin2 + (smax2 - smin2) * (i + 0.5) / n;
322 if (s >= smin1 && s <= smax1)
323 continue;
324 en.push_back(s);
325 }
326 w = 30;
327 double smin3 = (Mv - w * Gv) * (Mv - w * Gv);
328 double smax3 = (Mv + w * Gv) * (Mv + w * Gv);
329 for (int i = 0, n = 30; i < n; i++) {
330 double s = smin3 + (smax3 - smin3) * (i + 0.5) / n;
331 if (s >= smin2 && s <= smax2)
332 continue;
333 en.push_back(s);
334 }
335 w = 100;
336 double smin4 = (Mv - w * Gv) * (Mv - w * Gv);
337 double smax4 = (Mv + w * Gv) * (Mv + w * Gv);
338 for (int i = 0, n = 20; i < n; i++) {
339 double s = smin4 + (smax4 - smin4) * (i + 0.5) / n;
340 if (s >= smin3 && s <= smax3)
341 continue;
342 en.push_back(s);
343 }
344 }
double sqrt(double a)
sqrt for double
Definition beamHelpers.h:28

◆ DRIntegral()

double DRIntegral ( double s,
double sp ) const
inline

Dispersion relation indefinite integral: s is the parmeter, sp is the integration variable.

Definition at line 282 of file EvtbTosllNPR.cc.

283 {
284 double zp = sp - Mv2, zp2 = zp * zp;
285 double z = s - Mv2, z2 = z * z;
286 double GM2 = Mv2 * Gv2, GM = sqrt(GM2);
287 double ds = sp - s;
288 return A * (0.5 * log(ds * ds / (zp2 + GM2)) - z * atan(zp / GM) / GM) / (z2 + GM2);
289 }

◆ R()

double R ( double s) const
inline

resonance shape

Definition at line 252 of file EvtbTosllNPR.cc.

253 {
254 double z = s - Mv2, z2 = z * z;
255 return A * s / (z2 + Mv2 * Gv2);
256 }

◆ Rp()

double Rp ( double s) const
inline

the first derivative of a resonance shape

Definition at line 261 of file EvtbTosllNPR.cc.

262 {
263 double z = s - Mv2, z2 = z * z, t = 1 / (z2 + Mv2 * Gv2);
264 t *= 1 - 2 * s * z * t;
265 return A * t;
266 }

◆ Rpp()

double Rpp ( double s) const
inline

the second derivative of a resonance shape

Definition at line 271 of file EvtbTosllNPR.cc.

272 {
273 double z = s - Mv2, z2 = z * z, t = 1 / (z2 + Mv2 * Gv2);
274 t = t * t * (8 * s * z2 * t - 4 * z - 2 * s);
275 return A * t;
276 }

Member Data Documentation

◆ A

double A

resonance total amplitude

Definition at line 232 of file EvtbTosllNPR.cc.

◆ Gv2

double Gv2

resonance width squared

Definition at line 229 of file EvtbTosllNPR.cc.

◆ Mv2

double Mv2

resonance mass squared

Definition at line 226 of file EvtbTosllNPR.cc.


The documentation for this struct was generated from the following file: