Sometimes in code you have to be prepared to write more lines than you expected.
It may be a longer task, but it is still logical and straightforward.
You are creating cylinders, so for each feature you will have one body comprising of 3 faces.
One face will be cylindrical, and the other 2 will be planar.
So simply get the faces from the feature (IFeature.GetFaces), loop through and create your dome on the planar ones (IFace2.GetSurface.IsPlane)
Retrieving data ...