def METHOD_NAME(show_plots):
    NUMBER_OF_RUNS = 2
    VERBOSE = True
    PROCESSES = 1
    RUN = True
    POST = False
    dirName = os.path.abspath(os.path.dirname(__file__)) + "/MC_data"
    if RUN:
        myExecutionFunction = scenario.METHOD_NAME
        myCreationFunction = scenario.scenario_OpNav
        monteCarlo = Controller()
        monteCarlo.setShouldDisperseSeeds(True)
        monteCarlo.setExecutionFunction(myExecutionFunction)
        monteCarlo.setSimulationFunction(myCreationFunction)
        monteCarlo.setExecutionCount(NUMBER_OF_RUNS)
        monteCarlo.setThreadCount(PROCESSES)
        monteCarlo.setVerbose(True)
        monteCarlo.setArchiveDir(dirName)
        # Add some dispersions
        dispDict = {}
        dispDict["mu"] = 4.2828371901284001E+13
        dispDict["a"] = ["normal", 22000*1E3, 3000*1E3]
        dispDict["e"] = ["uniform", 0.2, 0.4]
        dispDict["i"] = ["uniform", -np.deg2rad(20), np.deg2rad(20)]
        dispDict["Omega"] = None
        dispDict["omega"] = None
        dispDict["f"] = ["uniform", 0., np.deg2rad(180)]
        disp1Name = 'get_DynModel().scObject.hub.r_CN_NInit'
        disp2Name = 'get_DynModel().scObject.hub.v_CN_NInit'
        dispFOV = 'get_DynModel().cameraMod.fieldOfView'
        dispNoise = 'get_FswModel().relativeOD.noiseSF'
        monteCarlo.addDispersion(UniformDispersion(dispNoise, [1, 10]))
        monteCarlo.addDispersion(UniformDispersion(dispFOV, [np.deg2rad(40) - np.deg2rad(0.001), np.deg2rad(40) + np.deg2rad(0.001)]))
        monteCarlo.addDispersion(OrbitalElementDispersion(disp1Name,disp2Name, dispDict))
        # Add retention policy
        retentionPolicy = RetentionPolicy()
        retentionPolicy.addMessageLog(retainedMessageNameSc, ["r_BN_N", "v_BN_N", "sigma_BN"])
        retentionPolicy.addMessageLog(retainedMessageNameOpNav, ["r_BN_N", "covar_N", "r_BN_C", "covar_C", "valid"])
        retentionPolicy.addMessageLog(retainedMessageNameFilt, ["state", "covar"])
        retentionPolicy.setDataCallback(displayPlots)
        monteCarlo.addRetentionPolicy(retentionPolicy)
        failures = monteCarlo.executeSimulations()
        assert len(failures) == 0, "No runs should fail"
        if show_plots:
            monteCarlo.executeCallbacks()
            plt.show()
    return