It will create one canvas with the representation of the cylindrical and spherical Bessel functions regular and modified
#include <cmath>
{
TCanvas *DistCanvas =
new TCanvas(
"DistCanvas",
"Bessel functions example", 10, 10, 800, 600);
gPad->SetFrameFillColor(19);
for(
int nu = 0; nu <
n; nu++)
{
JBessel[nu]=
new TF1(
"J_0",
"ROOT::Math::cyl_bessel_j([0],x)", 0, 10);
}
JBessel[0]->TF1::GetXaxis()->
SetTitle(
"x");
leg->AddEntry(JBessel[0]->DrawCopy(),
" J_0(x)",
"l");
leg->AddEntry(JBessel[1]->DrawCopy(
"same"),
" J_1(x)",
"l");
leg->AddEntry(JBessel[2]->DrawCopy(
"same"),
" J_2(x)",
"l");
leg->AddEntry(JBessel[3]->DrawCopy(
"same"),
" J_3(x)",
"l");
leg->AddEntry(JBessel[4]->DrawCopy(
"same"),
" J_4(x)",
"l");
gPad->SetFrameFillColor(19);
for(
int nu = 0; nu <
n; nu++){
KBessel[nu]=
new TF1(
"J_0",
"ROOT::Math::cyl_bessel_k([0],x)", 0, 10);
KBessel[nu]->
SetTitle(
"Bessel K functions");
}
leg2->
AddEntry(KBessel[0]->DrawCopy(),
" K_0(x)",
"l");
leg2->
AddEntry(KBessel[1]->DrawCopy(
"same"),
" K_1(x)",
"l");
leg2->
AddEntry(KBessel[2]->DrawCopy(
"same"),
" K_2(x)",
"l");
leg2->
AddEntry(KBessel[3]->DrawCopy(
"same"),
" K_3(x)",
"l");
leg2->
AddEntry(KBessel[4]->DrawCopy(
"same"),
" K_4(x)",
"l");
gPad->SetFrameFillColor(19);
for(int nu = 0; nu <= 4; nu++){
iBessel[nu]=
new TF1(
"J_0",
"ROOT::Math::cyl_bessel_i([0],x)", 0, 10);
iBessel[nu]->
SetTitle(
"Bessel I functions");
}
leg3->
AddEntry(iBessel[0]->DrawCopy(),
" I_0",
"l");
leg3->
AddEntry(iBessel[1]->DrawCopy(
"same"),
" I_1(x)",
"l");
leg3->
AddEntry(iBessel[2]->DrawCopy(
"same"),
" I_2(x)",
"l");
leg3->
AddEntry(iBessel[3]->DrawCopy(
"same"),
" I_3(x)",
"l");
leg3->
AddEntry(iBessel[4]->DrawCopy(
"same"),
" I_4(x)",
"l");
gPad->SetFrameFillColor(19);
for(int nu = 0; nu <= 4; nu++){
jBessel[nu]=
new TF1(
"J_0",
"ROOT::Math::sph_bessel([0],x)", 0, 10);
jBessel[nu]->
SetTitle(
"Bessel j functions");
}
leg4->
AddEntry(jBessel[0]->DrawCopy(),
" j_0(x)",
"l");
leg4->
AddEntry(jBessel[1]->DrawCopy(
"same"),
" j_1(x)",
"l");
leg4->
AddEntry(jBessel[2]->DrawCopy(
"same"),
" j_2(x)",
"l");
leg4->
AddEntry(jBessel[3]->DrawCopy(
"same"),
" j_3(x)",
"l");
leg4->
AddEntry(jBessel[4]->DrawCopy(
"same"),
" j_4(x)",
"l");
}
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title.
virtual void SetTitleSize(Float_t size=0.04)
Set size of axis title.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
void SetTitle(const char *title="") override
Set function title if title has the form "fffffff;xxxx;yyyy", it is assumed that the function title i...
virtual void SetParameters(const Double_t *params)
TAxis * GetXaxis() const
Get x axis of the function.
This class displays a legend box (TPaveText) containing several legend entries.
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
void Draw(Option_t *option="") override
Draw this legend with its current attributes.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.
A Pave (see TPave) with a text centered in the Pave.
void Draw(Option_t *option="") override
Draw this pavelabel with its current attributes.
virtual void SetGrid(Int_t valuex=1, Int_t valuey=1)=0