def xray_lines(self, element, initial_level=None, excitation_energy=None):
        """returns dictionary of x-ray emission lines of an element, with
         key = siegbahn symbol (Ka1, Lb1, etc)  and
         value = (energy (in eV), intensity, initial_level, final_level)

        options:
         initial_level:     limit output to an initial level(s) -- a string or list of strings
         excitation_energy: limit output to those excited by given energy (in eV)

        Note that excitation energy will overwrite initial_level
        """
        if isinstance(element, int):
            element = self.symbol(element)
        tab = XrayTransitionsTable
        row = self.query(tab).filter(tab.element==element.title())
        if excitation_energy is not None:
            initial_level = []
            for ilevel, dat in self.xray_edges(element).items():
                if dat[0] < excitation_energy:
                    initial_level.append(ilevel.title())

        if initial_level is not None:
            if isinstance(initial_level, (list, tuple)):
                row = row.filter(tab.initial_level.in_(initial_level))
            else:
                row = row.filter(tab.initial_level==initial_level.title())
        out = {}
        for r in row.all():
            out[str(r.siegbahn_symbol)] = (r.emission_energy, r.intensity,
                                           r.initial_level, r.final_level)
        return out
dataset/ETHPy150Open xraypy/xraylarch/plugins/xray/xraydb.py/xrayDB.xray_lines/original