Tags each `Residue` with rise_per_residue, radius_of_curvature and residues_per_turn.

        Parameters
        ----------
        force : bool, optional
            If `True` the tag will be run even if `Residues` are already
            tagged.
        reference_axis : list(numpy.array or tuple or list), optional
            Coordinates to feed to geometry functions that depend on
            having a reference axis.
        reference_axis_name : str, optional
            Used to name the keys in tags at `Polypeptide` and `Residue` level.

def tag_ca_geometry(self, force=False, reference_axis=None,
                        reference_axis_name='ref_axis'):
        """Tags each `Residue` with rise_per_residue, radius_of_curvature and residues_per_turn.

        Parameters
        ----------
        force : bool, optional
            If `True` the tag will be run even if `Residues` are already
            tagged.
        reference_axis : list(numpy.array or tuple or list), optional
            Coordinates to feed to geometry functions that depend on
            having a reference axis.
        reference_axis_name : str, optional
            Used to name the keys in tags at `Polypeptide` and `Residue` level.
        """
        tagged = ['rise_per_residue' in x.tags.keys() for x in self._monomers]
        if (not all(tagged)) or force:
            # Assign tags None if Polymer is too short to have a primitive.
            if len(self) < 7:
                rprs = [None] * len(self)
                rocs = [None] * len(self)
                rpts = [None] * len(self)
            else:
                rprs = self.rise_per_residue()
                rocs = self.radii_of_curvature()
                rpts = residues_per_turn(self)
            for monomer, rpr, roc, rpt in zip(self._monomers, rprs, rocs, rpts):
                monomer.tags['rise_per_residue'] = rpr
                monomer.tags['radius_of_curvature'] = roc
                monomer.tags['residues_per_turn'] = rpt
        # Functions that require a reference_axis.
        if (reference_axis is not None) and (len(reference_axis) == len(self)):
            # Set up arguments to pass to functions.
            ref_axis_args = dict(p=self,
                                 reference_axis=reference_axis,
                                 tag=True,
                                 reference_axis_name=reference_axis_name)
            # Run the functions.
            polymer_to_reference_axis_distances(**ref_axis_args)
            crick_angles(**ref_axis_args)
            alpha_angles(**ref_axis_args)
        return