private void checkRasmolHydrogenBond(AminoMonomer source, Polymer polymer,
int indexDonor, Point3f hydrogenPoint,
BitSet bsB, List vHBonds,
int[][] min, boolean checkDistances) {
Point3f sourceAlphaPoint = source.getLeadAtom();
Point3f sourceNitrogenPoint = source.getNitrogenAtom();
Atom nitrogen = source.getNitrogenAtom();
int[] m;
for (int i = polymer.monomerCount; --i >= 0;) {
if (polymer == this && (i == indexDonor || i + 1 == indexDonor
/* || i - 1 == indexDonor*/ ))
continue;
// 3mn5 GLY36->ARG37 is an example where we can have i-1 be the donor
AminoMonomer target = (AminoMonomer) ((BioPolymer) polymer).monomers[i];
Atom oxygen = target.getCarbonylOxygenAtom();
if (oxygen == null || bsB != null && !bsB.get(oxygen.index))
continue;
Point3f targetAlphaPoint = target.getLeadAtom();
float dist2 = sourceAlphaPoint.distanceSquared(targetAlphaPoint);
if (dist2 >= maxHbondAlphaDistance2)
continue;
int energy = calcHbondEnergy(sourceNitrogenPoint, hydrogenPoint, target,
checkDistances);