Apologies in advance for the math lesson…
Orientation can only be described by, at minimum, a pair of vectors: one vector is the “forward” axis, which in Houdini typically means the normal, and the other vector is the “up” axis. If you've ever used Copy to Points, you're probably familiar with the need to set those attributes in order to orient your copies.
The reason you need two vectors is so that you can cross-multiply them to get a third orthogonal vector. Those three vectors become a 3x3 transform matrix: a set of three vectors that describe the three axes of an object.
Orientation can also be described as a quaternion, which is a four-dimensional vector that's a kind of weird mathematical hack that makes it simpler to blend between orientations.
Long story short, you need to define what the orientation of your points is
currently, then you can multiply other orientations by it in order to accumulate on top of that. You can create an orientation out of vectors by first using
matrix3 m = maketransform(v1, v2)
to create a transform matrix, then
vector4 q = quaternion(m)
to convert that matrix to a quaternion so it can be multiplied with the other one. One of those vectors, up, can probably be {0,1,0} from the looks of your scene. The other maybe you could get from the point normals? Hard to say without knowing what you mean by the “right” orientation in your case.