print " [%3d/%d] ns %.2f, discoveries %3d/%d = %.2f" % (step+1, nstep+1,ns, ndisc, nsample, P) if (P > 0.5 and ns < ns_upper): ns_upper = ns if (P < 0.5 and ns > ns_lower): ns_lower = ns # END for (step) # swap order at this point, we're close enough if (ns_lower > ns_upper): tmp = ns_upper ns_upper = ns_lower ns_lower = tmp print "Discovery Threshold Bounds: %.2f < ns < %.2f" % (ns_lower, ns_upper) ns_avg = (ns_lower + ns_upper)/2. norm = inj.mu2flux( ns_avg ) print "\n---" print "Source Declination: %.2f deg" % args.dec print "Flux Normalization: A = %.2e TeV^-1 cm^-2 s^-1 @ %.2f TeV" % (norm*TeV, args.E0/TeV) print "Spectral Assumption: dN/dE = A (E / %.2f TeV)^-%.2f" % (args.E0/TeV, args.index) if args.useEXPbackground: print "Background: EXP" else: print "Background: MC" print "---\n" ###################################### # DISCOVERY POTENTIAL REFINED SEARCH # ###################################### ###############################################################################
results_disc = sensitivity_flux(ts_disc, 0.5, llh, inj, fguess=0, factor = 2, npar_fit = 2, par_fit = None, results = results_disc, nstep = args.nstep, ni_bounds = args.ni_bounds, ts_parameters = ts_parameters, # see BACKGROUND ONLY TS DISTRIBUTION nsample = args.nsample, name = "split_sensitivity", path = dir_name + "discovery_potential_%s_" % tag) outfile = sig_dir + 'disc.array' cache.save(results_disc,outfile) mu2flux_str = ("| mu2flux for 1 event @ %.1f TeV is %.2e |" % (inj.E0/TeV, inj.mu2flux(1)*TeV)) sensitivity_str = ("| Sensitivity flux @ %.1f TeV is %.2e +/- %.2e TeV^-1cm^-2s^-1 |" % (inj.E0/TeV, results_sens[1]*TeV, results_sens[2]*TeV)) discovery_str = ("| Discovery flux @ %.1f TeV is %.2e +/- %.2e TeV^-1cm^-2s^-1 |" % (inj.E0/TeV, results_disc[1]*TeV, results_disc[2]*TeV)) print ("\n*" + "-" * (len(sensitivity_str)-2) + "*") print (mu2flux_str) print (sensitivity_str) print (discovery_str) print ("*" + "-" * (len(sensitivity_str)-2) + "*") ######################## # ESTIMATE SENSITIVITY # ########################