GPS: Generate from curved cylinder surface only

Does anyone know of a way to produce particles on the curved surface of a cylinder only, rather than the entire cylinder surface. Thanks in advance for any help.

You are not obliged to use GPS !
You can do it yourself in PrimaryGeneratorAction. Very often, this is more simple; and, at least, you know what you are doing …
See examples/extended/eventgenerator : userPrimaryGenerator and/or particleGun

Thanks for this. Do you know of any examples which use PrimaryGenerator and/or particleGun with an external energy distribution?

Not really …
In the same subdirectory, I guess HepMc reads external files.
Are your energy distributions complexe or big ?