code: @Override
      public DescriptorValue calculate(IAtom atom, IAtomContainer atomContainer) {
          IAtomContainer clonedAtomContainer;
          try {
              clonedAtomContainer = (IAtomContainer) atomContainer.clone();
          } catch (CloneNotSupportedException e) {
              return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), new BooleanResult(
                      false), NAMES, e);
          }
          IAtom clonedAtom = clonedAtomContainer.getAtom(atomContainer.indexOf(atom));
  
          boolean isProtonInPiSystem = false;
          IAtomContainer mol = clonedAtom.getBuilder().newInstance(IAtomContainer.class, clonedAtomContainer);
          if (checkAromaticity) {
              try {
                  AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(mol);
                  Aromaticity.cdkLegacy().apply(mol);
              } catch (CDKException e) {
                  return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), new BooleanResult(
                          false), NAMES, e);
              }
          }
          if (atom.getSymbol().equals("H")) {
              if (acold != clonedAtomContainer) {
                  acold = clonedAtomContainer;
                  acSet = ConjugatedPiSystemsDetector.detect(mol);
              }
              Iterator<IAtomContainer> detected = acSet.atomContainers().iterator();
              List<IAtom> neighboors = mol.getConnectedAtomsList(clonedAtom);
              for (IAtom neighboor : neighboors) {
                  while (detected.hasNext()) {
                      IAtomContainer detectedAC = detected.next();
                      if ((detectedAC != null) && (detectedAC.contains(neighboor))) {
                          isProtonInPiSystem = true;
                          break;
                      }
                  }
              }
          }
          return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), new BooleanResult(
                  isProtonInPiSystem), NAMES);
      }
docs: The method is a proton descriptor that evaluates if a proton is joined to a conjugated system.
  
  @param  atom              The IAtom for which the DescriptorValue is requested
  @param  atomContainer              AtomContainer
  @return                   true if the proton is bonded to a conjugated system