how to create an object particle that sticks to the top of the mesh selected?
You can gain better control over your particle placement with Weight Painting.
First, select your emitter object and make sure it has a vertex group attached. If there isn't one already there, add one with the plus sign, and if there is one there, consider renaming it to something like &quot;Sprinkles&quot; to make sure it's clear what it's for. You can safely select all before assigning it, because the weight paint will control the particles, not the selected vertices in the group, and we want to make sure all are available to paint on.

Now, enter weight paint mode. I noticed that when I assigned the vertex group, it set it all to &quot;full weight&quot; (red). If this happens for you, there are a few things you can do. Mainly, change the draw mode to subtract and either subtract away some sections you don't want particles on (mainly the edges - blender isn't perfect with particle placement, and will place some &quot;out of bounds&quot; - keep this in mind when painting), or paint it all blue and start again with the draw brush if you want to do it cleanly from scratch.

Paint the areas that should contain the sprinkles (I put most in the center of the &quot;icing&quot;), correcting as necessary by switching brshes.

Now that this is done, assign your particle collection.
NOTE- If the hair particles are all facing inwards (happens sometimes because of solidify modifier), either check the flip normals box on the modifier itself, or select the whole mesh in edit mode and pick mesh &gt; normals &gt; flip.
Now, scroll down to vertex groups, and under Density, select your &quot;Sprinkle&quot; group. This will make the particles appear only on the areas you painted that are not blue, with increasing density towards full red.