Hydrogen bonds are usually detected using a combination of distance and angle criteria. Other fancier methods probably exist, but these geometrical solutions are often good enough.
I won't really look for a hydrogen bond paper, Pubmed exists for that, but I will give the link to the GROMACS manual. Look for the Appendix D.35, it has all the ingredients.
First problem with identifying hydrogen bonbds on a PDB is that, usually, there are no hydrogen atoms included in PDB structures. So your order of operations is:
- Add hydrogen atoms.
- Minimize (geometrical optimization) the structure containing the hydrogens. This will optimize hydrogen positions such that there are no spacial overlaps and that they point in the right direction.
- Detect and analyze hydrogen bonds: look at donors/acceptors or total number of hbonds.
You can go about this the open-source route -- using PyMol, VMD, GROMACS (as João had mentioned), Simulaid or MODELLER. Or you can also download Schrodinger's Maestro that I use a lot (usually $$$, but free for academics for MD simulations). There it's really trivial to prepare your protein (add hydrogen atoms/minimization/hbond analysis.)
When you decide on a tool, feel free to post another question to get the recipe.