Dome with smokestack - how to clean mesh after boolean modifier? I am trying to create a dome with smokestack (the best description I have - see pictures).

Creating the dome is straightforward. Then for the smokestack, I create a circle, position it and extrude it upwards along Z-axis so that it penetrates the dome roof. To combine the meshes together I use boolean UNION modifier and click Apply. Then I am having trouble creating a clean correct mesh.

When I apply smooth shading you can see the surface is funky. I tried to recalculate the normals and I played with the geometry. The pictures describe the best I could do. 

Could someone, please, guide me what would be the cleanest approach of modeling a simple dome with one smokestack?
blender loop tools addon >>  circle > extrude > edge bevel