So you want to generate a reflection vector, dynamically, right? Clearly, from the other answers, there's more than one way to do it, although some of those are less dynamic than others.
My way to do it would be to use constraints:
This armature contains five bones, but they're not all necessary. Source, Reflector, and Reflected are all root-level. The armature itself is parented to the reflector dish, such that Source, Reflector, and Reflected all aim out from it, their Y axes aligned with the normal of the reflector dish.
Source simply copies the location (world->world) of an empty. This is the source of the laser beam.
The bulk of the work is done by Reflected, which by copying the inverted XZ of Source, local->local, automatically reflects over the center of the armature.
FromSource and ToReflected have simple stretch-to constraints targeting the root-level Reflector bone.
Meshes can be parented to these bones as desired. You might consider disabling inherit rotation on FromSource and ToReflected if using low poly cylinders, as otherwise these bones can inherit some tilt/twist from the reflector (there's not really a right solution to what their tilt should be.)
Object constraints could be used instead, but I find it easier to work with bones, and find that structures like this are organized more nicely for future work when contained in a single, tidy package.