MINT2
phaseSpaceIntegrals.h
Go to the documentation of this file.
1 #ifndef PHASE_SPACE_INTEGRALS_HH
2 #define PHASE_SPACE_INTEGRALS_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:17:58 GMT
5 
7 #include "Mint/IGenFct.h"
8 #include "Mint/lambda.h"
10 
11 #include "TF1.h"
12 
13 #include <iostream>
14 #include <cmath>
15 
16 
17 //double phaseSpaceIntegral2body(const DalitzEventPattern& _pat);
18 //double phaseSpaceIntegral2body(double mum, double d1, double d2);
19 
20 inline double phaseSpaceIntegral2body(double mum, double d1, double d2){
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 }
29 
30 inline double phaseSpaceIntegral2body(const DalitzEventPattern& _pat){
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 }
39 
41  protected:
42  static TF1* _f;
43  public:
45  double getVal(const DalitzEventPattern& _pat);
46  double getVal(double mum, double d1, double d2, double d3);
47 };
48 
50  protected:
51  static TF1* _f;
52  public:
54  double getVal(const DalitzEventPattern& _pat);
55  double getVal(double mum, double d1, double d2
56  , double d3, double d4);
57  double getValCheck(const DalitzEventPattern& _pat);
58  double getValCheck(double mum, double d1, double d2
59  , double d3, double d4);
60 };
61 
62 double d3body_by_ds12(Double_t* x, Double_t* p);
63 double d4body_by_ds12(Double_t* x, Double_t* p);
64 
65 
67  protected:
70  public:
72  , IGenFct* s34f
73  , const DalitzEventPattern& pat
74  );
75  double getVal() const;
76 };
77 
79  protected:
82  public:
84  , IGenFct* s12f
85  , const DalitzEventPattern& pat
86  );
87  double getVal() const;
88 };
89 
91 
92 //double phaseSpaceIntegralNbody(const DalitzEventPattern& _pat);
93 
94 #endif
95 //
static const double pi
double phaseSpaceIntegral2body(double mum, double d1, double d2)
PhaseSpaceIntegral4bodyWith_s123s12(IGenFct *s123f, IGenFct *s12f, const DalitzEventPattern &pat)
double getVal(const DalitzEventPattern &_pat)
double d4body_by_ds12(Double_t *x, Double_t *p)
PhaseSpaceIntegral4bodyWith_s12s34(IGenFct *s12f, IGenFct *s34f, const DalitzEventPattern &pat)
double getValCheck(const DalitzEventPattern &_pat)
unsigned int size() const
double d3body_by_ds12(Double_t *x, Double_t *p)
double getVal(const DalitzEventPattern &_pat)
double lambda(double x, double y, double z)
Definition: lambda.h:8
double phaseSpaceIntegral_upTo4body(const DalitzEventPattern &pat)