44#include <TFitResult.h>
59 : TNamed(
"function",
"function")
97 printf(
"E-PairAnalysisFunction::PeakFun: No histogram for peak fit defined!\n");
101 Int_t idx = hPeak->FindBin(xx);
102 if ((idx <= 1) || (idx >= hPeak->GetNbinsX())) {
return 0.0; }
104 return (par[0] * hPeak->GetBinContent(idx));
113 Double_t alpha = par[1];
114 Double_t meanx = par[2];
115 Double_t sigma = par[3];
116 Double_t nn = par[4];
118 Double_t a = TMath::Power((n / TMath::Abs(alpha)), n) * TMath::Exp(-.5 * alpha * alpha);
119 Double_t b = n / TMath::Abs(alpha) - TMath::Abs(alpha);
121 Double_t arg = (
x[0] - meanx) / sigma;
124 if (arg > -1. * alpha) { fitval = nn * TMath::Exp(-.5 * arg * arg); }
126 fitval = nn * a * TMath::Power((b - arg), (-1 * n));
138 Double_t mean = par[1];
139 Double_t sigma = par[2];
142 return (n * TMath::Exp(-0.5 * TMath::Power((xx - mean) / sigma, 2)));
154 if (!sig || !back || !combined) {
155 Error(
"SetFunctions",
"Both, signal and background function need to be set!");
179 fFuncSignal =
new TF1(
"DieleSignal",
"gaus", 2.5, 4);
181 fFuncSigBack =
new TF1(
"DieleCombined",
"gaus+pol1(3)", 2.5, 4);
188 else if (type == 1) {
189 fFuncSignal =
new TF1(
"DieleSignal",
"gaus", 2.5, 4);
190 fFuncBackground =
new TF1(
"DieleBackground",
"[0]*exp(-(x-[1])/[2])", 2.5, 4);
191 fFuncSigBack =
new TF1(
"DieleCombined",
"gaus+[3]*exp(-(x-[4])/[5])", 2.5, 4);
198 else if (type == 2) {
202 "(x<[1])*([0]*(exp(-0.5*((x-[1])/[2])^2)+exp((x-[1])/"
203 "[3])*(1-exp(-0.5*((x-[1])/"
204 "[2])^2))))+(x>=[1])*([0]*exp(-0.5*((x-[1])/[2])^2))",
206 fFuncBackground =
new TF1(
"DieleBackground",
"[0]*exp(-(x-[1])/[2])+[3]", 2.5, 4);
208 "(x<[1])*([0]*(exp(-0.5*((x-[1])/[2])^2)+exp((x-[1])/"
209 "[3])*(1-exp(-0.5*((x-[1])/[2])^2))))+(x>=[1])*([0]*exp(-0.5*((x-[1])/"
210 "[2])^2))+[4]*exp(-(x-[5])/[6])+[7]",
212 fFuncSigBack->SetParameters(1., 3.1, .05, .1, 1, 2.5, 1, 0);
229 if (!peak || !bgnd) {
230 Error(
"CombineFunc",
"Both, signal and background function need to be set!");
ClassImp(PairAnalysisFunction) PairAnalysisFunction
void SetFunctions(TF1 *const combined, TF1 *const sig=0, TF1 *const back=0, Int_t parM=1, Int_t parMres=2)
virtual ~PairAnalysisFunction()
Double_t PeakBgndFun(const Double_t *x, const Double_t *par)
Double_t PeakFunMC(const Double_t *x, const Double_t *par)
void CombineFunc(TF1 *const peak=0, TF1 *const bgnd=0)
static TH1F * fgHistSimPM
Double_t PeakFunCB(const Double_t *x, const Double_t *par)
Double_t PeakFunGaus(const Double_t *x, const Double_t *par)
void SetDefaults(Int_t type)
virtual void Print(Option_t *option="") const