11 #ifndef ROOT_TF1Convolution__ 12 #define ROOT_TF1Convolution__
std::unique_ptr< TF1 > fFunction2
Second function to be convolved.
static double p3(double t, double a, double b, double c, double d)
const char * GetParName(Int_t ipar) const
void Update()
Update the two component functions of the convolution.
std::unique_ptr< TF1 > fFunction1
First function to be convolved.
TF1Convolution()
constructor without arguments
std::vector< Double_t > fParams2
Double_t operator()(const Double_t *x, const Double_t *p)
Used in TF1 when doing the fit, will be evaluated at each point.
TF1Convolution & operator=(const TF1Convolution &rhs)
Operator =.
Int_t fNofPoints
Number of point for FFT array.
Class wrapping convolution of two functions.
#define ClassDef(name, id)
static double p2(double t, double a, double b, double c)
void MakeFFTConv()
Perform the FFT of the two functions.
void InitializeDataMembers(TF1 *function1, TF1 *function2, Bool_t useFFT)
Use copy instead of Clone.
Double_t fXmax
Maximal bound of the range of the convolution.
void SetRange(Double_t a, Double_t b)
virtual ~TF1Convolution()
Double_t EvalNumConv(Double_t t)
Perform numerical convolution.
void SetNofPointsFFT(Int_t n)
Bool_t fFlagGraph
! Tells if the graph is already done or not
std::unique_ptr< TGraph > fGraphConv
! Graph of the convolution
static double p1(double t, double a, double b)
Double_t fXmin
Minimal bound of the range of the convolution.
Double_t EvalFFTConv(Double_t t)
Mother of all ROOT objects.
void Copy(TObject &obj) const
Copy this to obj.
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Int_t fCstIndex
Index of the constant parameter f the first function.
std::vector< TString > fParNames
Parameters' names.
Bool_t fFlagFFT
Choose FFT or numerical convolution.
void SetNumConv(Bool_t flag=true)
std::vector< Double_t > fParams1
void GetRange(Double_t &a, Double_t &b) const
void SetExtraRange(Double_t percentage)
void SetParameters(const Double_t *params)