File indexing completed on 2025-08-06 08:12:27
0001 #ifndef GausFunc_h
0002 #define GausFunc_h
0003
0004 #include <TMath.h>
0005
0006 double gaus_func(double *x, double *par)
0007 {
0008
0009
0010
0011
0012 return par[0] * TMath::Gaus(x[0],par[1],par[2]) + par[3];
0013 }
0014
0015 double gaus_pol1_func(double *x, double *par)
0016 {
0017
0018
0019
0020
0021 return par[0] * TMath::Gaus(x[0],par[1],par[2]) + par[3] + par[4]*x[0];
0022 }
0023
0024 double gaus_pol2_func(double *x, double *par)
0025 {
0026
0027
0028
0029
0030 double gaus_func = par[0] * TMath::Gaus(x[0],par[1],par[2]);
0031 double pol2_func = par[3] + par[4]* (x[0]-par[6]) + par[5] * pow((x[0]-par[6]),2);
0032
0033 return gaus_func + pol2_func;
0034 }
0035
0036
0037
0038 double d_gaus_pol1_func(double *x, double *par)
0039 {
0040
0041
0042
0043
0044
0045
0046
0047
0048 return par[0] * ( (1. - par[1]) * TMath::Gaus(x[0],par[2],par[3]) + par[1] * TMath::Gaus(x[0],par[2],par[4]) ) + par[5] + par[6] * x[0];
0049 }
0050
0051 double d_gaus_func(double *x, double *par)
0052 {
0053
0054
0055
0056
0057
0058
0059 return par[0] * ( (1. - par[1]) * TMath::Gaus(x[0],par[2],par[3]) + par[1] * TMath::Gaus(x[0],par[2],par[4]) );
0060 }
0061
0062 double bkg_pol2_func(double *x, double *par)
0063 {
0064 if (x[0] > (-1 * par[4]) && x[0] < par[4]) {
0065 TF1::RejectPoint();
0066 return 0;
0067 }
0068 return par[0] + par[1]* (x[0]-par[3]) + par[2] * pow((x[0]-par[3]),2);
0069
0070
0071 }
0072
0073 double full_pol2_func(double *x, double *par)
0074 {
0075 return par[0] + par[1]* (x[0]-par[3]) + par[2] * pow((x[0]-par[3]),2);
0076
0077
0078 }
0079
0080
0081
0082
0083
0084 #endif