def analyse_topcMCTime(params): """Analysis the topological charge in monte carlo time slices.""" obs_data = params["data"] MC_interval, interval_size = get_intervals( obs_data.NCfgs, numsplits=params["MC_time_splits"], intervals=params["MCInt"]) bs_index_lists = np.random.randint(interval_size, size=(params["N_bs"], interval_size)) for MC_int in MC_interval: analyse_topcMC = TopcMCIntervalAnalyser(obs_data("topc"), mc_interval=MC_int, dryrun=params["dryrun"], parallel=params["parallel"], numprocs=params["numprocs"], verbose=params["verbose"]) analyse_default(analyse_topcMC, params["N_bs"], bs_index_lists=bs_index_lists)
def analyse_qtq0_effective_mass_mc(params): """ Pre-analyser for the effective mass qtq0 with q0 at a fixed flow time in Monte Carlo intervals. """ MC_interval, interval_size = get_intervals( params["data"].NCfgs, numsplits=params["MC_time_splits"], intervals=params["MCInt"]) bs_index_lists = np.random.randint(interval_size, size=(params["N_bs"], interval_size)) obs_data = params["data"] if not obs_data.has_observable("topct"): print("Missing topct data. Returning.") return for MC_int in MC_interval: analyse_eff_mass_MC = QtQ0EffectiveMassMCAnalyser( obs_data("topct"), mc_interval=MC_int, plot_color=params["color"], dryrun=params["dryrun"], parallel=params["parallel"], numprocs=params["numprocs"], verbose=params["verbose"]) for q0_flow_time in params["q0_flow_times"]: if q0_flow_time != 0.6: # Only zeroth flow continue analyse_eff_mass_MC.set_time(q0_flow_time) analyse_default(analyse_eff_mass_MC, params["N_bs"], bs_index_lists=bs_index_lists, only_generate_data=params["only_generate_data"])
def analyse_topcrMC(params): """ Analysis of the ratio with R=q4c/q2 of the topological charge. Performs an analysis on Q^2 and Q^4 with the same bootstrap samples, such that an post analysis can be performed on these explisitly. In a MC interval """ MC_interval, interval_size = get_intervals( params["data"].NCfgs, numsplits=params["MC_time_splits"], intervals=params["MCInt"]) N_bs = params["N_bs"] bs_index_lists = np.random.randint(interval_size, size=(N_bs, interval_size)) for MC_int in MC_interval: topc2_analysis = Topc2MCIntervalAnalyser(params["data"]("topc"), mc_interval=MC_int, dryrun=params["dryrun"], parallel=params["parallel"], numprocs=params["numprocs"], verbose=params["verbose"]) topc4_analysis = Topc4MCIntervalAnalyser(params["data"]("topc"), mc_interval=MC_int, dryrun=params["dryrun"], parallel=params["parallel"], numprocs=params["numprocs"], verbose=params["verbose"]) N_cfgs_topc2 = topc2_analysis.N_configurations N_cfgs_topc4 = topc4_analysis.N_configurations assert N_cfgs_topc2 == N_cfgs_topc4, "NCfgs differ in topc2 and topc4." analyse_default(topc2_analysis, N_bs, NBins=150, bs_index_lists=bs_index_lists) analyse_default(topc4_analysis, N_bs, bs_index_lists=bs_index_lists)