%%cpp -d #include double WaveFunction(double x, double y) { double r = sqrt(x *x + y*y); double w = (1/pow((4*sqrt(2*TMath::Pi())* 1), 1.5)) * (2 - (r / 1)*pow(TMath::E(), (-1 * r)/2)); // Wavefunction formula for psi 2,0,0 return w*w; // Amplitude } TH2F *h2D = new TH2F("Hydrogen Atom", "Hydrogen in n = 2, l = 0, m = 0 state; Position in x direction; Position in y direction", 200, -10, 10, 200, -10, 10); for (float i = -10; i < 10; i += 0.01) { for (float j = -10; j < 10; j += 0.01) { h2D->Fill(i, j, WaveFunction(i, j)); } } gStyle->SetPalette(kCividis); gStyle->SetOptStat(0); TCanvas *c1 = new TCanvas("c1", "Schroedinger's Hydrogen Atom", 750, 1500); c1->Divide(1, 2); auto c1_1 = c1->cd(1); c1_1->SetRightMargin(0.14); h2D->GetXaxis()->SetLabelSize(0.03); h2D->GetYaxis()->SetLabelSize(0.03); h2D->GetZaxis()->SetLabelSize(0.03); h2D->SetContour(50); h2D->Draw("colz"); TLatex *l = new TLatex(-10, -12.43, "The Electron is more likely to be found in the yellow areas and less likely to be found in the blue areas."); l->SetTextFont(42); l->SetTextSize(0.02); l->Draw(); auto c1_2 = c1->cd(2); c1_2->SetTheta(42.); TH2D *h2Dc = (TH2D*)h2D->Clone(); h2Dc->SetTitle("3D view of probability amplitude;;"); h2Dc->Draw("surf2"); gROOT->GetListOfCanvases()->Draw()