Making a Hybrid Lens

In this example, we will create our own lens that has a spherical side and a cylindrical side.  There is more than one way to accomplish this, but we will create it using CustomLens.  
By using the option SurfaceLabel -> {SphericalShape, CylindricalShape}, we have defined the surfaces for CustomLens.

hybridlens = CustomLens[75,-75,50,15,HybridLens, 
SurfaceLabel->{SphericalShape, CylindricalShape}];

DrawSystem[hybridlens];

Here's what happens when we pass a grid of rays through it.

DrawSystem[{GridOfRays[45], Move[hybridlens, {50,0,0}],
Boundary[200]}];