Who has an authority to decide on US congressional hearing topics and persons to be questioned? I am mostly interested in the answer for investigative hearings.
Is any way for public to affect that process?
This is the power of the calendar that makes the Speaker of the House and the Senate Majority Leader so powerful - they get to decide what issues will be brought up in a given session.
Once the issue is placed on the calendar, individual committee chairman - usually the ranking member of the majority and minority parties, decide what hearings and committee meetings will be held on a given topic.
As to influencing hearings, really there are only a few things you as private citizen (or a lobbyist) for that matter can do:
And, last but not least:
Hearings are mostly opportunities for members to go on record anyway. If you really want action, you contact your member privately, convince of them of a need, and see if you can quietly sneak a bill through without going public. As Hedrick Smith's Iron Law of Politics implies, the less publicity your issues generates, the more likely it is for action to be possible in the first place.