3
from darkmatter import *
4
from numpy import loadtxt
6
#Create the relic density object.
8
#Initialize it from the rsxSM model in the MadGraph model folder,
9
#and store all the results in the Projects/rsxSM subfolder.
10
dm.init_from_model('DMsimp_UFO', 'DMsimp_loopinduced_aa')
13
# Determine the dark matter candidate...
14
dm.FindDMCandidate(prompts=False, dm_candidate='xd')
16
#...and all the coannihilation partners with the mass splitting
17
# defined by |mX0 - mX1| / mX0 < coann_eps.
18
#dm.FindCoannParticles(prompts = False, coann_eps = 0.1)
20
#Get the project name with the set of DM particles and see
21
#if it already exists.
24
dm.GenerateDiagramsIDLoopIndiced(finalstate='g g', excluded_particles='')
26
#Generate all 2-2 diagrams DM annihilation diagrams for relic density.
27
#dm.GenerateDiagramsRelicDensity()
29
#Generate the diagrams for direct detection.
30
#print "Generating direct detection diagrams..."
31
#dm.GenerateDiagramsDirDetect()
33
#Switch to turn on directional detection and recoil rate calculations
34
#dm._do_directional_detection = True
36
# print "Relic density? -"+str(dm._do_relic_density)
37
# print "Direct detection? - "+str(dm._do_direct_detection)
38
# print "Recoil & directional rates? -"+str(dm._do_directional_detection)
40
# #Print some dark matter properties in the mean time.
41
# print "------ Testing the darkmatter object properties ------"
42
# print "Calc. Omega: "+str(dm._do_relic_density)
43
# print "Calc. DD: "+str(dm._do_direct_detection)
44
# print "DM name: "+dm._dm_particles[0].get('name')
45
# print "DM spin: "+str(dm._dm_particles[0].get('spin'))
46
# print "DM mass var: "+dm._dm_particles[0].get('mass')
47
# print "Mass: "+ str(dm.GetMass(dm._dm_particles[0].get('pdg_code')))+"\n"
48
# print "Project: "+dm._projectname
50
# #Output the FORTRAN version of the matrix elements
51
# #and compile the numerical code.
52
# dm.CreateNumericalSession()
54
# #Calculate relic density, direct detection ...
55
# [omegah2, x_freezeout, wimp_mass, sigmav_xf, sigmaN_SI_proton, sigmaN_SI_neutron, \
56
# sigmaN_SD_proton, sigmaN_SD_neutron, Nevents, sm_switch]\
59
# #See if the model point is exluded by relic density or LUX
60
# LUX_data='./ExpData/LUX_data.dat'
61
# LUX_x, LUX_y = loadtxt(LUX_data, unpack=True, usecols=[0,1])
62
# excluded = dm.is_excluded(omega_min = 0., omega_max = 0.1, si_limit_x=LUX_x, si_limit_y=LUX_y)
65
# print "\n\n RESULTS: \n\n"
66
# print "NOTE: If a value -1 appears, it means MadDM did not calculate the quantity."
67
# print "----------------------------------------------"
68
# print "Relic Density: %.2e" % omegah2
69
# print "x_f: %.2f" % x_freezeout
70
# print "sigmav(xf): %.2e GeV^-2 = %.2e pb" % (sigmav_xf, sigmav_xf*GeV2pb)
71
# print "----------------------------------------------"
72
# print "Nucleon cross sections: \n"
73
# print "sigma_SI(proton): %.2e GeV^-2 = %.2e pb" % (sigmaN_SI_proton, sigmaN_SI_proton*GeV2pb)
74
# print "sigma_SI(neutron): %.2e GeV^-2 = %.2e pb"% (sigmaN_SI_neutron, sigmaN_SI_neutron*GeV2pb)
75
# print "sigma_SD(proton): %.2e GeV^-2 = %.2e pb" %(sigmaN_SD_proton, sigmaN_SD_proton*GeV2pb)
76
# print "sigma_SD(neutron): %.2e GeV^-2 = %.2e pb"% (sigmaN_SD_neutron, sigmaN_SD_neutron*GeV2pb)
77
# print "----------------------------------------------"
79
# print " The parameter point is "+bcolors.FAIL+"Excluded."+bcolors.ENDC
81
# print " The parameter point is "+bcolors.OKGREEN+"Allowed."+bcolors.ENDC
82
# print"-----------------------------------------------"
83
# print "All results are written in the output directory of the project!"