30 Double_t AnalyticalIntegral(TF1 *f, Double_t a, Double_t b)
35 Int_t num = f->GetNumber();
36 Double_t *p = f->GetParameters();
39 TFormula * formula = f->GetFormula();
41 Error(
"TF1::AnalyticalIntegral",
"Invalid formula number - return a NaN");
42 result = TMath::QuietNaN();
47 result = ( exp(p[0]+p[1]*xmax) - exp(p[0]+p[1]*xmin))/p[1];
54 if (formula->TestBit(TFormula::kNormalized))
55 result = amp * (ROOT::Math::gaussian_cdf(xmax, sigma, mean) - ROOT::Math::gaussian_cdf(xmin, sigma, mean));
57 result = amp * sqrt(2 * TMath::Pi()) * sigma *
58 (ROOT::Math::gaussian_cdf(xmax, sigma, mean) - ROOT::Math::gaussian_cdf(xmin, sigma, mean));
67 if (formula->TestBit(TFormula::kNormalized) )
68 result = amp*(ROOT::Math::landau_cdf(xmax,sigma,mean) - ROOT::Math::landau_cdf(xmin,sigma,mean));
70 result = amp*sigma*(ROOT::Math::landau_cdf(xmax,sigma,mean) - ROOT::Math::landau_cdf(xmin,sigma,mean));
82 result = amp*( ROOT::Math::crystalball_integral(xmin,alpha,n,sigma,mean) - ROOT::Math::crystalball_integral(xmax,alpha,n,sigma,mean) );
84 result = amp*( ROOT::Math::crystalball_integral(xmax,alpha,n,sigma,mean) - ROOT::Math::crystalball_integral(xmin,alpha,n,sigma,mean) );
88 else if (num >= 300 && num < 400)
91 for (
int i=0;i<n+1;i++)
93 result += p[i]/(i+1)*(std::pow(xmax,i+1)-std::pow(xmin,i+1));
97 result = TMath::QuietNaN();