FdDoubleBumpFinderKG/ProfileFitFunctions.h
Go to the documentation of this file.
1 #ifndef _FdDoubleBumpFinderKG_ProfileFitFunctions_h_
2 #define _FdDoubleBumpFinderKG_ProfileFitFunctions_h_
3 
4 #include <cmath>
5 
6 
7 namespace profileFit {
8 
9  using namespace std;
10 
17  };
18 
19 
21  eGHX0 = 0,
26  };
27 
28 
29  inline
30  double
31  GHFunction(const double X,
32  const double x0, const double lambda,
33  const double xMax, const double nMax)
34  {
35  if (X <= x0)
36  return 0;
37 
38  const double tmp = xMax - x0;
39 
40  return nMax * pow((X-x0)/tmp, tmp/lambda) *
41  exp((xMax - X) / lambda);
42  }
43 
44 
46  eDGHX01 = 0,
55  };
56 
57 
58  inline
59  double
60  DoubleGHFunction(const double X,
61  const double x01, const double lambda1,
62  const double xMax1, const double nMax1,
63  const double x02, const double lambda2,
64  const double xMax2, const double nMax2)
65  {
66  return GHFunction(X, x01, lambda1, xMax1, nMax1) +
67  GHFunction(X, x02, lambda2, xMax2, nMax2);
68 
69  }
70 
71 
73  eGiAXmax = 0,
78  };
79 
80 
81  inline
82  double
83  GaussInAgeFunction(const double X,
84  const double nMax,
85  const double xMax,
86  const double sigma1,
87  const double sigma2)
88  {
89  const double age = 3*X / (X + 2*xMax);
90  const double sigma = (age < 1) ? sigma1 : sigma2;
91  const double z = (age - 1) / sigma;
92  return nMax * exp(-0.5*z*z);
93  }
94 
95 }
96 
97 
98 #endif
double pow(const double x, const unsigned int i)
double GaussInAgeFunction(const double X, const double nMax, const double xMax, const double sigma1, const double sigma2)
double GHFunction(const double X, const double x0, const double lambda, const double xMax, const double nMax)
double DoubleGHFunction(const double X, const double x01, const double lambda1, const double xMax1, const double nMax1, const double x02, const double lambda2, const double xMax2, const double nMax2)

, generated on Tue Sep 26 2023.