Example #1
0
def _write_beta_beat_from_amp_for_plane(file_beta_beat, plane, bpms_list,
                                        measured_beta_amp, model_propagation,
                                        model_cor, model_back_propagation,
                                        model_back_cor, initial_values):

    for bpm in bpms_list:
        bpm_s = bpm[0]
        bpm_name = bpm[1]

        delta_phase_prop = (getattr(
            model_propagation,
            "MU" + plane)[model_propagation.indx[bpm_name]]) % 1
        delta_phase_back = (getattr(
            model_back_propagation,
            "MU" + plane)[model_back_propagation.indx[bpm_name]]) % 1

        beta_propagation = _get_from_twiss(model_propagation, bpm_name, "BET",
                                           plane)
        beta_back_propagation = _get_from_twiss(model_back_propagation,
                                                bpm_name, "BET", plane)

        # Beta from amplitude beating (front)
        beta_amp = _get_from_twiss(measured_beta_amp, bpm_name, "BET", plane)
        beta_beat_amp = (beta_amp - beta_propagation) / beta_propagation
        std_beta_beat_amp = _get_from_twiss(measured_beta_amp, bpm_name, "BET",
                                            plane, "STD")
        prop_err_beta_amp = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_start, initial_values.err_alfa_start,
            delta_phase_prop, beta_propagation, initial_values.beta_start,
            initial_values.alfa_start)
        err_beta_beat_amp = sqrt(std_beta_beat_amp**2 +
                                 prop_err_beta_amp**2) / beta_propagation

        # Beta from amplitude beating (back)
        beta_amp_back = _get_from_twiss(measured_beta_amp, bpm_name, "BET",
                                        plane)
        beta_beat_amp_back = (beta_amp_back -
                              beta_back_propagation) / beta_back_propagation
        std_beta_beat_amp_back = _get_from_twiss(measured_beta_amp, bpm_name,
                                                 "BET", plane, "STD")
        prop_err_beta_amp_back = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_end, initial_values.err_alfa_end,
            delta_phase_back, beta_back_propagation, initial_values.beta_end,
            initial_values.alfa_end)
        err_beta_beat_amp_back = sqrt(
            std_beta_beat_amp_back**2 +
            prop_err_beta_amp_back**2) / beta_back_propagation

        model_s = measured_beta_amp.S[measured_beta_amp.indx[bpm_name]]
        beta_model = _get_from_twiss(measured_beta_amp, bpm_name, "BET", plane,
                                     "MDL")
        file_beta_beat.add_table_row([
            bpm_name, bpm_s, beta_beat_amp, err_beta_beat_amp,
            beta_beat_amp_back, err_beta_beat_amp_back, beta_model, model_s
        ])
    file_beta_beat.write_to_file()
Example #2
0
def _write_beta_beat_from_amp_for_plane(file_beta_beat, plane, bpms_list,
                                        measured_beta_amp, model_propagation, model_cor,
                                        model_back_propagation, model_back_cor,
                                        initial_values):

    for bpm in bpms_list:
        bpm_s = bpm[0]
        bpm_name = bpm[1]

        delta_phase_prop = (getattr(model_propagation, "MU" + plane)[model_propagation.indx[bpm_name]]) % 1
        delta_phase_back = (getattr(model_back_propagation, "MU" + plane)[model_back_propagation.indx[bpm_name]]) % 1

        beta_propagation = _get_from_twiss(model_propagation, bpm_name, "BET", plane)
        beta_back_propagation = _get_from_twiss(model_back_propagation, bpm_name, "BET", plane)

        # Beta from amplitude beating (front)
        beta_amp = _get_from_twiss(measured_beta_amp, bpm_name, "BET", plane)
        beta_beat_amp = (beta_amp - beta_propagation) / beta_propagation
        std_beta_beat_amp = _get_from_twiss(measured_beta_amp, bpm_name, "BET", plane, "STD")
        prop_err_beta_amp = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_start,
            initial_values.err_alfa_start,
            delta_phase_prop,
            beta_propagation,
            initial_values.beta_start,
            initial_values.alfa_start
        )
        err_beta_beat_amp = sqrt(std_beta_beat_amp ** 2 +
                                 prop_err_beta_amp ** 2) / beta_propagation

        # Beta from amplitude beating (back)
        beta_amp_back = _get_from_twiss(measured_beta_amp, bpm_name, "BET", plane)
        beta_beat_amp_back = (beta_amp_back - beta_back_propagation) / beta_back_propagation
        std_beta_beat_amp_back = _get_from_twiss(measured_beta_amp, bpm_name, "BET", plane, "STD")
        prop_err_beta_amp_back = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_end,
            initial_values.err_alfa_end,
            delta_phase_back,
            beta_back_propagation,
            initial_values.beta_end,
            initial_values.alfa_end
        )
        err_beta_beat_amp_back = sqrt(std_beta_beat_amp_back ** 2 +
                                      prop_err_beta_amp_back ** 2) / beta_back_propagation

        model_s = measured_beta_amp.S[measured_beta_amp.indx[bpm_name]]
        beta_model = _get_from_twiss(measured_beta_amp, bpm_name, "BET", plane, "MDL")
        file_beta_beat.add_table_row([
            bpm_name, bpm_s,
            beta_beat_amp, err_beta_beat_amp,
            beta_beat_amp_back, err_beta_beat_amp_back,
            beta_model, model_s
        ])
    file_beta_beat.write_to_file()
Example #3
0
def _write_beta_beat_from_phase_for_plane(file_beta_beat, plane, bpms_list,
                                          measured_beta_phase,
                                          model_propagation, model_cor,
                                          model_back_propagation,
                                          model_back_cor, initial_values):

    for bpm in bpms_list:
        bpm_s = bpm[0]
        bpm_name = bpm[1]

        delta_phase_prop = (getattr(
            model_propagation,
            "MU" + plane)[model_propagation.indx[bpm_name]]) % 1
        delta_phase_back = (getattr(
            model_back_propagation,
            "MU" + plane)[model_back_propagation.indx[bpm_name]]) % 1

        beta_propagation = _get_from_twiss(model_propagation, bpm_name, "BET",
                                           plane)
        beta_back_propagation = _get_from_twiss(model_back_propagation,
                                                bpm_name, "BET", plane)

        # Beta from phase beating (front)
        beta_phase = _get_from_twiss(measured_beta_phase, bpm_name, "BET",
                                     plane)
        beta_beat_phase = (beta_phase - beta_propagation) / beta_propagation
        syst_err_beta_phase = _get_from_twiss(measured_beta_phase, bpm_name,
                                              "ERRBET", plane)
        stdbet_exist = True
        try:
            rand_err_beta_phase = _get_from_twiss(measured_beta_phase,
                                                  bpm_name, "STDBET", plane)
        except AttributeError:
            stdbet_exist = False

        prop_err_beta_phase = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_start, initial_values.err_alfa_start,
            delta_phase_prop, beta_phase, initial_values.beta_start,
            initial_values.alfa_start)
        if stdbet_exist:
            err_beta_beat_phase = sqrt(
                syst_err_beta_phase**2 + rand_err_beta_phase**2 +
                prop_err_beta_phase**2) / beta_propagation
        else:
            err_beta_beat_phase = sqrt(
                syst_err_beta_phase**2 +
                prop_err_beta_phase**2) / beta_propagation
        # Beta from corrected model beating (front)
        beta_cor = _get_from_twiss(model_cor, bpm_name, "BET", plane)
        beta_beat_cor = (beta_cor - beta_propagation) / beta_propagation

        # Beta from phase beating (back)
        beta_beat_phase_back = (beta_phase -
                                beta_back_propagation) / beta_back_propagation
        syst_err_beta_phase_back = _get_from_twiss(measured_beta_phase,
                                                   bpm_name, "ERRBET", plane)
        stdbet_exist = True
        try:
            rand_err_beta_phase_back = _get_from_twiss(measured_beta_phase,
                                                       bpm_name, "STDBET",
                                                       plane)
        except AttributeError:
            stdbet_exist = False
        prop_err_beta_phase_back = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_end, initial_values.err_alfa_end,
            delta_phase_back, beta_phase, initial_values.beta_end,
            initial_values.alfa_end)
        if stdbet_exist:
            err_beta_beat_phase_back = sqrt(
                syst_err_beta_phase_back**2 + rand_err_beta_phase_back**2 +
                prop_err_beta_phase_back) / beta_back_propagation
        else:
            err_beta_beat_phase_back = sqrt(
                syst_err_beta_phase_back**2 +
                prop_err_beta_phase_back) / beta_back_propagation

        # Beta from corrected model beating (back)
        beta_back_cor = _get_from_twiss(model_back_cor, bpm_name, "BET", plane)
        beta_beat_back_cor = (beta_back_cor -
                              beta_back_propagation) / beta_back_propagation

        model_s = measured_beta_phase.S[measured_beta_phase.indx[bpm_name]]
        beta_model = _get_from_twiss(measured_beta_phase, bpm_name, "BET",
                                     plane, "MDL")
        file_beta_beat.add_table_row([
            bpm_name, bpm_s, beta_beat_phase, err_beta_beat_phase,
            beta_beat_cor, beta_beat_phase_back, err_beta_beat_phase_back,
            beta_beat_back_cor, beta_model, model_s
        ])
    file_beta_beat.write_to_file()
Example #4
0
def _write_beta_beat_from_phase_for_plane(file_beta_beat, plane, bpms_list,
                                          measured_beta_phase, model_propagation, model_cor,
                                          model_back_propagation, model_back_cor,
                                          initial_values):

    for bpm in bpms_list:
        bpm_s = bpm[0]
        bpm_name = bpm[1]

        delta_phase_prop = (getattr(model_propagation, "MU" + plane)[model_propagation.indx[bpm_name]]) % 1
        delta_phase_back = (getattr(model_back_propagation, "MU" + plane)[model_back_propagation.indx[bpm_name]]) % 1

        beta_propagation = _get_from_twiss(model_propagation, bpm_name, "BET", plane)
        beta_back_propagation = _get_from_twiss(model_back_propagation, bpm_name, "BET", plane)

        # Beta from phase beating (front)
        beta_phase = _get_from_twiss(measured_beta_phase, bpm_name, "BET", plane)
        beta_beat_phase = (beta_phase - beta_propagation) / beta_propagation
        syst_err_beta_phase = _get_from_twiss(measured_beta_phase, bpm_name, "ERRBET", plane)
        stdbet_exist = True
        try:
            rand_err_beta_phase = _get_from_twiss(measured_beta_phase, bpm_name, "STDBET", plane)
        except AttributeError:
            stdbet_exist = False

        prop_err_beta_phase = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_start,
            initial_values.err_alfa_start,
            delta_phase_prop,
            beta_phase,
            initial_values.beta_start,
            initial_values.alfa_start
        )
        if stdbet_exist:
            err_beta_beat_phase = sqrt(syst_err_beta_phase ** 2 +
                                       rand_err_beta_phase ** 2 +
                                       prop_err_beta_phase ** 2) / beta_propagation
        else:
            err_beta_beat_phase = sqrt(syst_err_beta_phase ** 2 +
                                       prop_err_beta_phase ** 2) / beta_propagation
        # Beta from corrected model beating (front)
        beta_cor = _get_from_twiss(model_cor, bpm_name, "BET", plane)
        beta_beat_cor = (beta_cor - beta_propagation) / beta_propagation

        # Beta from phase beating (back)
        beta_beat_phase_back = (beta_phase - beta_back_propagation) / beta_back_propagation
        syst_err_beta_phase_back = _get_from_twiss(measured_beta_phase, bpm_name, "ERRBET", plane)
        stdbet_exist = True
        try:
            rand_err_beta_phase_back = _get_from_twiss(measured_beta_phase, bpm_name, "STDBET", plane)
        except AttributeError:
            stdbet_exist = False
        prop_err_beta_phase_back = sbs_beta_writer._propagate_error_beta(
            initial_values.err_beta_end,
            initial_values.err_alfa_end,
            delta_phase_back,
            beta_phase,
            initial_values.beta_end,
            initial_values.alfa_end
        )
        if stdbet_exist:
            err_beta_beat_phase_back = sqrt(syst_err_beta_phase_back ** 2 +
                                            rand_err_beta_phase_back ** 2 +
                                            prop_err_beta_phase_back) / beta_back_propagation
        else:
            err_beta_beat_phase_back = sqrt(syst_err_beta_phase_back ** 2 +
                                            prop_err_beta_phase_back) / beta_back_propagation

        # Beta from corrected model beating (back)
        beta_back_cor = _get_from_twiss(model_back_cor, bpm_name, "BET", plane)
        beta_beat_back_cor = (beta_back_cor - beta_back_propagation) / beta_back_propagation

        model_s = measured_beta_phase.S[measured_beta_phase.indx[bpm_name]]
        beta_model = _get_from_twiss(measured_beta_phase, bpm_name, "BET", plane, "MDL")
        file_beta_beat.add_table_row([
            bpm_name, bpm_s,
            beta_beat_phase, err_beta_beat_phase,
            beta_beat_cor,
            beta_beat_phase_back, err_beta_beat_phase_back,
            beta_beat_back_cor,
            beta_model, model_s
        ])
    file_beta_beat.write_to_file()