Hint: Spherical waves.
{
Double_t ym_p2 = (x[1] - d_2) * (x[1] - d_2);
Double_t yp_p2 = (x[1] + d_2) * (x[1] + d_2);
+ par[3] *
cos(tpi_l *
sqrt(x_p2 + yp_p2)));
return amplitude * amplitude;
}
{
for(
Int_t i=0; i<10; i++){
xint[0] = xcur;
xint[1] = x[1];
Double_t intens = interference(xint, par);
if(intens > maxintens) maxintens = intens;
xcur -= dlambda;
}
return maxintens;
}
{
300,40, 1004, 759);
c1->
Range(0, -10, 30, 10);
TPad *pad =
new TPad(
"pr",
"pr", 0.5, 0 , 1., 1);
pad->
Range(0, -10, 15, 10);
for (
Int_t i=0;i<colNum;i++) {
,
pow(i/((colNum)*1.0),0.3)
,
pow(i/((colNum)*1.0),0.3)
,0.5*(i/((colNum)*1.0)),"");
palette[i] = 1001+i;
}
TF2 * f0 =
new TF2(
"ray_source",interference, 0.02, 15, -8, 8, 4);
title.
DrawLatex(1.6, 8.5,
"A double slit experiment");
line =
new TLine(15,-10, 15, 0 - 0.5*d -0.2);
line =
new TLine(15, 0 - 0.5*d +0.2 ,15, 0 + 0.5*d -0.2);
line =
new TLine(15,0 + 0.5*d + 0.2,15, 10);
finter =
new TF2(
"interference",interference, 0.01, 14, -10, 10, 4);
finter->
Draw(
"samecolorz");
Float_t r = 0.5 * lambda, dr = lambda;
for (
Int_t i = 0; i < 16; i++) {
arc->
DrawArc(0, 0.5*d, r, 0., 360.,
"only");
arc->
DrawArc(0, -0.5*d, r, 0., 360.,
"only");
r += dr;
}
TF2 * fresult =
new TF2(
"result",result, 14, 15, -10, 10, 4);
fresult->
Draw(
"samecolor");
line =
new TLine(13.8,-10, 14, 10);
}