Пример #1
0
def setroi(roinum, element, edge=None, det=None):
    '''
    Set energy ROIs for Vortex SDD.  Selects elemental edge given current energy if not provided.
    roinum      [1,2,3]     ROI number
    element     <symbol>    element symbol for target energy
    edge                    optional:  ['ka1','ka2','kb1','la1','la2','lb1','lb2','lg1','ma1']
    '''
    cur_element = xrfC.XrfElement(element)
    if edge == None:
        for e in [
                'ka1', 'ka2', 'kb1', 'la1', 'la2', 'lb1', 'lb2', 'lg1', 'ma1'
        ]:
            if cur_element.emission_line[e] < energy.energy.get()[1]:
                edge = 'e'
                break
    else:
        e = edge

    e_ch = int(cur_element.emission_line[e] * 1000)
    if det is not None:
        det.channel1.set_roi(roinum,
                             e_ch - 100,
                             e_ch + 100,
                             name=element + '_' + e)
        cpt = getattr(det.channel1.rois, f'roi{roinum:02d}')
        cpt.kind = 'hinted'
    else:
        for d in [xs.channel1, xs.channel2, xs.channel3]:
            d.set_roi(roinum, e_ch - 100, e_ch + 100, name=element + '_' + e)
            cpt = getattr(d.rois, f'roi{roinum:02d}')
            cpt.kind = 'hinted'
    print("ROI{} set for {}-{} edge.".format(roinum, element, e))
Пример #2
0
def getemissionE(element, edge=None):
    cur_element = xrfC.XrfElement(element)
    if edge == None:
        print("edge\tenergy [keV]")
        for e in element_edges:
            if cur_element.emission_line[
                    e] < 25. and cur_element.emission_line[e] > 1.:
                print("{0:s}\t{1:8.2f}".format(e,
                                               cur_element.emission_line[e]))
    else:
        return cur_element.emission_line[edge]
def getemissionE(element, edge=None):
    cur_element = xrfC.XrfElement(element)
    if edge is None:
        print("Edge\tEnergy [keV]")
        for e in element_edges:
            if cur_element.emission_line[e] < 25. and \
               cur_element.emission_line[e] > 1.:
                # print("{0:s}\t{1:8.2f}".format(e, cur_element.emission_line[e]))
                print(f"{e}\t{cur_element.emission_line[e]:8.2f}")
    else:
        return cur_element.emission_line[edge]
Пример #4
0
def setroi(roinum, element, edge):
    '''
    Set energy ROIs for Vortex SDD.  Selects elemental edge given current energy if not provided.
    roinum      [1,2,3]     ROI number
    element     <symbol>    element symbol for target energy
    edge                    optional:  ['ka1','ka2','kb1','la1','la2','lb1','lb2','lg1','ma1']
    '''
    
    cur_element = xrfC.XrfElement(element)

    e_ch = int(cur_element.emission_line[edge] * 1000)
    
    for (n, d) in xs.channels.items():
        d.set_roi(roinum, e_ch-200, e_ch+200, name=element + '_' + edge)
        getattr(d.rois, f'roi{roinum:02d}').kind = 'normal'
    print("ROI{} set for {}-{} edge.".format(roinum, element, edge))
Пример #5
0
interestinglist = [
    'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe',
    'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', 'Rb', 'Sr',
    'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn',
    'Sb', 'Te', 'I', 'Xe', 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm',
    'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb', 'Lu', 'Hf', 'Ta', 'W',
    'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn',
    'Fr', 'Ra', 'Ac', 'Th', 'Pa', 'U'
]

elements = dict()
element_edges = ['ka1', 'ka2', 'kb1', 'la1', 'la2', 'lb1', 'lb2', 'lg1', 'ma1']
element_transitions = ['k', 'l1', 'l2', 'l3', 'm1', 'm2', 'm3', 'm4', 'm5']
for i in interestinglist:
    elements[i] = xrfC.XrfElement(i)


def setroi(roinum, element, edge=None, det=None):
    '''
    Set energy ROIs for Vortex SDD.  Selects elemental edge given current energy if not provided.
    roinum      [1,2,3]     ROI number
    element     <symbol>    element symbol for target energy
    edge                    optional:  ['ka1','ka2','kb1','la1','la2','lb1','lb2','lg1','ma1']
    '''
    cur_element = xrfC.XrfElement(element)
    if edge == None:
        for e in [
                'ka1', 'ka2', 'kb1', 'la1', 'la2', 'lb1', 'lb2', 'lg1', 'ma1'
        ]:
            if cur_element.emission_line[e] < energy.energy.get()[1]: