MINT2
Classes | Functions
phaseSpaceIntegrals.h File Reference
#include "Mint/DalitzEventPattern.h"
#include "Mint/IGenFct.h"
#include "Mint/lambda.h"
#include "Mint/CLHEPPhysicalConstants.h"
#include "TF1.h"
#include <iostream>
#include <cmath>

Go to the source code of this file.

Classes

class  PhaseSpaceIntegral3body
 
class  PhaseSpaceIntegral4body
 
class  PhaseSpaceIntegral4bodyWith_s12s34
 
class  PhaseSpaceIntegral4bodyWith_s123s12
 

Functions

double phaseSpaceIntegral2body (double mum, double d1, double d2)
 
double phaseSpaceIntegral2body (const DalitzEventPattern &_pat)
 
double d3body_by_ds12 (Double_t *x, Double_t *p)
 
double d4body_by_ds12 (Double_t *x, Double_t *p)
 
double phaseSpaceIntegral_upTo4body (const DalitzEventPattern &pat)
 

Function Documentation

◆ d3body_by_ds12()

double d3body_by_ds12 ( Double_t *  x,
Double_t *  p 
)

Definition at line 52 of file phaseSpaceIntegrals.cpp.

52  {
53  bool dbThis=false;
54 
55  double s12 = x[0];
56  if(s12 < 0) return 0;
57  double m12 = sqrt(s12);
58  double mum = p[0];
59  double m1 = p[1];
60  double m2 = p[2];
61  double m3 = p[3];
62  if(dbThis) cout << " d3body_by_ds12 called with "
63  << mum << ", "
64  << m1 << ", "
65  << m2 << ", "
66  << m3 << endl;
67 
68  return phaseSpaceIntegral2body(mum, m12, m3)
69  * phaseSpaceIntegral2body(m12, m1, m2);
70 }
double phaseSpaceIntegral2body(double mum, double d1, double d2)
static const double m2
static const double m3

◆ d4body_by_ds12()

double d4body_by_ds12 ( Double_t *  x,
Double_t *  p 
)

Definition at line 22 of file phaseSpaceIntegrals.cpp.

22  {
23  bool dbThis=false;
24  double s12 = x[0];
25  if(s12 < 0) return 0;
26  double m12 = sqrt(s12);
27  double mum = p[0];
28  double m1 = p[1];
29  double m2 = p[2];
30  double m3 = p[3];
31  double m4 = p[4];
32 
33  if(dbThis) cout << " d4body_by_ds12 called with "
34  << mum << ", "
35  << m1 << ", "
36  << m2 << ", "
37  << m3 << ", "
38  << m4 << endl;
39 
41 
42  double p3val = p3.getVal(mum, m12, m3, m4);
43  double p2val = phaseSpaceIntegral2body(m12, m1, m2);
44  if(dbThis){
45  cout << " d4body_by_ds12: returning " << p2val << " * " << p3val
46  << " = " << p2val * p3val
47  << endl;
48  }
49  return p2val * p3val;
50 }
double phaseSpaceIntegral2body(double mum, double d1, double d2)
double getVal(const DalitzEventPattern &_pat)
static const double m2
static const double m3

◆ phaseSpaceIntegral2body() [1/2]

double phaseSpaceIntegral2body ( double  mum,
double  d1,
double  d2 
)
inline

Definition at line 20 of file phaseSpaceIntegrals.h.

20  {
21  if(mum <=0 ) return 0;
22  if(mum < d1 + d2) return 0;
23 
24  double la = lambda(mum*mum, d1*d1, d2*d2);
25  if(la <= 0) return 0;
26 
27  return pi * sqrt(la)/(2*mum*mum);
28 }
static const double pi
double lambda(double x, double y, double z)
Definition: lambda.h:8

◆ phaseSpaceIntegral2body() [2/2]

double phaseSpaceIntegral2body ( const DalitzEventPattern _pat)
inline

Definition at line 30 of file phaseSpaceIntegrals.h.

30  {
31  if(_pat.size() != 3){
32  std::cout << "phaseSpaceIntegral2body: wrong pattern " << _pat << std::endl;
33  }
34  double mum = _pat[0].mass();
35  double d1 = _pat[1].mass();
36  double d2 = _pat[2].mass();
37  return phaseSpaceIntegral2body(mum, d1, d2);
38 }
double phaseSpaceIntegral2body(double mum, double d1, double d2)
unsigned int size() const

◆ phaseSpaceIntegral_upTo4body()

double phaseSpaceIntegral_upTo4body ( const DalitzEventPattern pat)

Definition at line 488 of file phaseSpaceIntegrals.cpp.

488  {
489 
490  if(pat.numDaughters() < 2 ){
491  return 0;
492  }else if(pat.numDaughters() == 2 ){
493  return phaseSpaceIntegral2body(pat);
494  }else if(pat.numDaughters() == 3){
496  return p3.getVal(pat);
497  }else if(pat.numDaughters() == 4){
499  return p4.getVal(pat);
500  }else{
501  return -9999;
502  }
503 
504 }
double phaseSpaceIntegral2body(double mum, double d1, double d2)
double getVal(const DalitzEventPattern &_pat)
double getVal(const DalitzEventPattern &_pat)