Log data about the effective masses and their directions.

    Args:
        data (dict): The effective mass data. Formatted as a :obj:`dict` with
            the keys:

            'effective_mass' (:obj:`float`)
                The effective mass in units of electron rest mass, :math:`m_0`.

            'energies' (:obj:`numpy.ndarray`)
                Band eigenvalues in eV.

            'band_id' (:obj:`int`)
                The index of the band,

            'spin' (:obj:`~pymatgen.electronic_structure.core.Spin`)
                The spin channel

            'start_kpoint' (:obj:`int`)
                The index of the k-point at which the band extrema occurs

            'end_kpoint' (:obj:`int`)
                The k-point towards which the data has been sampled.

        is_spin_polarized (bool): Whether the system is spin polarized.

def _log_effective_mass_data(data, is_spin_polarized, mass_type='m_e'):
    """Log data about the effective masses and their directions.

    Args:
        data (dict): The effective mass data. Formatted as a :obj:`dict` with
            the keys:

            'effective_mass' (:obj:`float`)
                The effective mass in units of electron rest mass, :math:`m_0`.

            'energies' (:obj:`numpy.ndarray`)
                Band eigenvalues in eV.

            'band_id' (:obj:`int`)
                The index of the band,

            'spin' (:obj:`~pymatgen.electronic_structure.core.Spin`)
                The spin channel

            'start_kpoint' (:obj:`int`)
                The index of the k-point at which the band extrema occurs

            'end_kpoint' (:obj:`int`)
                The k-point towards which the data has been sampled.

        is_spin_polarized (bool): Whether the system is spin polarized.
    """
    s = ' ({})'.format(data['spin'].name) if is_spin_polarized else ''

    # add 1 to band id to be consistent with VASP
    band_str = 'band {}{}'.format(data['band_id'] + 1, s)

    start_kpoint = data['start_kpoint']
    end_kpoint = data['end_kpoint']
    eff_mass = data['effective_mass']

    kpoint_str = kpt_str.format(k=start_kpoint.frac_coords)
    if start_kpoint.label:
        kpoint_str += ' ({})'.format(start_kpoint.label)
    kpoint_str += ' -> '
    kpoint_str += kpt_str.format(k=end_kpoint.frac_coords)
    if end_kpoint.label:
        kpoint_str += ' ({})'.format(end_kpoint.label)

    logging.info('  {}: {:.3f} | {} | {}'.format(mass_type, eff_mass,
                                                 band_str, kpoint_str))