I find it helpful to think about this as naive, simplified reverse ray-tracing.
So a ray is fired from the camera through a pixel in the screen, and hits a shading point on a visible surface. That ray is then split, and bounced off the surface towards all the lamps it can 'see', asking of each lamp: "what light contribution are you making to my color calculation?" The 'incoming' output of the lamp shader's Geometry node is the vector representing the direction of that last segment of the ray, which hits the lamp. (To or from doesn't matter in this case).
The CombineXYZ, Mapping, and Normalize nodes establish an easily rotated unit vector P, whose origin we can think of as being at the lamp.
The DotProduct and Absolute nodes return the positive dot product of the incoming ray and P. The closer this is to 0, the smaller the angle between the incoming ray and the plane whose normal is P, passing through the lamp. We want the light to emit only if the incoming ray's origin is close to that plane.
The angle won't do. We want a measure of the distance between the origin of the ray and the plane. We don't want our beam to spread as it gets further from the lamp. The Light Path>Ray Length and Multiply nodes multiply the our dot product by the length of the incoming ray, giving us a number which varies linearly with the distance of the ray origin from the plane. (Think similar triangles.)
The Less Than node returns 1 if that distance falls within a threshold, 0 if not.
The Light Falloff>Constant>Strength and Multiply nodes give us a light whose intensity is a constant Strength value, irrespective of the length of the incoming ray, if the threshold requirements are met.
The result: a planar sheet of light, which doesn't decay with distance, with an adjustable rotation, strength, and thickness.