Including DM -> DM processes

Asked by Nishita

Hello,

We have a model where DM X -> DM Y processes cannot be ignored in the Boltzmann equation. Looking at relic_coupled.f, I see that there is an option of including them, but I can't figure out how to do this from the command line. Could you please let me know how to include these diagrams?

Thanks,
Nishita.

Question information

Language:
English Edit question
Status:
Answered
For:
MadDM Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#1

Hi Nishita,

Looks like that part of the code was commented by Mihailo. (it was suppose to be automatic)
I do not know why he did it.
I send an email to the others author in order to check if they know a reason for that.

Will go back to you on this.

Olivier

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) said :
#2

Hi Nishita,

here is the answer that I get:

I honestly don't remember why they are commented out.
The part for multi-component DM was always incomplete. Some terms are missing in the Boltzmann equation.

So you need to be carefull if you want to use this for the moment.
We have put this on our todo list to double check as soon as v3 will be released.

But here is a way to include this:
=== modified file 'maddm_interface.py'
--- maddm_interface.py 2018-03-29 21:48:47 +0000
+++ maddm_interface.py 2018-03-29 22:32:14 +0000
@@ -841,21 +841,20 @@

         # Generate all the DM particles scattering off of the thermal background and
         # change to a different DM species (again, no pure scatterings)
-
- # for i in xrange(nb_dm):
- # for j in xrange(nb_dm):
- # if i == j:
- # continue
- # if excluded_particles:
- # proc = "DM_particle_%s sm_particles > DM_particle_%s sm_particles / %s %s @DMSM"\
- # % (i,j,' '.join(excluded_particles), coupling)
- # else:
- # proc = "DM_particle_%s sm_particles > DM_particle_%s sm_particles %s @DMSM"\
- # % (i,j, coupling)
- # try:
- # self.do_add('process %s' % proc)
- # except (self.InvalidCmd,diagram_generation.NoDiagramException) :
- # continue
+ for i in xrange(nb_dm):
+ for j in xrange(nb_dm):
+ if i == j:
+ continue
+ if excluded_particles:
+ proc = "DM_particle_%s sm_particles > DM_particle_%s sm_particles / %s %s @DMSM"\
+ % (i,j,' '.join(excluded_particles), coupling)
+ else:
+ proc = "DM_particle_%s sm_particles > DM_particle_%s sm_particles %s @DMSM"\
+ % (i,j, coupling)
+ try:
+ self.do_add('process %s' % proc)
+ except (self.InvalidCmd,diagram_generation.NoDiagramException) :
+ continue

     def generate_direct(self, excluded_particles=[]):
         """User level function which performs direct detection functions

Cheers,

Olivier

Can you help with this problem?

Provide an answer of your own, or ask Nishita for more information if necessary.

To post a message you must log in.