Particle distribution via slope and/or height

Hi guys,

I found tutorials explaining how to use different materials via cycles nodes for slope and height of an object (terrain). Basically they run the geometry node position (height) or normal (slope) through a SepearateXYZ and then connect the Z to a color ramp which can be used for fac for a mix shader (slope) or just color variation for height.

But I cannot find how to do this with particle distribution (density) texture. The texture nodes in cycles seem like a limited subset as I cannot find the above mentioned nodes.

Is there something I have to activate or is there another approach how to do this procedural?

TIA C

Not sure if I am on some global ignore list or my questions are not answerable, but maybe someone could clarify this: as I code in python, is there a way to create custom cycles nodes (for materials and textures) via python?