def dotheplot(r, instruments ,damp=1, marginalized=True, nn=30, rrange=[0.,0.3], dustrange = [0.,25.], saveplot=False): dldust_80_353 = 13.4*damp alphadust = -2.42 betadust = 1.59 Tdust = 19.6 ThedustParams = np.array([dldust_80_353, alphadust, betadust, Tdust]) clf() paramsdefault = np.array([r, dldust_80_353, alphadust, betadust, Tdust]) xlabel('r') ylabel('Likelihood') likelihoods = [] maxlike = [] for instinfo in instruments: ### Calculate input spectra bla = db.get_multiband_covariance(instinfo, r, doplot=False, dustParams=ThedustParams, verbose=True, camblib=camblib) spec = bla[3] if marginalized: ### Marginalizing over Dust Amplitude title('Marginalized over Dust (Amplitude = {0:1.0f} ) ; r = {1:4.2f}'.format(damp,r)) # dust amplitude nvalsmarg = nn valsmarg = linspace(dustrange[0],dustrange[1], nvalsmarg) indexmarg = 1 # r nvals = nn valsamp = linspace(rrange[0], rrange[1], nvals) index = 0 thelike = db.like_1d_marginalize(spec, index, valsamp, indexmarg, valsmarg, instinfo, camblib=camblib, paramsdefault=paramsdefault) else: ### r nvals = nn valsamp = linspace(rrange[0], rrange[1], nvals) index = 0 #### Likelihoods 1D title('Fixed Dust = {0:1.0f} ; r = {1:4.2f}'.format(damp, r)) thelike = db.like_1d(spec, index, valsamp, instinfo, camblib=camblib, paramsdefault=paramsdefault) maxlike.append(np.max(thelike[0])) likelihoods.append(thelike) ylim(0,np.max(np.array(maxlike))*1.2) draw() if saveplot: if marginalized: savefig('db_marginalized_dust={0:1.0f}_r={1:4.2f}.png'.format(damp,r)) else: savefig('db_fixed_dust={0:1.0f}_r={1:4.2f}.png'.format(damp,r)) return likelihoods
qubic_epsilon = 1. ### these numbers give roughly the correct error bars for Planck 353GHz planck_duration = 1*365.*24.*3600. planck_epsilon = 0.3 ### QUBIC 150 and 220 GHz data = prepare_inst(thervalue, inst, ellbins, [150, 220], ['bi', 'bi'], [net150_concordia, net220_concordia], ['150, 220'], 'm', 0.01, [qubic_duration, qubic_duration], [qubic_epsilon, qubic_epsilon], camblib=camblib, dustParams=defaultpars) index = 0 valsr = np.linspace(0.,0.07,30) pars_with_r = np.array([thervalue, 13.4 * 0.45, -2.42, 1.59, 19.6]) clf() thelike = db.like_1d(data['specin'], index, valsr, data['inst_info'], camblib=camblib, paramsdefault=pars_with_r, CL=0.95) indexmarg = 3 valsmarg = np.linspace(1.5, 1.8, 30) thelike = db.like_1d_marginalize(data['specin'], index, valsr, indexmarg, valsmarg, data['inst_info'], camblib=camblib, paramsdefault=pars_with_r, CL=0.95)