Manual

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 347

DownloadManual
Open PDF In BrowserView PDF
1

DarkSUSY trunk

Manual and long description of routines
Created automatically by headers2tex.pl
Wed Jun 28 16:00:58 2006
http://www.physto.se/~edsjo/darksusy

Paolo Gondoloa∗ , Joakim Edsjöb† , Lars Bergströmb‡ ,
Piero Ullioc§ , Mia Schelked¶ and Edward A. Baltzek
a

b

Utah
Department of Physics, Stockholm University, SCFAB, SE-106 91 Stockholm, Sweden
c

SISSA, via Beirut 4, 34014 Trieste, Italy
d
Torino
e

∗ E-mail
† E-mail
‡ E-mail
§ E-mail
¶ E-mail
k E-mail

address:
address:
address:
address:
address:
address:

gondolo@mppmu.mpg.de
edsjo@physto.se
lbe@physto.se
ullio@he.sissa.it
schelke@...
eabaltz@physics.columbia.edu

SLAC

2

Abstract
DarkSUSY is a program package for supersymmetric dark matter calculations. This manual describes the theretical background as well as details about the actual routines. Everything is not
covered, but it should hopefully prove useful if you need more information than in our published
articles.

Contents
1 Introduction

19

2 General remarks on notation

21

3 ac: Accelerator bounds
3.1 Accelerator bounds . . . . . . .
3.2 Routine headers – fortran files .
dsacbnd.f . . . . . . . . . . . .
dsacbnd1.f . . . . . . . . . . . .
dsacbnd2.f . . . . . . . . . . . .
dsacbnd3.f . . . . . . . . . . . .
dsacbnd4.f . . . . . . . . . . . .
dsacbnd5.f . . . . . . . . . . . .
dsacbnd6.f . . . . . . . . . . . .
dsacset.f . . . . . . . . . . . . .
dsbsgamma.f . . . . . . . . . .
dsbsgf1.f . . . . . . . . . . . . .
dsbsgf2.f . . . . . . . . . . . . .
dsbsgf3.f . . . . . . . . . . . . .
dsbsgf4.f . . . . . . . . . . . . .
dsgm2muon.f . . . . . . . . . .
dswexcl.f . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

23
23
23
23
24
24
25
25
26
27
28
28
28
28
28
28
29
29

4 an: Annihilation cross sections (general, χ0 and χ± )
4.1 Annihilation cross sections – theory . . . . . . . . . . . . . . .
4.1.1 Annihilation cross sections . . . . . . . . . . . . . . . . .
4.1.2 Coannihilation diagrams . . . . . . . . . . . . . . . . . .
4.1.3 Neutralino and chargino annihilation . . . . . . . . . . .
4.1.4 Squark-squark annihilation . . . . . . . . . . . . . . . .
4.1.5 Squark-neutralino annihilation . . . . . . . . . . . . . .
4.1.6 Squark-chargino annihilation . . . . . . . . . . . . . . .
4.1.7 Degrees of freedom . . . . . . . . . . . . . . . . . . . . .
4.2 Annihilation routines - general remarks . . . . . . . . . . . . .
4.2.1 General routines . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Neutralino and chargino (co)annihilation cross sections .
4.3 Routine headers – fortran files . . . . . . . . . . . . . . . . . . .
dsanalbe.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsanclearaa.f . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsandwdcos.f . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsandwdcoscc.f . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsandwdcoscn.f . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

31
31
31
31
32
33
37
37
38
38
39
39
39
39
39
39
40
41

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

3

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

4

CONTENTS
dsandwdcosd.f
dsandwdcosnn.f
dsandwdcoss.f .
dsandwdcosy.f .
dsankinvar.f . .
dsanset.f . . . .
dsansumaa.f . .
dsantucc.f . . .
dsantucn.f . . .
dsantunn.f . . .
dsantures.f . . .
dsanwriteaa.f .
dsanwx.f . . . .
dsanwxint.f . .
dssigmav.f . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

5 an1l: Annihilation cross sections (1-loop)
5.1 Annihilation cross sections at 1-loop – general
5.2 Routine headers – fortran files . . . . . . . . .
dsanggim.f . . . . . . . . . . . . . . . . . . . .
dsanggimpar.f . . . . . . . . . . . . . . . . . .
dsanggre.f . . . . . . . . . . . . . . . . . . . .
dsanggrepar.f . . . . . . . . . . . . . . . . . .
dsanglglim.f . . . . . . . . . . . . . . . . . . .
dsanglglre.f . . . . . . . . . . . . . . . . . . .
dsanzg.f . . . . . . . . . . . . . . . . . . . . .
dsanzgpar.f . . . . . . . . . . . . . . . . . . .
dsdilog.f . . . . . . . . . . . . . . . . . . . . .
dsdilogp.f . . . . . . . . . . . . . . . . . . . .
dsfl1c1.f . . . . . . . . . . . . . . . . . . . . .
dsfl1c2.f . . . . . . . . . . . . . . . . . . . . .
dsfl2c1.f . . . . . . . . . . . . . . . . . . . . .
dsfl2c2.f . . . . . . . . . . . . . . . . . . . . .
dsfl3c1.f . . . . . . . . . . . . . . . . . . . . .
dsfl3c2.f . . . . . . . . . . . . . . . . . . . . .
dsfl4c1.f . . . . . . . . . . . . . . . . . . . . .
dsfl4c2.f . . . . . . . . . . . . . . . . . . . . .
dsi 12.f . . . . . . . . . . . . . . . . . . . . . .
dsi 13.f . . . . . . . . . . . . . . . . . . . . . .
dsi 14.f . . . . . . . . . . . . . . . . . . . . . .
dsi 22.f . . . . . . . . . . . . . . . . . . . . . .
dsi 23.f . . . . . . . . . . . . . . . . . . . . . .
dsi 24.f . . . . . . . . . . . . . . . . . . . . . .
dsi 32.f . . . . . . . . . . . . . . . . . . . . . .
dsi 33.f . . . . . . . . . . . . . . . . . . . . . .
dsi 34.f . . . . . . . . . . . . . . . . . . . . . .
dsi 41.f . . . . . . . . . . . . . . . . . . . . . .
dsi 42.f . . . . . . . . . . . . . . . . . . . . . .
dsilp2.f . . . . . . . . . . . . . . . . . . . . . .
dsj 1.f . . . . . . . . . . . . . . . . . . . . . .
dsj 2.f . . . . . . . . . . . . . . . . . . . . . .
dsj 3.f . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

41
41
42
42
43
43
43
43
43
44
44
44
44
45
45

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

47
47
47
47
47
48
48
49
49
49
50
50
51
51
51
51
52
52
52
52
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
56

CONTENTS
dslp2.f . . .
dspi1.f . . .
dspiw2.f . .
dspiw2i.f . .
dspiw3.f . .
dspiw3i.f . .
dsrepfbox.f
dsrepgh.f .
dsrepw.f . .
dsslc1.f . . .
dsslc2.f . . .
dssubka.f .
dssubkb.f .
dssubkc.f .
dsti 214.f .
dsti 224.f .
dsti 23.f . .
dsti 33.f . .
dsti 5.f . . .

5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

56
57
57
57
57
58
58
58
58
59
59
59
59
60
60
60
60
61
61

6 anstu: t, u and s diagrams for f f -annihilation
6.1 Annihilation amplitudes for fermion-fermion annihilation .
6.2 Routine headers – fortran files . . . . . . . . . . . . . . . .
dsansffsff.f . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffsss.f . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffssv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffsvs.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffsvv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffvff.f . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffvss.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffvsv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffvvs.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsansffvvv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffss.f . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffssex.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffssin.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffsv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffsvin.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffvs.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffvsex.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffvv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffvvex.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsantfffvvin.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsantffsff.f . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffss.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffssin.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffsv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffsvin.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffvs.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffvv.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffvvex.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsanufffvvin.f . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

63
63
63
63
64
64
64
64
65
65
65
65
66
66
66
67
67
67
67
68
68
68
68
69
69
69
70
70
70
70
71
71

6

CONTENTS
dsanuffsff.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 as: Annihilation cross sections (with sfermions)
7.1 Annihilation cross sections with sfermions – general
7.2 Routine headers – fortran files . . . . . . . . . . . . .
dsaschicasea.f . . . . . . . . . . . . . . . . . . . . . .
dsaschicaseb.f . . . . . . . . . . . . . . . . . . . . . .
dsaschicasec.f . . . . . . . . . . . . . . . . . . . . . .
dsaschicased.f . . . . . . . . . . . . . . . . . . . . . .
dsaschizero.f . . . . . . . . . . . . . . . . . . . . . . .
dsascolset.f . . . . . . . . . . . . . . . . . . . . . . .
dsasdepro.f . . . . . . . . . . . . . . . . . . . . . . .
dsasdwdcossfchi.f . . . . . . . . . . . . . . . . . . . .
dsasdwdcossfsf.f . . . . . . . . . . . . . . . . . . . . .
dsasfer.f . . . . . . . . . . . . . . . . . . . . . . . . .
dsasfercode.f . . . . . . . . . . . . . . . . . . . . . .
dsasfercol.f . . . . . . . . . . . . . . . . . . . . . . .
dsasfere.f . . . . . . . . . . . . . . . . . . . . . . . .
dsasferecol.f . . . . . . . . . . . . . . . . . . . . . . .
dsasff.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsasffcol.f . . . . . . . . . . . . . . . . . . . . . . . .
dsasgbgb.f . . . . . . . . . . . . . . . . . . . . . . . .
dsasgbgb1exp.f . . . . . . . . . . . . . . . . . . . . .
dsasgbgb2exp.f . . . . . . . . . . . . . . . . . . . . .
dsasgbhb.f . . . . . . . . . . . . . . . . . . . . . . . .
dsashbhb.f . . . . . . . . . . . . . . . . . . . . . . . .
dsaskinset.f . . . . . . . . . . . . . . . . . . . . . . .
dsaskinset1.f . . . . . . . . . . . . . . . . . . . . . . .
dsaskinset2.f . . . . . . . . . . . . . . . . . . . . . . .
dsaskinset3.f . . . . . . . . . . . . . . . . . . . . . . .
dsasphghb.f . . . . . . . . . . . . . . . . . . . . . . .
dsasscscsSHffb.f . . . . . . . . . . . . . . . . . . . . .
dsasscscsSHffbcol.f . . . . . . . . . . . . . . . . . . .
dsasscscsSVffb.f . . . . . . . . . . . . . . . . . . . . .
dsasscscsSVffbcol.f . . . . . . . . . . . . . . . . . . .
dsasscscsTCffb.f . . . . . . . . . . . . . . . . . . . . .
dsasscscsTCffbcol.f . . . . . . . . . . . . . . . . . . .
dsasscscTCff.f . . . . . . . . . . . . . . . . . . . . . .
dsasscscTCffcol.f . . . . . . . . . . . . . . . . . . . .
dsasscscUCff.f . . . . . . . . . . . . . . . . . . . . . .
dsasscscUCffcol.f . . . . . . . . . . . . . . . . . . . .
dsassfercode.f . . . . . . . . . . . . . . . . . . . . . .
dsaswcomp.f . . . . . . . . . . . . . . . . . . . . . . .
8 bsg:
8.1
8.2
8.3

b → sγ
b → sγ – theory . . . . . . . . .
b → sγ – routines . . . . . . . .
Routine headers – fortran files .
dsbsgalpha3.f . . . . . . . . . .
dsbsgalpha3int.f . . . . . . . . .
dsbsgammafull.f . . . . . . . . .
dsbsgat0.f . . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

71

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

73
73
73
73
74
75
75
76
76
76
76
77
77
78
78
78
78
79
79
79
80
81
82
82
83
83
84
84
84
84
85
85
85
85
86
86
86
86
87
87
87

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

89
89
89
90
90
90
90
90

CONTENTS
dsbsgat1.f . . . . .
dsbsgbofe.f . . . .
dsbsgc41h2.f . . . .
dsbsgc41susy.f . . .
dsbsgc70h2.f . . . .
dsbsgc70susy.f . . .
dsbsgc71chisusy.f .
dsbsgc71h2.f . . . .
dsbsgc71phi1susy.f
dsbsgc71phi2susy.f
dsbsgc71wsusy.f . .
dsbsgc80h2.f . . . .
dsbsgc80susy.f . . .
dsbsgc81chisusy.f .
dsbsgc81h2.f . . . .
dsbsgc81phi1susy.f
dsbsgc81phi2susy.f
dsbsgc81wsusy.f . .
dsbsgckm.f . . . .
dsbsgd1td.f . . . .
dsbsgd2d.f . . . . .
dsbsgd2td.f . . . .
dsbsgd7chi1.f . . .
dsbsgd7chi2.f . . .
dsbsgd7h.f . . . . .
dsbsgd8chi1.f . . .
dsbsgd8chi2.f . . .
dsbsgd8h.f . . . . .
dsbsgeb.f . . . . .
dsbsgechi.f . . . . .
dsbsgeh.f . . . . .
dsbsget0.f . . . . .
dsbsgf71.f . . . . .
dsbsgf72.f . . . . .
dsbsgf73.f . . . . .
dsbsgf81.f . . . . .
dsbsgf82.f . . . . .
dsbsgf83.f . . . . .
dsbsgft0.f . . . . .
dsbsgft1.f . . . . .
dsbsgfxy.f . . . . .
dsbsgg.f . . . . . .
dsbsgg7chi2.f . . .
dsbsgg7chij1.f . . .
dsbsgg7h.f . . . . .
dsbsgg7w.f . . . . .
dsbsgg8chi2.f . . .
dsbsgg8chij1.f . . .
dsbsgg8h.f . . . . .
dsbsgg8w.f . . . . .
dsbsggxy.f . . . . .
dsbsgh1x.f . . . . .

7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

91
91
91
92
92
92
92
93
93
93
94
94
94
94
95
95
95
96
96
96
96
97
97
97
97
98
98
98
98
99
99
99
99
100
100
100
100
101
101
101
102
102
102
102
103
103
103
103
104
104
104
105

8

CONTENTS
dsbsgh2xy.f . . .
dsbsgh3x.f . . . .
dsbsghd.f . . . .
dsbsghtd.f . . . .
dsbsgkc.f . . . . .
dsbsgkt.f . . . . .
dsbsgmtmuw.f . .
dsbsgmtmuwint.f
dsbsgri.f . . . . .
dsbsgud.f . . . .
dsbsgutd.f . . . .
dsbsgwud.f . . .
dsbsgwxy.f . . . .
dsbsgyt.f . . . . .
dsphi22a.f . . . .
dsphi22b.f . . . .
dsphi27a.f . . . .
dsphi27b.f . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

105
105
105
106
106
106
106
107
107
107
107
108
108
108
108
109
109
109

9 db: Anti-deuteron fluxes from the halo
9.1 Anti-deuteron fluxes from annihilation in the halo
9.2 Routine headers – fortran files . . . . . . . . . . . .
dsdbsigmavdbar.f . . . . . . . . . . . . . . . . . . .
dsdbtd15.f . . . . . . . . . . . . . . . . . . . . . . .
dsdbtd15beu.f . . . . . . . . . . . . . . . . . . . . .
dsdbtd15beucl.f . . . . . . . . . . . . . . . . . . . .
dsdbtd15beuclsp.f . . . . . . . . . . . . . . . . . . .
dsdbtd15beum.f . . . . . . . . . . . . . . . . . . . .
dsdbtd15comp.f . . . . . . . . . . . . . . . . . . . .
dsdbtd15point.f . . . . . . . . . . . . . . . . . . . .
dsdbtd15x.f . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

111
111
111
111
111
112
112
113
113
114
114
115

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

117
117
119
119
119
120
120
120
120
121
121
121
121
122
122
122
123
123
123
123

10 dd:
10.1
10.2
10.3

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Direct detection
Direct detection – theory . . .
Direct detection – routines . . .
Routine headers – fortran files .
dsdddn1.f . . . . . . . . . . . .
dsdddn2.f . . . . . . . . . . . .
dsdddn3.f . . . . . . . . . . . .
dsdddn4.f . . . . . . . . . . . .
dsdddrde.f . . . . . . . . . . . .
dsddeta.f . . . . . . . . . . . .
dsddffsd.f . . . . . . . . . . . .
dsddffsi.f . . . . . . . . . . . . .
dsddgpgn.f . . . . . . . . . . .
dsddlim.f . . . . . . . . . . . .
dsddlimits.f . . . . . . . . . . .
dsddneunuc.f . . . . . . . . . .
dsddo.f . . . . . . . . . . . . . .
dsddset.f . . . . . . . . . . . . .
dsddsigmaff.f . . . . . . . . . .
dsddsigsi.f . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

CONTENTS

9

dsddvearth.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
11 ep: Positron fluxes from the halo
11.1 Positrons from the halo – theory . . . . . .
11.1.1 Propagation and the interstellar flux
11.1.2 Solar modulation . . . . . . . . . . .
11.2 Positrons from the halo – routines . . . . .
11.3 Routine headers – fortran files . . . . . . . .
dsembg.f . . . . . . . . . . . . . . . . . . . .
dsepbg.f . . . . . . . . . . . . . . . . . . . .
dsepdiff.f . . . . . . . . . . . . . . . . . . .
dsepdsigv de.f . . . . . . . . . . . . . . . . .
dsepeecut.f . . . . . . . . . . . . . . . . . .
dsepeeuncut.f . . . . . . . . . . . . . . . . .
dsepf.f . . . . . . . . . . . . . . . . . . . . .
dsepfrsm.f . . . . . . . . . . . . . . . . . . .
dsepgalpropdiff.f . . . . . . . . . . . . . . .
dsepgalpropig.f . . . . . . . . . . . . . . . .
dsepgalpropig2.f . . . . . . . . . . . . . . .
dsepgalpropline.f . . . . . . . . . . . . . . .
dsephalodens2.f . . . . . . . . . . . . . . . .
dsepideltavint.f . . . . . . . . . . . . . . . .
dsepimage sum.f . . . . . . . . . . . . . . .
dsepipol.f . . . . . . . . . . . . . . . . . . .
dsepkt.f . . . . . . . . . . . . . . . . . . . .
dsepktdiff.f . . . . . . . . . . . . . . . . . .
dsepktig.f . . . . . . . . . . . . . . . . . . .
dsepktig2.f . . . . . . . . . . . . . . . . . . .
dsepktline.f . . . . . . . . . . . . . . . . . .
dseploghalodens2.f . . . . . . . . . . . . . .
dsepmake tables.f . . . . . . . . . . . . . . .
dsepmake tables2.f . . . . . . . . . . . . . .
dsepmsdiff.f . . . . . . . . . . . . . . . . . .
dsepmsig.f . . . . . . . . . . . . . . . . . . .
dsepmsig2.f . . . . . . . . . . . . . . . . . .
dsepmsline.f . . . . . . . . . . . . . . . . . .
dsepmstable.f . . . . . . . . . . . . . . . . .
dseprsm.f . . . . . . . . . . . . . . . . . . .
dsepset.f . . . . . . . . . . . . . . . . . . . .
dsepsigvdnde.f . . . . . . . . . . . . . . . .
dsepspec.f . . . . . . . . . . . . . . . . . . .
dseptab.f . . . . . . . . . . . . . . . . . . .
dsepvvcut.f . . . . . . . . . . . . . . . . . .
dsepvvuncut.f . . . . . . . . . . . . . . . . .
dsepwcut.f . . . . . . . . . . . . . . . . . . .
dsepwuncut.f . . . . . . . . . . . . . . . . .
dsgalpropig.f . . . . . . . . . . . . . . . . .
dsgalpropig2.f . . . . . . . . . . . . . . . . .
dsgalpropset.f . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

125
125
125
127
127
127
127
127
128
128
129
129
129
129
130
130
130
130
130
131
131
131
132
132
132
132
133
133
133
134
134
134
135
135
135
135
136
136
136
137
137
137
137
138
138
138
139

10

CONTENTS

12 ep2: Positron fluxes from the halo (alternative solution)
12.1 Routine headers – fortran files . . . . . . . . . . . . . . . . .
dsepintgreen.f . . . . . . . . . . . . . . . . . . . . . . . . . .
dsepspecm.f . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsepvofeps.f . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

141
141
141
141
142

13 ge: General routines
13.1 General routines . . . . . . . .
13.2 Routine headers – fortran files .
cosd.f . . . . . . . . . . . . . .
dsabsq.f . . . . . . . . . . . . .
dsbessei0.f . . . . . . . . . . . .
dsbessei1.f . . . . . . . . . . . .
dsbessek0.f . . . . . . . . . . .
dsbessek1.f . . . . . . . . . . .
dsbessek2.f . . . . . . . . . . .
dsbessjw.f . . . . . . . . . . . .
dscharadd.f . . . . . . . . . . .
dsf2s.f . . . . . . . . . . . . . .
dsf int.f . . . . . . . . . . . . .
dsf int2.f . . . . . . . . . . . . .
dshiprecint3.f . . . . . . . . . .
dshunt.f . . . . . . . . . . . . .
dsi2s.f . . . . . . . . . . . . . .
dsi trim.f . . . . . . . . . . . .
dsidtag.f . . . . . . . . . . . . .
dsisnan.f . . . . . . . . . . . . .
dsquartic.f . . . . . . . . . . . .
dsrnd1.f . . . . . . . . . . . . .
dsrndlin.f . . . . . . . . . . . .
dsrndlog.f . . . . . . . . . . . .
dsrndsgn.f . . . . . . . . . . . .
dswrite.f . . . . . . . . . . . . .
erf.f . . . . . . . . . . . . . . .
erfc.f . . . . . . . . . . . . . . .
sind.f . . . . . . . . . . . . . . .
spline.f . . . . . . . . . . . . . .
splint.f . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

143
143
143
143
143
143
143
144
144
144
144
144
145
145
145
145
145
146
146
146
146
146
146
146
146
146
147
147
147
147
147
147

14 ha: Halo annihilation yields
14.1 Annihilation in the halo, yields – theory
14.1.1 Monte Carlo simulations . . . . .
14.2 Routine headers – fortran files . . . . . .
dshacom.f . . . . . . . . . . . . . . . . .
dshadec.f . . . . . . . . . . . . . . . . .
dshadydth.f . . . . . . . . . . . . . . . .
dshadyh.f . . . . . . . . . . . . . . . . .
dshaemean.f . . . . . . . . . . . . . . . .
dshaifind.f . . . . . . . . . . . . . . . . .
dshainit.f . . . . . . . . . . . . . . . . .
dshapbyieldf.f . . . . . . . . . . . . . . .
dshawspec.f . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

149
149
149
149
149
149
150
150
150
150
151
151
151

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

CONTENTS
dshayield.f . .
dshayield int.f
dshayielddec.f
dshayieldf.f .
dshayieldfth.f
dshayieldget.f
dshayieldh.f .
dshayieldh2.f
dshayieldh3.f
dshayieldh4.f

11
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

151
152
153
153
154
154
154
154
155
155

15 hm: Halo models
15.1 Halo models – theory . . . . . . . . . . . .
15.1.1 Rescaling of the neutralino density
15.2 Halo model – routines . . . . . . . . . . .
15.3 Routine headers – fortran files . . . . . . .
dshmabgrho.f . . . . . . . . . . . . . . . .
dshmaxiprob.f . . . . . . . . . . . . . . . .
dshmaxirho.f . . . . . . . . . . . . . . . .
dshmboerrho.f . . . . . . . . . . . . . . . .
dshmboerrhoaxi.f . . . . . . . . . . . . . .
dshmburrho.f . . . . . . . . . . . . . . . .
dshmdfisotr.f . . . . . . . . . . . . . . . .
dshmdfisotrnum.f . . . . . . . . . . . . . .
dshmhaloprof.f . . . . . . . . . . . . . . .
dshmj.f . . . . . . . . . . . . . . . . . . .
dshmjave.f . . . . . . . . . . . . . . . . . .
dshmjavegc.f . . . . . . . . . . . . . . . .
dshmjavepar1.f . . . . . . . . . . . . . . .
dshmjavepar2.f . . . . . . . . . . . . . . .
dshmjavepar3.f . . . . . . . . . . . . . . .
dshmjavepar4.f . . . . . . . . . . . . . . .
dshmjavepar5.f . . . . . . . . . . . . . . .
dshmjpar1.f . . . . . . . . . . . . . . . . .
dshmn03rho.f . . . . . . . . . . . . . . . .
dshmnumrho.f . . . . . . . . . . . . . . . .
dshmrescale rho.f . . . . . . . . . . . . . .
dshmrho.f . . . . . . . . . . . . . . . . . .
dshmrho2cylint.f . . . . . . . . . . . . . .
dshmset.f . . . . . . . . . . . . . . . . . .
dshmsphrho.f . . . . . . . . . . . . . . . .
dshmudf.f . . . . . . . . . . . . . . . . . .
dshmudfearth.f . . . . . . . . . . . . . . .
dshmudfearthtab.f . . . . . . . . . . . . .
dshmudfgauss.f . . . . . . . . . . . . . . .
dshmudfiso.f . . . . . . . . . . . . . . . . .
dshmudfnum.f . . . . . . . . . . . . . . . .
dshmudfnumc.f . . . . . . . . . . . . . . .
dshmudftab.f . . . . . . . . . . . . . . . .
dshmvelearth.f . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

157
157
158
159
159
159
159
160
160
161
161
161
162
162
163
164
164
165
165
165
165
165
166
166
166
167
167
167
167
168
168
169
169
170
171
171
172
173
173

12

CONTENTS

16 hr: Halo rates from annihilation
16.1 Gamma rays from the halo – theory . . . . . . . . . .
16.1.1 χχ → γγ . . . . . . . . . . . . . . . . . . . . .
16.1.2 χχ → Zγ . . . . . . . . . . . . . . . . . . . . .
16.1.3 Gamma rays with continuum energy spectrum
16.1.4 Sources and fluxes . . . . . . . . . . . . . . . .
16.2 Neutrinos from halo – theory . . . . . . . . . . . . . .
16.3 Routine headers – fortran files . . . . . . . . . . . . . .
dshaloyield.f . . . . . . . . . . . . . . . . . . . . . . . .
dshaloyielddb.f . . . . . . . . . . . . . . . . . . . . . .
dshrdbardiff.f . . . . . . . . . . . . . . . . . . . . . . .
dshrdbdiff0.f . . . . . . . . . . . . . . . . . . . . . . .
dshrgacdiffsusy.f . . . . . . . . . . . . . . . . . . . . .
dshrgacont.f . . . . . . . . . . . . . . . . . . . . . . . .
dshrgacontdiff.f . . . . . . . . . . . . . . . . . . . . . .
dshrgacsusy.f . . . . . . . . . . . . . . . . . . . . . . .
dshrgaline.f . . . . . . . . . . . . . . . . . . . . . . . .
dshrgalsusy.f . . . . . . . . . . . . . . . . . . . . . . .
dshrmudiff.f . . . . . . . . . . . . . . . . . . . . . . . .
dshrmuhalo.f . . . . . . . . . . . . . . . . . . . . . . .
dshrpbardiff.f . . . . . . . . . . . . . . . . . . . . . . .
dshrpbdiff0.f . . . . . . . . . . . . . . . . . . . . . . .
dsnsigvgacdiff.f . . . . . . . . . . . . . . . . . . . . . .
dsnsigvgacont.f . . . . . . . . . . . . . . . . . . . . . .
dsnsigvgaline.f . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

175
175
176
177
178
178
179
180
180
180
180
181
181
182
182
183
183
184
184
185
185
186
186
187
187

17 ini: Initialization routines
17.1 Initialization routines . . . . .
17.2 Routine headers – fortran files .
dscval.f . . . . . . . . . . . . .
dsfval.f . . . . . . . . . . . . . .
dsinit.f . . . . . . . . . . . . . .
dsival.f . . . . . . . . . . . . . .
dskillsp.f . . . . . . . . . . . . .
dslowcase.f . . . . . . . . . . .
dslval.f . . . . . . . . . . . . . .
dsreadpar.f . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

189
189
189
189
189
189
189
190
190
190
190

18 mu: Muon neutrino yields from annihilation in the Sun/Earth
18.1 Muon yields from annihilation in the Earth/Sun – theory . . . . .
18.1.1 Monte Carlo simulations . . . . . . . . . . . . . . . . . . . .
18.2 Routine headers – fortran files . . . . . . . . . . . . . . . . . . . . .
dsmucom.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmudydth.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuemean.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuifind.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuinit.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuyield.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuyield int.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuyieldf.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuyieldfth.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dsmuyieldh.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

191
191
191
192
192
192
192
192
193
193
193
194
194
194

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

CONTENTS

13

dsmuyieldh2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
dsmuyieldh3.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
dsmuyieldh4.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
19 nt: Neutrino and muon rates from annihilation in the Sun/Earth
197
19.1 Neutrinos from the Sun and Earth – theory . . . . . . . . . . . . . . . . . . . . . . . 197
19.1.1 Neutrino yield from annihilations . . . . . . . . . . . . . . . . . . . . . . . . . 197
19.1.2 Evolution of the number density in the Earth/Sun . . . . . . . . . . . . . . . 198
19.1.3 Approximate capture rate expressions . . . . . . . . . . . . . . . . . . . . . . 199
19.1.4 Earth and Sun composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
19.1.5 More accurate capture rate expressions . . . . . . . . . . . . . . . . . . . . . 201
19.1.6 Accurate capture rates in the Earth for general velocity distributions . . . . . 201
19.1.7 Accurate capture rates for the Earth for a Maxwell-Boltzmann velocity distribution203
19.1.8 A possible new population of neutralinos . . . . . . . . . . . . . . . . . . . . 204
19.1.9 Effects of WIMP diffusion in the solar system . . . . . . . . . . . . . . . . . . 205
19.2 Neutrinos from Sun and Earth – routines . . . . . . . . . . . . . . . . . . . . . . . . 205
19.3 Routine headers – fortran files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
dsai.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
dsaip.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
dsatm mu.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
dsbi.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
dsbip.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
dsff.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dsff2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dsff3.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dsfff2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dsfff3.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dsgauss1.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dshiprecint.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dshiprecint2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dshonda.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
dslnff.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
dsntannrate.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
dsntcapcom.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
dsntcapearth.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
dsntcapearth2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
dsntcapearthfull.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
dsntcapearthnum.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
dsntcapearthnumi.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
dsntcapearthtab.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
dsntcapsun.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
dsntcapsunnum.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
dsntcapsunnumi.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
dsntcapsuntab.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
dsntceint.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
dsntceint2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
dsntcsint.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
dsntcsint2.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
dsntctabcreate.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
dsntctabget.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
dsntctabread.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
dsntctabwrite.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

14

CONTENTS
dsntdiffrates.f . . . .
dsntdkannrate.f . . .
dsntdkcapea.f . . . .
dsntdkcapeafull.f . .
dsntdkcapearth.f . .
dsntdkcom.f . . . . .
dsntdkfbigu.f . . . .
dsntdkfoveru.f . . . .
dsntdkgtot10.f . . .
dsntdkka.f . . . . . .
dsntdkyf.f . . . . . .
dsntdqagse.f . . . . .
dsntdqagseb.f . . . .
dsntdqk21.f . . . . .
dsntdqk21b.f . . . .
dsntearthdens.f . . .
dsntearthdenscomp.f
dsntearthmass.f . . .
dsntearthmassint.f .
dsntearthne.f . . . .
dsntearthpot.f . . . .
dsntearthpotint.f . .
dsntearthvesc.f . . .
dsntedfunc.f . . . . .
dsntepfunc.f . . . . .
dsntfoveru.f . . . . .
dsntfoveruearth.f . .
dsntismbkg.f . . . . .
dsntismrd.f . . . . .
dsntlitlf e.f . . . . .
dsntlitlf s.f . . . . . .
dsntmoderf.f . . . . .
dsntmuonyield.f . . .
dsntnuism.f . . . . .
dsntnusun.f . . . . .
dsntrates.f . . . . . .
dsntse.f . . . . . . .
dsntsefull.f . . . . . .
dsntset.f . . . . . . .
dsntspfunc.f . . . . .
dsntss.f . . . . . . .
dsntsunbkg.f . . . . .
dsntsuncdens.f . . .
dsntsuncdensint.f . .
dsntsuncdfunc.f . . .
dsntsundens.f . . . .
dsntsundenscomp.f .
dsntsunmass.f . . . .
dsntsunmfrac.f . . .
dsntsunne.f . . . . .
dsntsunne2x.f . . . .
dsntsunpot.f . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

216
216
217
217
218
218
218
218
218
219
219
219
222
225
226
227
228
229
229
229
229
230
230
230
230
230
231
231
231
231
232
232
232
233
233
233
234
234
234
234
234
235
235
235
236
236
236
237
237
237
238
238

CONTENTS
dsntsunpotint.f
dsntsunread.f .
dsntsunvesc.f .
dsntsunx2z.f . .
dsntsunz2x.f . .

15
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

238
239
239
239
240

20 pb: Antiproton fluxes from the halo
20.1 Antiprotons – theory . . . . . . . . . . .
20.1.1 The Antiproton Source Function
20.1.2 Propagation model . . . . . . . .
20.1.3 Solar Modulation . . . . . . . . .
20.2 Antiprotons from the halo – routines . .
20.3 Routine headers – fortran files . . . . . .
dspbaddterm.f . . . . . . . . . . . . . .
dspbbeupargc.f . . . . . . . . . . . . . .
dspbbeupargs.f . . . . . . . . . . . . . .
dspbbeuparh.f . . . . . . . . . . . . . . .
dspbbeuparm.f . . . . . . . . . . . . . .
dspbcharpar1.f . . . . . . . . . . . . . .
dspbcharpar2.f . . . . . . . . . . . . . .
dspbgalpropdiff.f . . . . . . . . . . . . .
dspbgalpropig.f . . . . . . . . . . . . . .
dspbgalpropig2.f . . . . . . . . . . . . .
dspbkdiff.f . . . . . . . . . . . . . . . . .
dspbkdiffm.f . . . . . . . . . . . . . . . .
dspbset.f . . . . . . . . . . . . . . . . . .
dspbsigmavpbar.f . . . . . . . . . . . . .
dspbtd15.f . . . . . . . . . . . . . . . . .
dspbtd15beu.f . . . . . . . . . . . . . . .
dspbtd15beucl.f . . . . . . . . . . . . . .
dspbtd15beuclsp.f . . . . . . . . . . . . .
dspbtd15beum.f . . . . . . . . . . . . . .
dspbtd15char.f . . . . . . . . . . . . . .
dspbtd15comp.f . . . . . . . . . . . . . .
dspbtd15point.f . . . . . . . . . . . . . .
dspbtd15x.f . . . . . . . . . . . . . . . .
dspbtpb.f . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

241
241
242
242
244
244
245
245
245
245
245
246
246
246
246
247
247
247
247
247
248
248
248
248
249
250
250
250
251
252
252

21 rd: Relic density routines (general)
21.1 Relic density – theoretical background . . . . . . . . . . . . . .
21.1.1 The Boltzmann equation and thermal averaging . . . .
21.1.2 Review of the Boltzmann equation with coannihilations
21.1.3 Thermal averaging . . . . . . . . . . . . . . . . . . . . .
21.1.4 Internal degrees of freedom . . . . . . . . . . . . . . . .
21.1.5 Reformulation of the Boltzmann equation . . . . . . . .
21.2 Relic density – numerical integration of the density equation . .
21.3 Relic density – routines . . . . . . . . . . . . . . . . . . . . . .
21.3.1 Neutralino relic density . . . . . . . . . . . . . . . . . .
21.3.2 General relic density routines . . . . . . . . . . . . . . .
21.3.3 Brief description of the internal routines . . . . . . . . .
21.4 Routine headers – fortran files . . . . . . . . . . . . . . . . . . .
dsrdaddpt.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

253
253
253
253
255
259
264
265
267
267
267
268
270
270

16

CONTENTS
dsrdcom.f . . .
dsrddof150.f . .
dsrddpmin.f . .
dsrdens.f . . . .
dsrdeqn.f . . .
dsrdfunc.f . . .
dsrdfuncs.f . . .
dsrdlny.f . . . .
dsrdnormlz.f . .
dsrdqad.f . . .
dsrdqrkck.f . .
dsrdrhs.f . . . .
dsrdspline.f . .
dsrdstart.f . . .
dsrdtab.f . . . .
dsrdthav.f . . .
dsrdthclose.f . .
dsrdthlim.f . .
dsrdthtest.f . .
dsrdwdwdcos.f
dsrdwfunc.f . .
dsrdwintp.f . .
dsrdwintpch.f .
dsrdwintprint.f
dsrdwintrp.f . .
dsrdwprint.f . .
dsrdwres.f . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

271
271
271
271
272
272
273
273
273
274
274
274
275
275
275
276
276
276
276
277
277
277
277
277
278
278
278

22 rge: mSUGRA interface (Isasugra) to DarkSUSY
22.1 mSUGRA (ISASUGRA) interface to DarkSUSY . .
22.2 Routine headers – fortran files . . . . . . . . . . . . .
dsgive model isasugra.f . . . . . . . . . . . . . . . . .
dsisasugra check.f . . . . . . . . . . . . . . . . . . . .
dsisasugra darksusy.f . . . . . . . . . . . . . . . . . .
dsmodelsetup isasugra.f . . . . . . . . . . . . . . . .
dsrge isasugra.f . . . . . . . . . . . . . . . . . . . . .
dssusy isasugra.f . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

281
281
281
281
282
282
282
282
283

routines)
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

285
285
285
285
286
286
286

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

289
289
289
289
292
294

23 rn: Relic density of neutralinos (wrapper
23.1 Relic density of neutralinos . . . . . . . .
23.2 Routine headers – fortran files . . . . . . .
dsrdomega.f . . . . . . . . . . . . . . . . .
dsrdres.f . . . . . . . . . . . . . . . . . . .
dsrdthr.f . . . . . . . . . . . . . . . . . . .
dsrdwrate.f . . . . . . . . . . . . . . . . .
24 su: General SUSY model setup:
24.1 Supersymmetric model . . . . .
24.1.1 Parameters . . . . . . .
24.1.2 Mass spectrum . . . . .
24.1.3 Three-particle vertices .
24.1.4 Accelerator bounds . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

for
. .
. .
. .
. .
. .
. .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

rd
. .
. .
. .
. .
. .
. .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

masses, vertices etc
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

CONTENTS
24.2 General supersymmetry – routines
24.3 Routine headers – fortran files . . .
dsb0loop.f . . . . . . . . . . . . . .
dschasct.f . . . . . . . . . . . . . .
dsfeynhiggsfast.f . . . . . . . . . .
dsfindmtmt.f . . . . . . . . . . . .
dsg0loop.f . . . . . . . . . . . . . .
dsg4set.f . . . . . . . . . . . . . . .
dsg4set12.f . . . . . . . . . . . . .
dsg4set1234.f . . . . . . . . . . . .
dsg4set13.f . . . . . . . . . . . . .
dsg4set23.f . . . . . . . . . . . . .
dsg4set34.f . . . . . . . . . . . . .
dsg4setc.f . . . . . . . . . . . . . .
dsg4setc12.f . . . . . . . . . . . . .
dsg4setc1234.f . . . . . . . . . . . .
dsg4setc13.f . . . . . . . . . . . . .
dsg4setc23.f . . . . . . . . . . . . .
dsg4setc34.f . . . . . . . . . . . . .
dsgive model.f . . . . . . . . . . . .
dshgfu.f . . . . . . . . . . . . . . .
dshigferqcd.f . . . . . . . . . . . .
dshigsct.f . . . . . . . . . . . . . .
dshigwid.f . . . . . . . . . . . . . .
dshlf2.f . . . . . . . . . . . . . . . .
dshlf3.f . . . . . . . . . . . . . . . .
dsmodelsetup.f . . . . . . . . . . .
dsmqpole1loop.f . . . . . . . . . . .
dsneusct.f . . . . . . . . . . . . . .
dspole.f . . . . . . . . . . . . . . .
dsprep.f . . . . . . . . . . . . . . .
dsqindx.f . . . . . . . . . . . . . .
dsralph3.f . . . . . . . . . . . . . .
dsralph31loop.f . . . . . . . . . . .
dsrghm.f . . . . . . . . . . . . . . .
dsrmq.f . . . . . . . . . . . . . . .
dsrmq1loop.f . . . . . . . . . . . .
dssettopmass.f . . . . . . . . . . .
dssfesct.f . . . . . . . . . . . . . . .
dsspectrum.f . . . . . . . . . . . .
dssuconst.f . . . . . . . . . . . . .
dssusy.f . . . . . . . . . . . . . . .
dsvertx.f . . . . . . . . . . . . . . .
dsvertx1.f . . . . . . . . . . . . . .
dsvertx3.f . . . . . . . . . . . . . .
dswhwarn.f . . . . . . . . . . . . .
dswspectrum.f . . . . . . . . . . . .
dswunph.f . . . . . . . . . . . . . .
dswvertx.f . . . . . . . . . . . . . .
g4p.f . . . . . . . . . . . . . . . . .

17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

295
297
297
297
297
298
298
298
298
299
299
299
299
299
299
300
300
300
300
300
301
301
301
302
302
302
302
303
303
303
303
304
304
304
304
304
304
304
304
305
305
305
305
306
306
307
307
307
307
308

18

CONTENTS

25 suspect: mSUGRA interface (suspect)
25.1 Routine headers – fortran files . . . . .
dssuspecterr.f . . . . . . . . . . . . . .
dssuspectsugra.f . . . . . . . . . . . . .
suspect2.f . . . . . . . . . . . . . . . .
26 xcern: CERN routines needed by
26.1 Routine headers – fortran files . .
besj064.f . . . . . . . . . . . . . .
bsir364.f . . . . . . . . . . . . . .
dbzejy.f . . . . . . . . . . . . . .
ddilog.f . . . . . . . . . . . . . .
dgadap.f . . . . . . . . . . . . . .
drkstp.f . . . . . . . . . . . . . .
eisrs1.f . . . . . . . . . . . . . . .
gpindp.f . . . . . . . . . . . . . .
mtlprt.f . . . . . . . . . . . . . .
tql2.f . . . . . . . . . . . . . . . .
tred2.f . . . . . . . . . . . . . . .

to
. .
. .
. .
. .

DarkSUSY
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

DarkSUSY
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

309
309
309
309
310

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

313
313
313
313
313
314
314
314
315
315
316
316
316

27 xcmlib: CMLIB routines needed by DarkSUSY
27.1 Routine headers – fortran files . . . . . . . . . . .
d1mach.f . . . . . . . . . . . . . . . . . . . . . . .
dqagse.f . . . . . . . . . . . . . . . . . . . . . . .
dqagseb.f . . . . . . . . . . . . . . . . . . . . . .
dqelg.f . . . . . . . . . . . . . . . . . . . . . . . .
dqk21.f . . . . . . . . . . . . . . . . . . . . . . . .
dqk21b.f . . . . . . . . . . . . . . . . . . . . . . .
dqpsrt.f . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

317
317
317
317
320
323
324
325
326

28 xfeynhiggs: FeynHiggs interface to DarkSUSY
28.1 Routine headers – fortran files . . . . . . . . . . .
dsfeynhiggs.f . . . . . . . . . . . . . . . . . . . .
dsfeynhiggsdummy.f . . . . . . . . . . . . . . . .
FeynHiggsSub ds.f . . . . . . . . . . . . . . . . .
Hhmasssr2 ds.f . . . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

329
329
329
330
330
331

29 xhdecay: HDecay interface to DarkSUSY
29.1 Routine headers – fortran files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dshdecay.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
hdecay.f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

333
333
333
333

Acknowledgements

337

Bibliography

337

Chapter 1

Introduction
DarkSUSY is a set of Fortran routine to make calculations for supersymmetric dark matter in
the Minimal Supersymmetric Standard Model, the MSSM. The physics involved is covered in the
DarkSUSY paper [1]. In this manual we will mainly cover the more techincal aspects of DarkSUSY,
i.e. how to call different subroutines and how to change switches and options. We will only briefly
review the necessary physics involved when needed and refer the reader to [1] and the original papers
behind DarkSUSY [2] for more details. If you use DarkSUSY please consider the original physics
work behind and give proper credit to [1] and the relevant references in [2]. If you use non-standard
options, e.g. a different propagation model for antiprotons, please remember to give proper credit
to that model.

19

20

CHAPTER 1. INTRODUCTION

Chapter 2

General remarks on notation
In an attempt to keep this manual reasonably easy to follow we will need to specify our notation.
We will use the following convention for fonts,
Convention for fonts
text
This font is used for normal text.
variable
This font is used for variables or other things in the code that is mentioned.
routine
This font is used for subroutine or function names or for header file names.
dump
This font will be used for screen dumps of outputs.
input
This font will be used for user input, i.e. where you are supposed to write
something.
Subroutines and functions will be described with the following structure
subroutine example(in1,in2,in3,in4,in5,in6,in7,out1)
Purpose:
Here the routine will be explained.
Inputs:
in1
i This is an input argument, declared as integer.
in2
r This is an input argument, declared as real.
in3
r8 This is an input argument, declared as real*8.
in4
c This is an input argument, declared as complex.
in5
c16 This is an input argument, declared as complex*16.
in6
ch2 This is an input argument, declared as character*2.
in7
ch* This is an input argument, declared as character*(*).
Outputs
out1
r8 This is an output argument, declared as real*8
where the shorthand notation for the type of the arguments is indicated. For functions, the type is
indicated on the first line,
function fun(arg)
r8
Purpose:
Here the function will be explained.
Inputs:
arg
i This is an input argument, declared as integer.
i.e., in this case the function is declared as real*8.
The subroutines always reside in a file with the same name as the subroutine/function. Routines that belong together are put in separate subdirectories in the src directory. The different
subdirectories are
Subdirectories in src/
ac
accelerator constraints
an
driver routines for neutralino and chargino annihilation
21

22

CHAPTER 2. GENERAL REMARKS ON NOTATION
an1l
anstu
dd
ep
ge
ha
hm
hr
ini
mu
nt
pb
rd
rn
su
xcern
xcmlib

1-loop neutralino annihilation amplitudes
tree-level neutralino and chargino annihilation amplitudes
direct detection and neutralino scattering
positron fluxes from the halo
general routines
yields of halo annihilation products (from Pythia simulations in vacuum)
halo models
driver routines for rates from the halo
initialization routines
neutrino and muon yields from the neutralino annihilations in the Earth/Sun
(from Pythia simulations in medium)
driver routines for rates and fluxes in neutrino telescopes
antiprotons from annihilation in the halo
relic density routines (general)
driver routines for neutralino relic density
general MSSM routines, couplings, masses, etc.
routines from CERNLIB
routines from CMLIB

Common blocks are all declared in header files in the inc directory. When discussing switches and
parameters in common blocks we will, instead of describing the common blocks in detail, mention
which header file they reside in. If you want to access these variables, you should then include the
corresponding header file. E.g., it can look like this
Example parameters in headerfile.h
Purpose:
Description of this set of variables.
par1
r8 Description of a real*8 parameter.

Chapter 3

src/ac:
Accelerator bounds
3.1

Accelerator bounds

DarkSUSY contains a set of routines to check if a given model is excluded by accelerator constraints.
These routines are called dsacbnd[number]. The policy is that when we update DarkSUSY with
new accelerator constraints, we keep the old routine, and add a new routine with the last number
incremented by one. Which routine that is called is determined by calling dsacset with a tag
determining which routine to call. To check the accelerator constraints, then call dsacbnd which
calls the right routine for you. Upon return, dsacbnd returns an exclusion flag, excl. If zero, the
model is OK, if non-zero, the model is excluded. The cause for the exclusion is coded in the bits of
excl according to table 3.1
Bit set
0
1
2
3
4
5
6
7
8

excl
Octal value
1
2
4
10
20
40
100
200
400

Decimal value
1
2
4
8
16
32
64
128
256

Reason for exclusion
Chargino mass
Gluino mass
Squark mass
Slepton mass
Invisible Z width
Higgs mass
Neutralino mass
b → sγ
ρ parameter

Table 3.1: The bits of excl are set to indicate by which process this particular model is excluded.
Check if a bit is set with btest(excl,bit).

3.2

Routine headers – fortran files

dsacbnd.f
c----------------------------------------------------------------------c
This is a wrapper routine which selects which accelerator constraint
c
routine, dsacbnd* to call. Whenever the accelerator constraints are
c
upgraded, a new function dsacbnd*.f is created, meaning that all old
23

24

CHAPTER 3. AC: ACCELERATOR BOUNDS

c
versions are kept for backward checks. The user can select which
c
routine to use with a call to dsacset.
c
c
Available options (in the call to dsacset) are:
c
pdg2002c = default, these are the latest implemented
c
accelerator bounds
c
pdg2002b
c
pdg2002
c
pdg2000
c
mar2000
c
pdg1999
c----------------------------------------------------------------------subroutine dsacbnd(excl)

dsacbnd1.f
subroutine dsacbnd1(excl)
c_______________________________________________________________________
c check if accelerator data exclude the present point.
c output:
c
excl - code of the reason for exclusion (integer); 0 if allowed
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo 1994-1999
c history:
c
940407 first version paolo gondolo
c
950323 update paolo gondolo
c
971200 partial update joakim edsjo
c
980428 update joakim edsjo
c
990719 update paolo gondolo
c=======================================================================

dsacbnd2.f
subroutine dsacbnd2(excl)
c_______________________________________________________________________
c check if accelerator data exclude the present point.
c output:
c
excl - code of the reason for exclusion (integer); 0 if allowed
c
if not allowed, the reasons are coded as follows
c
dsbit set
dec.
oct.
reason
c
-----------------c
0
1
1
chargino mass
c
1
2
2
gluino mass
c
2
4
4
squark mass
c
3
8
10
slepton mass
c
4
16
20
invisible z width
c
5
32
40
higgs mass
c
6
64
100
neutralino mass
c
7
128
200
b -> s gamma
c
8
256
400
rho parameter
c common:

3.2. ROUTINE HEADERS – FORTRAN FILES
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo 1994-1999
c history:
c
940407 first version paolo gondolo
c
950323 update paolo gondolo
c
971200 partial update joakim edsjo
c
980428 update joakim edsjo
c
990719 update paolo gondolo
c
000310 update piero ullio
c
000424 added delrho joakim edsjo
c=======================================================================

dsacbnd3.f
subroutine dsacbnd3(excl)
c_______________________________________________________________________
c check if accelerator data exclude the present point.
c output:
c
excl - code of the reason for exclusion (integer); 0 if allowed
c
if not allowed, the reasons are coded as follows
c
dsbit set
dec.
oct.
reason
c
-----------------c
0
1
1
chargino mass
c
1
2
2
gluino mass
c
2
4
4
squark mass
c
3
8
10
slepton mass
c
4
16
20
invisible z width
c
5
32
40
higgs mass
c
6
64
100
neutralino mass
c
7
128
200
b -> s gamma
c
8
256
400
rho parameter
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo 1994-1999
c history:
c
940407 first version paolo gondolo
c
950323 update paolo gondolo
c
971200 partial update joakim edsjo
c
980428 update joakim edsjo
c
990719 update paolo gondolo
c
000310 update piero ullio
c
000424 added delrho joakim edsjo
c
000904 update according to pdg2000 lars bergstrom
c
010214 mh2 limits corrected, joakim edsjo
c=======================================================================

dsacbnd4.f
subroutine dsacbnd4(excl)
c_______________________________________________________________________
c check if accelerator data exclude the present point.
c output:

25

26

CHAPTER 3. AC: ACCELERATOR BOUNDS

c
excl - code of the reason for exclusion (integer); 0 if allowed
c
if not allowed, the reasons are coded as follows
c
dsbit set
dec.
oct.
reason
c
-----------------c
0
1
1
chargino mass
c
1
2
2
gluino mass
c
2
4
4
squark mass
c
3
8
10
slepton mass
c
4
16
20
invisible z width
c
5
32
40
higgs mass
c
6
64
100
neutralino mass
c
7
128
200
b -> s gamma
c
8
256
400
rho parameter
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo 1994-1999
c history:
c
940407 first version paolo gondolo
c
950323 update paolo gondolo
c
971200 partial update joakim edsjo
c
980428 update joakim edsjo
c
990719 update paolo gondolo
c
000310 update piero ullio
c
000424 added delrho joakim edsjo
c
000904 update according to pdg2000 lars bergstrom
c
010214 mh2 limits corrected, joakim edsjo
c
020927 higgs limits update according to pdg2002 mia schelke
c
021001 susy part. mass limits update to pdg2002 je/ms
c=======================================================================

dsacbnd5.f
subroutine dsacbnd5(excl)
c_______________________________________________________________________
c check if accelerator data exclude the present point.
c output:
c
excl - code of the reason for exclusion (integer); 0 if allowed
c
if not allowed, the reasons are coded as follows
c
dsbit set
dec.
oct.
reason
c
-----------------c
0
1
1
chargino mass
c
1
2
2
gluino mass
c
2
4
4
squark mass
c
3
8
10
slepton mass
c
4
16
20
invisible z width
c
5
32
40
higgs mass
c
6
64
100
neutralino mass
c
7
128
200
b -> s gamma
c
8
256
400
rho parameter
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo 1994-1999

3.2. ROUTINE HEADERS – FORTRAN FILES
c history:
c
940407 first version paolo gondolo
c
950323 update paolo gondolo
c
971200 partial update joakim edsjo
c
980428 update joakim edsjo
c
990719 update paolo gondolo
c
000310 update piero ullio
c
000424 added delrho joakim edsjo
c
000904 update according to pdg2000 lars bergstrom
c
010214 mh2 limits corrected, joakim edsjo
c
020927 higgs limits update according to pdg2002 mia schelke
c
021001 susy part. mass limits update to pdg2002 je/ms
c=======================================================================

dsacbnd6.f
subroutine dsacbnd6(excl)
c_______________________________________________________________________
c check if accelerator data exclude the present point.
c output:
c
excl - code of the reason for exclusion (integer); 0 if allowed
c
if not allowed, the reasons are coded as follows
c
dsbit set
dec.
oct.
reason
c
-----------------c
0
1
1
chargino mass
c
1
2
2
gluino mass
c
2
4
4
squark mass
c
3
8
10
slepton mass
c
4
16
20
invisible z width
c
5
32
40
higgs mass
c
6
64
100
neutralino mass
c
7
128
200
b -> s gamma
c
8
256
400
rho parameter
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo 1994-1999
c history:
c
940407 first version paolo gondolo
c
950323 update paolo gondolo
c
971200 partial update joakim edsjo
c
980428 update joakim edsjo
c
990719 update paolo gondolo
c
000310 update piero ullio
c
000424 added delrho joakim edsjo
c
000904 update according to pdg2000 lars bergstrom
c
010214 mh2 limits corrected, joakim edsjo
c
020927 higgs limits update according to pdg2002 mia schelke
c
021001 susy part. mass limits update to pdg2002 je/ms
c
031204 standard model higgs like mh2 limit for msugra models
c=======================================================================

27

28

CHAPTER 3. AC: ACCELERATOR BOUNDS

dsacset.f
***********************************************************************
*** This routine selects which set of accelerator constraints to use
*** when dsacbnd is called. For available options, see dsacbnd.f
***********************************************************************
subroutine dsacset(a)

dsbsgamma.f
subroutine dsbsgamma(ratio,flag)
c_______________________________________________________________________
c b -> s + gamma branching ratio
c common:
c
’dssusy.h’ - file with susy common blocks
c input:
c
flag : 0 no qcd correction -- 1 qcd corrections
c output:
c
ratio : branching ratio
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994,1995
c
28-nov-94 formulas in bertolini et al, nucl phys b353 (1991) 591
c
modified: joakim edsjo, 2000-09-03, vertices from dsvertx.f
c
correctly implemented
c=======================================================================

dsbsgf1.f
function dsbsgf1(x)
c_______________________________________________________________________
c function in bertolini et al, nucl phys b353 (1991) 591
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dsbsgf2.f
function dsbsgf2(x)
c_______________________________________________________________________
c function in bertolini et al, nucl phys b353 (1991) 591
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dsbsgf3.f
function dsbsgf3(x)
c_______________________________________________________________________
c function in bertolini et al, nucl phys b353 (1991) 591
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dsbsgf4.f
function dsbsgf4(x)

3.2. ROUTINE HEADERS – FORTRAN FILES

29

c_______________________________________________________________________
c function in bertolini et al, nucl phys b353 (1991) 591
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dsgm2muon.f
function dsgm2muon()
c supersymmetric contribution to (g-2)_muon
c output:
c
gm2amp : susy contribution to g-2 amplitude
c according to T Moroi hep-ph/9512396 v3
c (T. Moroi, PRD 1996; (E) 1997)

= (g-2)/2

c author: paolo gondolo 2001-02-08
c reference: e a baltz and p gondolo, hep-ph/0102147

dswexcl.f
subroutine dswexcl(unit,excl)
c_______________________________________________________________________
c write reasons for exclusion to specified unit.
c input:
c
unit - logical unit to write on (integer)
c
excl - code of the reason for exclusion (integer); 0 if allowed
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

30

CHAPTER 3. AC: ACCELERATOR BOUNDS

Chapter 4

src/an:
Annihilation cross sections
(general, χ0 and χ±)
4.1

Annihilation cross sections – theory

For the relic density calculations, we need all possible (co)annihilation cross sections between neutralinos, charginos and sfermions.

4.1.1

Annihilation cross sections

We have calculated all two-body final state cross sections at tree level for involving netralinos,
charginos, sneutrinos, sleptons and squarks in the initial state. A complete list is given below.
Since we have so many different diagrams contributing, we have to use some method where
the diagrams can be calculated efficiently. To achive this, we calculate the diagrams with general
expressions for vertices, masses etc so that they can be reused for other processes. How we do this
in practice differs a bit between different sets of annihilation diagrams.
For neutralino-neutralino, neutralino-chargino and chargino-chargino annihilation, we classify
the diagrams according to their topology (s-, t- or u-channel) and to the spin of the particles
involved. We then compute the helicity amplitudes for each type of diagram analytically with
Reduce [71] using general expressions for the vertex couplings.
The strength of the helicity amplitude method is that the analytical calculation of a given type
of diagram has to be performed only once and the sum of the contributing diagrams for each set of
initial and final states can be done numerically afterwards.
For the diagrams involving sfermions, Form is used to analytically calculate the amplitudes.
This output is then converted into Fortran with a Perl script, form2f [173].

4.1.2

Coannihilation diagrams

All Feynman diagrams for which we calculate the annihilation cross section are listed in the coming
sections. s(x), t(x) and u(x) denote a tree-level Feynman diagram in which particle x is exchanged
in the s-, t- and u-channel respectively.
The convention used in this list of included coannihilation diagrams is that if a sfermion is
denoted f˜, then it’s antiparticle is denoted f˜∗ .
31

32

4.1.3

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

Neutralino and chargino annihilation

˜ ν, ν̃, ℓ, ℓ̃, f and f˜ are generic
Indices i, j, k run from 1 to 4, and indices c, d, e from 1 to 2. u, ũ, d, d,
notations for up-type quarks, up-type squarks, down-type quarks, down-type squarks, neutrinos,
sneutrinos, leptons, sleptons, fermions and sfermions. A sum of diagrams over (s)fermion generation
indices and over the neutralino and chargino indices k and e is understood (no sum over indices
i, j, c, d).

Neutralino-neutralino annihilation

Initial state

χ0i χ0j

Final state
H1 H 1 , H 1 H 2 , H 2 H 2 , H 3 H 3
H1 H 3 , H 2 H 3
H −H +
Z 0 H1 , Z 0 H 2
Z 0 H3
W −H +, W +H −
Z 0Z 0
W −W +
f f¯

Feynman diagrams
t(χ0k ), u(χ0k ), s(H1,2 )
t(χ0k ), u(χ0k ), s(H3 ), s(Z 0 )
+
0
t(χ+
e ), u(χe ), s(H1,2 ), s(Z )
t(χ0k ), u(χ0k ), s(H3 ), s(Z 0 )
t(χ0k ), u(χ0k ), s(H1,2 )
+
t(χ+
e ), u(χe ), s(H1,2,3 )
t(χ0k ), u(χ0k ), s(H1,2 )
+
0
t(χ+
e ), u(χe ), s(H1,2 ), s(Z )
˜
˜
t(fL,R ), u(fL,R ), s(H1,2,3 ), s(Z 0 )

Neutralino-chargino annihilation

Initial state

0
χ+
c χi

Final state
H + H1 , H + H2
H + H3
W + H 1 , W + H2
W + H3
H +Z 0
γH +
W +Z0
γW +
ud¯
ν ℓ̄

Feynman diagrams
+
+
t(χ0k ), u(χ+
e ), s(H ), s(W )
0
+
+
t(χk ), u(χe ), s(W )
+
+
t(χ0k ), u(χ+
e ), s(H ), s(W )
0
+
+
t(χk ), u(χe ), s(H )
+
t(χ0k ), u(χ+
e ), s(H )
+
+
t(χc ), s(H )
+
t(χ0k ), u(χ+
e ), s(W )
+
+
t(χc ), s(W )
t(d˜L,R ), u(ũL,R ), s(H + ), s(W + )
t(ℓ̃L,R ), u(ν̃L ), s(H + ), s(W + )

4.1. ANNIHILATION CROSS SECTIONS – THEORY

33

Chargino-chargino annihilation

Initial state

−
χ+
c χd

+
χ+
c χd

4.1.4

Final state
H 1 H1 , H 1 H 2 , H 2 H 2 , H 3 H3
H 1 H3 , H 2 H 3
H +H −
Z 0 H 1 , Z 0 H2
Z 0 H3
H +W −, W +H −
Z 0Z 0
W +W −
γγ (only for c = d)
Z 0γ
uū
ν ν̄
¯
dd
ℓ̄ℓ
H +H +
H +W +
W +W +

Feynman diagrams
+
t(χ+
e ), u(χe ), s(H1,2 )
+
0
t(χe ), u(χ+
e ), s(H3 ), s(Z )
0
0
t(χk ), s(H1,2 ), s(Z , γ)
+
0
t(χ+
e ), u(χe ), s(H3 ), s(Z )
+
+
t(χe ), u(χe ), s(H1,2 )
t(χ0k ), s(H1,2,3 )
+
t(χ+
e ), u(χe ), s(H1,2 )
0
t(χk ), s(H1,2 ), s(Z 0 , γ)
+
t(χ+
c ), u(χc )
+
t(χd ), u(χ+
c )
t(d˜L,R ), s(H1,2,3 ), s(Z 0 , γ)
t(ℓ̃L,R ), s(Z 0 )
t(ũL,R ), s(H1,2,3 ), s(Z 0 , γ)
t(ν̃L ), s(H1,2,3 ), s(Z 0 , γ)
t(χ0k ), u(χ0k )
t(χ0k ), u(χ0k )
t(χ0k ), u(χ0k )

Squark-squark annihilation

We will here denote squarks as q̃ai and q̃bj where i and j are the family indices and a and b are
the mass eigenstate indices (running from 1 to 2). k and l will also be used as family indices for
processes including more squarks. Colour indices are suppressed. ũi is used as a generic notation for
any up-type squark where i denotes the family index. Down-type squarks are denoted analogously.

Note that we will not (except in rare occations) show processes for ν̃ and ℓ̃ separately since they
can easily be obtained from the squark processes by replacing ũ with ν̃ and d˜ with ℓ̃ (and noting
that we only have one mass eigenstate for the ν̃. Also note that the ν̃ − ℓ̃–sector is assumed not to
be flavour-changing.

34

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

d˜ia d˜i∗
b annihilation
Initial state
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b

Final state
γγ, Zγ
ZZ
W −W +
ZH2 , ZH1
ZH3
γH2 , γH1 , γH3
H2 H2 , H1 H1 , H1 H2
H2 H3 , H1 H3
H3 H3
W −H +
H −H +
f f¯ (f 6= di )

Diagrams
t(d˜i1,2 ), u(d˜i1,2 ), p
t(d˜i1,2 ), u(d˜i1,2 ), p, s(H1 , H2 )
p, s(H1 , H2 , Z, γ), t(ũk1,2 )
t(d˜i1,2 ), u(d˜i1,2 ), s(Z, H3 )
t(d˜i1,2 ), u(d˜i1,2 ), s(H1 , H2 )
t(d˜i1,2 ), u(d˜i1,2 )
t(d˜i1,2 ), u(d˜i1,2 ), p, s(H1 , H2 )
s(Z, H3 ), t(d˜i1,2 ), u(d˜i1,2 )
s(H1 , H2 ), p, t(d˜i1,2 ), u(d˜i1,2 )
s(H1 , H2 , H3 ), t(ũk1,2 )
s(H1 , H2 , Z, γ), p, t(ũk1,2 )
†
s(H1⋆ , H2⋆ , H3⋆ , Z, γ ⋆ , g ‡ ), t(χ+
c )

d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b
d˜ia d˜i∗
b

di d¯i
Zg
gg
gγ
gH1 , gH2 , gH3

s(H1 , H2 , H3 , Z, γ, g † ), t(χ̃0k , g̃ † )
t(d˜i1,2 ), u(d˜i1,2 ), p
t(d˜i1,2 ), u(d˜i1,2 ), s(g), p
t(d˜i1,2 ), u(d˜i1,2 ), p
t(d˜i1,2 ), u(d˜i1,2 )

Note

Only k = i at present

Only k = i at present
Only k = i at present
†) Only if f = uk (only
k = i at present), ⋆) Not
for f = ν, ‡) Only for
squarks/quarks
†) Only for squarks
Only for squarks
Only for squarks
Only for squarks
Only for squarks

d˜ia d˜j∗
b annihilation (i 6= j)
Initial state
d˜ia d˜j∗
b
d˜ia d˜j∗
b
d˜ia d˜j∗
b
d˜ia d˜∗j
b
d˜i d˜∗j
a b

Final state
W +W −
W +H −
H +H −
di d¯j
uk ūl

Diagrams
t(ũk1,2 )†
t(ũk1,2 )†
t(ũk1,2 )†
t(χ̃0k , g̃ † )
t(χ̃+
c )

Note
Not included at present
Not included at present
Not included at present
†) Only for squarks
Only k = i, l = j at present

Final state
di di

Diagrams
t(χ̃0k , g̃ † ), u(χ̃0k , g̃ † )

d˜ia d˜ib annihilation
Initial state
d˜ia d˜ib

Note
†) Only for squarks

d˜ia d˜jb annihilation (i 6= j)
Initial state
d˜ia d˜jb

ũia ũi∗
b annihilation

Final state
di dj

Diagrams
t(χ̃0k , g̃ † )

Note
†) Only for squarks

4.1. ANNIHILATION CROSS SECTIONS – THEORY

35

Initial state
ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b

Final state
γγ † , Zγ †
ZZ
W −W +

Diagrams
t(ũi1,2 ), u(ũi1,2 ), p
t(ũi1,2 ), u(ũi1,2 ), p, s(H1 , H2 )
p, s(H1 , H2 , Z, γ † ), u(d˜k1,2 )

Note
†) Not for ν̃

ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b

ZH2 , ZH1
ZH3
γH2† , γH1† , γH3†
H2 H2 , H1 H1 , H1 H2
H2 H3 , H1 H3
H3 H3
W −H +

t(ũi1,2 ), u(ũi1,2 ), s(Z, H3† )
t(ũi1,2 )† , u(ũi1,2 )† , s(H1 , H2 )
t(ũi1,2 ), u(ũi1,2 )
t(ũi1,2 ), u(ũi1,2 ), p, s(H1 , H2 )
s(Z, H3† ), t(ũi1,2 )† , u(ũi1,2 )†
s(H1 , H2 ), p, t(ũi1,2 )† , u(ũi1,2 )†
s(H1 , H2 , H3† ), u(d˜k1,2 )

ũia ũi∗
b

H +H −

s(H1 , H2 , Z, γ † ), p, t(d˜k1,2 )

ũia ũi∗
b

f f¯ (f 6= ui )

⋆
s(H1× , H2× , H3†× , Z, γ †× , g ‡ ), t(χ+
c )

ũia ũi∗
b

ui ūi

s(H1× , H2× , H3× , Z, γ × , g ‡ ), t(χ̃0k , g̃ ‡ )

ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b
ũia ũi∗
b

Zg
gg
gγ
gH1 , gH2 , gH3

t(ũi1,2 ), u(ũi1,2 ), p
t(ũi1,2 ), u(ũi1,2 ), s(g), p
t(ũi1,2 ), u(ũi1,2 ), p
t(ũi1,2 ), u(ũi1,2 )

Only k = i at present, †) Not
for ν̃
†) Not for ν̃
†) Not for ν̃
†) Not for ν̃
†) Not for ν̃
†) Not for ν̃
Only k = i at present, †) Not
for ν̃
Only k = i at present, †) Not
for ν̃
†) Not for ν̃, ⋆) If f = dk
(only k = i at present), ‡)
Only for squarks/quarks, ×)
Not for ν
×) Not for ν, ‡) Only for
squarks
Only for squarks
Only for squarks
Only for squarks
Only for squarks

ũia ũj∗
b annihilation (i 6= j)
Initial state
ũia ũj∗
b
ũia ũj∗
b
ũia ũj∗
b
ũia ũj∗
b
ũia ũj∗
b

Final state
W +W −
W +H −
H +H −
ui ūj
dk d¯l

Diagrams
t(d˜k1,2 )†
t(d˜k1,2 )†
t(d˜k1,2 )†
t(χ̃0k , g † )
t(χ̃+
c )

Note
Not included at present, †) Not for ℓ̃
Not included at present, †) Not for ℓ̃
Not included at present, †) Not for ℓ̃
†) Only for squarks
Only k = i, l = j at present

ũia ũib annihilation
Initial state
ũia ũib

Final state
ui ui

Diagrams
t(χ̃0k , g̃ † ), u(χ̃0k , g̃ † )

Note
†) Only for squarks

ũia ũjb annihilation (i 6= j)
Initial state
ũia ũjb

Final state
ui uj

Diagrams
t(χ̃0k , g̃ † )

Note
†) Only for squarks

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

36

ũia d˜i∗
b annihilation
Initial state
ũia d˜i∗
b
ũia d˜i∗
b
ũia d˜i∗
b
ũia d˜i∗
b
ũia d˜i∗
b
ũia d˜i∗
b
ũia d˜i∗
b
ũia d˜i∗
b
ũi d˜i∗

Final state
H + H1 , H + H 2
H + H3
γH +
ZH +
W + H1 , W + H2
W + H3
W +γ
W +Z
uk d¯l

Diagrams
t(d˜i1,2 ), u(ũi1,2 ), p, s(W + , H + )
t(d˜i1,2 ), u(ũi1,2 )† , p, s(W + )
t(ũi1,2 )† , u(d˜i1,2 ), s(H + )
t(ũi1,2 ), u(d˜i1,2 ), s(H + )
t(d˜i1,2 ), u(ũi1,2 ), s(W + , H + )
t(d˜i1,2 ), u(ũi1,2 )† , s(H + )
t(d˜i1,2 ), u(ũi1,2 )† , s(W + ), p
t(d˜i1,2 ), u(ũi1,2 ), s(W + ), p
s(H + , W + )⋆ , t(χ̃0m , g̃ † )δ ik δ il

ũia d˜i∗
b
ũia d˜i∗
b

W +g
gH +

t(d˜i1,2 ), u(ũi1,2 ), p
t(ũi1,2 ), u(d˜i1,2 )

a b

Note
†) Not for ℓ̃
†) Not for ℓ̃
†) Not for ℓ̃
†) Not for ℓ̃
†) Not for ℓ̃, ⋆) Only k = l
at present
Only for squarks
Only for squarks

ũia d˜j∗
b annihilation (i 6= j)
For squarks we can have the following processes
Initial state
ũia d˜j∗
b
ũia d˜j∗
b
ũia d˜j∗
b
ũia d˜j∗
b
ũia d˜j∗
b
ũia d˜j∗
b
ũia d˜j∗
b
ũia d˜j∗
b
ũi d˜j∗
a b

Final state
H + H1 , H + H 2
H + H3
H +γ
H +Z
W + H1 , W + H2
W + H3
W +γ
W +Z
uk d¯l

Diagrams
t(d˜j1,2 ), u(ũi1,2 ), p, s(W + , H + )
t(d˜j1,2 ), u(ũi1,2 ), p, s(W + )
t(d˜j1,2 ), u(ũi1,2 ), s(H + )
t(d˜j1,2 ), u(ũi1,2 ), s(H + )
t(d˜j1,2 ), u(ũi1,2 ), s(W + , H + )
t(d˜j1,2 ), u(ũi1,2 ), s(H + )
t(d˜j1,2 ), u(ũi1,2 ), s(W + ), p
t(d˜j1,2 ), u(ũi1,2 ), s(W + ), p
s(H + , W + )† , t(χ̃0m , g̃)δ ik δ jl

Note
Not included at present
Not included at present
Not included at present
Not included at present
Not included at present
Not included at present
Not included at present
Not included at present
†) Not included at present

whereas for sneutrinos and sleptons, we can only have the process
Initial state
ν̃ i ℓ̃j∗
b

Final state
ν i ℓ̄j

Diagrams
t(χ̃0k )

Note

ũia d˜ib annihilation
Initial state
ũi d˜i
a b

Final state
uk dl

Diagrams
⋆
t(χ̃0m , g̃ † )δ ik δ il , u(χ̃+
c )

Note
†) Only for squarks, ⋆)
Only i = k = l at present

ũia d˜jb annihilation (i 6= j)
Initial state
ũia d˜jb

Final state
uk dl

Diagrams
×⋆
t(χ̃0m , g̃ † )δ ik δ jl , u(χ̃+
c )

Note
†) Only for squarks, ×)
For ν̃ ℓ̃ only when i =
l, j = k, ⋆) Only included
when i = l, j = k at
present

4.1. ANNIHILATION CROSS SECTIONS – THEORY

4.1.5

37

Squark-neutralino annihilation

We will here denote squarks as ũia and d˜ia where i is the family index and a is the mass eigenstate
index (running from 1 to 2).

ũia χ̃0j annihilation
Initial state
ũia χ̃0j
ũia χ̃0j
ũia χ̃0j
ũia χ̃0j
ũia χ̃0j

Final state
γui
Zui
H1 u i , H 2 u i
H3 u i
W + dk

Diagrams
s(ui ), t(ũi1,2 )
s(ui ), t(ũi1,2 ), u(χ̃0k )
s(ui )† , t(ũi1,2 ), u(χ̃0k )
s(ui )† , t(ũi1,2 )† , u(χ̃0k )
s(ui ), t(d˜k1,2 ), u(χ̃+
c )

ũia χ̃0j

H + dk

s(ui ), t(d˜k1,2 ), u(χ̃+
c )

ũia χ̃0j

gui

s(ui ), t(ũi1,2 )

Note
Only for squarks
†) Only for squarks
†) Only for squarks
Only k = i at present,
0
− ¯k
ũi∗
in the
a χ̃j → W d
code
Only k = i at present,
0
− ¯k
in the
ũi∗
a χ̃j → H d
code

d˜ia χ̃0j annihilation
Initial state
d˜ia χ̃0j
d˜ia χ̃0j
d˜ia χ̃0j
d˜ia χ̃0j
d˜ia χ̃0j
d˜ia χ̃0j
d˜ia χ̃0j

4.1.6

Final state
γdi
Zdi
H1 di , H2 di
H3 di
W − uk
H − uk
gdi

Diagrams
s(di ), t(d˜i1,2 )
s(di ), t(d˜i1,2 ), u(χ̃0k )
s(di ), t(d˜i1,2 ), u(χ̃0k )
s(di ), t(d˜i1,2 ), u(χ̃0k )
s(di ), t(ũk1,2 ), u(χ̃+
c )
s(di ), t(ũk1,2 ), u(χ̃+
c )
s(di ), t(d˜i1,2 )

Note

Only k = i at present
Only k = i at present

Squark-chargino annihilation

We will here denote squarks as q̃ai where i is the family index and a is the mass eigenstate index
(running from 1 to 2).

ũia χ̃+
c annihilation
Initial state
ũia χ̃+
c
ũia χ̃+
c

Final state
W + uk
H + uk

Diagrams
t(d˜l1,2 ), u(χ̃0c )δ ik
t(d˜l1,2 ), u(χ̃0c )δ ik

Note
Only k = l = i at present
Only k = l = i at present

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

38

+
ũi∗
a χ̃c annihilation

Initial state
+
ũi∗
a χ̃c
i∗ +
ũa χ̃c
+
ũi∗
a χ̃c
i∗ +
ũa χ̃c
+
ũi∗
a χ̃c
+
ũi∗
χ̃
a c
+
ũi∗
a χ̃c

Final state
Z d¯k
γ d¯k
H1 d¯k , H2 d¯k
H3 d¯k
W + ūk
H + ūk
g d¯k

Diagrams
s(d¯k ), t(ũi1,2 ), u(χ̃+
c )
s(d¯k ), t(ũi1,2 )† , u(χ̃+
c )
s(d¯k ), t(ũi1,2 ), u(χ̃+
c )
s(d¯k ), t(ũi1,2 )† , u(χ̃+
c )
s(d¯l ), u(χ̃0c )δ ik
s(d¯l ), u(χ̃0c )δ ik
s(d¯k ), t(ũia )

Note
Only k
Only k
Only k
Only k
Only k
Only k
Only k

= i at present
= i at present, †) Only for squarks
= i at present
= i at present, †) Only for squarks
= l = i at present
= l = i at present
= i at present, only for squarks

Diagrams
s(uk ), t(d˜i1,2 ), u(χ̃+
c )
s(uk )† , t(d˜i1,2 ), u(χ̃+
c )
k †
i
˜
s(u ) , t(d1,2 ), u(χ̃+
c )
s(uk )† , t(d˜i ), u(χ̃+ )

Note
Only k
Only k
Only k
Only k
Only k
Only k
Only k

= i at present
= i at present, †) Only for squarks
= i at present, †) Only for squarks
= i at present, †) Only for squarks
= l = i at present
= l = i at present
= i at present, only for squarks

d˜ia χ̃+
c annihilation
Initial state
d˜ia χ̃+
c
d˜ia χ̃+
c
d˜ia χ̃+
c
d˜ia χ̃+
c
d˜ia χ̃+
c
d˜ia χ̃+
c
d˜ia χ̃+
c

Final state
Zuk
γuk
H1 u k , H 2 u k
H3 u k
W + dk
H + dk
guk

1,2

s(ul ), u(χ̃0c )δ ik
s(ul ), u(χ̃0c )δ ik
s(uk ), t(d˜ia )

c

+
d˜i∗
a χ̃c annihilation

Initial state
+
d˜i∗
a χ̃c
i∗ +
˜
da χ̃c

4.1.7

Final state
W + d¯k
H + d¯k

Diagrams
t(ũl1,2 ), u(χ̃0c )δ ik
t(ũl1,2 ), u(χ̃0c )δ ik

Note
Only k = l = i at present
Only k = l = i at present

Degrees of freedom

We have to be careful with the internal degrees of freedom, g, of the particles. We can either treat
−
e.g. a χ+
i and a χi as two separate particles with two degrees of freedom each, or we can treat
them as one particle χ±
i with four degrees of freedom. The latter approach has an advantage that
we simplify our expressions for the effective annihilation cross sections when coannihilations are
needed. Hence, we use that approach here. For a more detailed discussion about this, see Section
21.1.4.

4.2

Annihilation routines - general remarks

The annihilation cross section routines is divided into several parts, mostly for historical reasons.
The layout is roughly as follows:
src/an Here we keep the main routins for both neutralino- neutralino annihilation cross sections
and the effective annihilation cross section in the relic density calculations. The steering
routines for neutralino and chargino coannihilations are also kept here.
src/anstu Here keep the t−, u− and s− diagram expressions for fermion-fermion coannihilations
(i.e. neutralino and chargino coannihilations).
src/as Here all the coannihilation cross sections including sfermions are kept.
We will here describe the src/an-routines.

4.3. ROUTINE HEADERS – FORTRAN FILES

4.2.1

39

General routines

The general routine to call for an effective annihilation cross section (to be used for relic density
calculations) is dsanwx, which returns the invariant annihilation rate (integrated over cos θ). The
actual cross section, differential in cos θ is calculated by dsandwdcos which includes all the coannihilations needed. This is set up in rn/dsrdomega which determines which coannhilating particles
to include.
For other applications where the annihilation rate is needed, e.g. annihilation in the galactic
halo, one can call the specific annihilation rate routine directly. The main one is dsandwdcosnn
for neutralino-neutralino annihilation. To simplify this task, we supply a routine dssigmav which
calls dsandwdcosnn for neutralino-neutralino annihilation at zero relative velocity and returns the
result, either as the total annihilation cross section, or the cross section for a specific channel. See
the header of dssigmav for details.

4.2.2

Neutralino and chargino (co)annihilation cross sections

The routines dsandwdcosnn, dsandwdcoscn and dsandwdcoscc calculate the annihilation cross
sections (returning the invariant annihilation rate) for neutralino-neutralino, neutralino-chargino
and chargino-chargino annihilations. Which particles the cross section is calculated for is given by
particle indices as defined in inc/dssusy.h.
All the annihilation routines return the invariant rate instead of the cross section. The invariant
annihilation rate between particle i and j is defined as
q
√
(4.1)
Wij = 4pij sσij = 4σij (pi · pj )2 − m2i m2j = 4Ei Ej σij vij .
See chapter 21 for more details.

4.3

Routine headers – fortran files

dsanalbe.f
subroutine dsanalbe(alph,bet)
c_______________________________________________________________________
c determine alph and bet for the integration.
c modified: joakim edsjo (edsjo@physto.se) 97-09-09
c=======================================================================

dsanclearaa.f
subroutine dsanclearaa
c_______________________________________________________________________
c clear the amplitude matrix
c author: joakim edsjo (edsjo@physto.se) 95-10-25
c
paolo gondolo 99-1-15 factor of 3.7 faster
c called by: dwdcos
c=======================================================================

dsandwdcos.f
function dsandwdcos(p,costheta)
c_______________________________________________________________________
c annihilation differential invariant rate.
c input:

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

40
c
c
c
c
c

p - initial cm momentum (real) for lsp annihilations
costheta - cosine of c.m. annihilation angle
common:
’dssusy.h’ - file with susy common blocks
Output:
dWij
d cos θ

where

q
√
Wij = 4pij sσij = 4σij (pi · pj )2 − m2i m2j = 4Ei Ej σij vij

c The returned dW/dcos(theta) is unitless
c uses dsandwdcosnn, dsandwdcoscn and dsandwdcoscc and
c routines in src/as
c called by dsanwx.
c author: joakim edsjo (edsjo@physto.se)
c date: 96-02-21
c modified: 97-05-12 Joakim Edsjo (edsjo@physto.se)
c modified: 01-01-30 paolo gondolo (paolo@mamma-mia.phys.cwru.edu)
c modified: 02-03-09 Joakim Edsjo (edsjo@physto.se)
c modified: 06-02-22 Paolo Gondolo (paolo@physics.utah.edu)
c=======================================================================

dsandwdcoscc.f
function dsandwdcoscc(p,costheta,kp1,kp2)
c_______________________________________________________________________
c annihilation differential invariant rate between particle kp1
c and kp2 where kp1 and kp2 are charginos
c input:
c
p - initial cm momentum (real)
c
costheta - cosine of c.m. annihilation angle
c
kp1 - particle code, particle 1
c
kp2 - particle code, particle 2
c common:
c
’dssusy.h’ - file with susy common blocks
c
’diacom.h’ - file with kinematical variables
c Output:
dWij
d cos θ
where

q
√
Wij = 4pij sσij = 4σij (pi · pj )2 − m2i m2j = 4Ei Ej σij vij

c The returned dW/dcos(theta) is unitless
c uses dsanclearaa,dsansumaa
c called by dsandwdcos.
c author: joakim edsjo (edsjo@physto.se)
c date: 96-08-06
c modified: 01-09-12
c=======================================================================

4.3. ROUTINE HEADERS – FORTRAN FILES

dsandwdcoscn.f
function dsandwdcoscn(p,costheta,kp1,kp2)
c_______________________________________________________________________
c annihilation differential invariant rate between particle kp1
c and kp2 where kp1 is a chargino and kp2 is a neutralino.
c input:
c
p - initial cm momentum (real)
c
costheta - cosine of c.m. annihilation angle
c
kp1 - particle code, particle 1
c
kp2 - particle code, particle 2
c common:
c
’dssusy.h’ - file with susy common blocks
c
’diacom.h’ - file with kinematical variables
c Output:
dWij
d cos θ
where

q
√
Wij = 4pij sσij = 4σij (pi · pj )2 − m2i m2j = 4Ei Ej σij vij

c The returned dW/dcos(theta) is unitless
c uses dsanclearaa,dsansumaa
c called by dsandwdcos.
c author: joakim edsjo (edsjo@physto.se)
c date: 96-08-06
c modified: 01-09-12
c=======================================================================

dsandwdcosd.f
function dsandwdcosd(costheta)
c_______________________________________________________________________
c 10^15*annihilation differential invariant rate.
c input:
c
p - initial cm momentum (real) for lsp annihilations via common
c
costheta - cosine of c.m. annihilation angle
c common:
c
’dssusy.h’ - file with susy common blocks
c uses dwdcos
c used for gaussian integration with gadap.f
c author: joakim edsjo (edsjo@physto.se)
c date: 97-01-09
c=======================================================================

dsandwdcosnn.f
function dsandwdcosnn(p,costheta,kp1,kp2)
c_______________________________________________________________________
c Annihilation differential invariant rate between particle kp1
c and kp2 where kp1 and kp2 are neutralinos
c Input:

41

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

42
c
c
c
c
c
c
c
c

p - initial cm momentum (real)
costheta - cosine of c.m. annihilation angle
kp1 - particle code for particle 1
kp2 - particle code for particle 2
common:
’dssusy.h’ - file with susy common blocks
’diacom.h’ - file with kinematical variables
Output:
dWij
d cos θ

where

q
√
Wij = 4pij sσij = 4σij (pi · pj )2 − m2i m2j = 4Ei Ej σij vij

c The returned dW/dcos(theta) is unitless.
c
c uses dsanclearaa,dsansumaa
c called by dsandwdcos.
c note: the 32pi in the partial cross sections is 8pi g_1^2, g_1=2
c author: joakim edsjo (edsjo@physto.se)
c date: 96-02-21
c modified: 01-09-12
c=======================================================================

dsandwdcoss.f
function dsandwdcoss(costheta)
c_______________________________________________________________________
c 10^15*annihilation differential invariant rate.
c input:
c
p - initial cm momentum (real) for lsp annihilations via common
c
costheta - cosine of c.m. annihilation angle
c common:
c
’dssusy.h’ - file with susy common blocks
c uses dwdcos
c used for gaussian integration with gadap.f
c author: joakim edsjo (edsjo@physto.se)
c date: 97-01-09
c=======================================================================

dsandwdcosy.f
function dsandwdcosy(y)
c_______________________________________________________________________
c 10^15*annihilation differential invariant rate.
c the integration variable is changed from cos(theta) to
c
y=1/(mx^2+2p^2(1-cos(theta))) for cos(theta)>0 and to
c
y=1/(mx^2+2p^2(1-cos(theta))) for cos(theta)<0.
c this avoids the poles at cos(theta)=+-1
c integrate this function from 1/(mx^2+2p^2) to 1/mx^2 to get
c 1d15 times the integral from cos(theta)=0 to 1.

4.3. ROUTINE HEADERS – FORTRAN FILES
c input:
c
y - initial cm momentum (real) for lsp annihilations via common
c common:
c
’dssusy.h’ - file with susy common blocks
c uses dwdcos
c used for gaussian integration with gadap.f
c author: joakim edsjo (edsjo@physto.se)
c date: 98-05-03
c=======================================================================

dsankinvar.f
subroutine dsankinvar(p,costheta,kp1,kp2,kpk,kp3,kp4)
c=======================================================================
c calculate kinematical variables for s-, t-, and u-diagram
c author: joakim edsjo, edsjo@physto.se
c date: 97-01-09
c=======================================================================

dsanset.f
subroutine dsanset(c)
c...set parameters for annihilation routines
c... c - character string specifying choice to be made
c...author: joakim edsjo, 2001-09-12

dsansumaa.f
real*8 function dsansumaa()
c_______________________________________________________________________
c sum the amplitude matrix
c author: joakim edsjo (edsjo@physto.se) 96-02-02
c
paolo gondolo 99-1-15 factor of 3 faster
c called by: dwdcos
c=======================================================================

dsantucc.f
subroutine dsantucc(p,ind1,ind2)
c_______________________________________________________________________
c routine to check for t- or u-channel resonances.
c called by dwdcosopt.
c author: joakim edsjo (edsjo@physto.se)
c date: 97-09-17
c=======================================================================

dsantucn.f
subroutine dsantucn(p,ind1,ind2)
c_______________________________________________________________________
c routine to check when t- or u-resonances occur.

43

44

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

c called by dwdcosopt.
c author: joakim edsjo (edsjo@physto.se)
c date: 97-09-17
c=======================================================================

dsantunn.f
subroutine dsantunn(p,ind1,ind2)
c_______________________________________________________________________
c routine to check if t- or u-resonances occur for neutralino-neutralino
c annihilation
c called by dwdcosopt.
c author: joakim edsjo (edsjo@physto.se)
c date: 97-09-17
c=======================================================================

dsantures.f
integer function dsantures(kp1,kp2,kp3,kp4,p)
c=======================================================================
c determine if t- or u-resonances can occur for a given 2 ->2
c scattering. if t_max>0 or u_max>0, then tures=1, otherwise tures=0
c author: joakim edsjo, edsjo@physto.se
c date: 97-09-17
c=======================================================================

dsanwriteaa.f
subroutine dsanwriteaa
c_______________________________________________________________________
c write out the amplitude matrix
c author: joakim edsjo (edsjo@physto.se) 95-10-25
c called by: different routines during debugging
c=======================================================================

dsanwx.f
real*8 function dsanwx(p)
c_______________________________________________________________________
c Neutralino self-annihilation invariant rate.
c Input:
c
p - initial cm momentum (real) for lsp annihilations
c Common:
c
’dssusy.h’ - file with susy common blocks
c Output

Weff

X
X pij gi gj
Wij =
=
2
p11 g1
ij
ij

s

[s − (mi − mj )2 ][s − (mi + mj )2 ] gi gj
Wij .
s(s − 4m21 )
g12

where the p’s are the momenta, the g’s are the internal degrees of freedom, the m’s are the masses
and Wij is the invariant annihilation rate for the included subprocess.

4.3. ROUTINE HEADERS – FORTRAN FILES
c uses dsabsq.
c called by dsrdfunc, wirate, dsrdwintrp.
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c modified: joakim edsjo (edsjo@physto.se) 97-09-09
c=======================================================================

dsanwxint.f
function dsanwxint(p,a,b)
c_______________________________________________________________________
c neutralino self-annihilation invariant rate integrated between
c cos(theta)=a and cos(theta)=b.
c input:
c
p - initial cm momentum (real) for lsp annihilations
c
integration limits a and b
c common:
c
’dssusy.h’ - file with susy common blocks
c uses dsabsq.
c called by wx.
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c modified slightly by joakim edsjo (edsjo@physto.se) 96-04-10
c=======================================================================

dssigmav.f
**********************************************************************
*** function dssigmav returns the annihilation cross section
*** sigma v at p=0 for neutralino-neutralino annihilation.
*** if partch=0, the full sigma v is obtained and if partch>0, the
*** cross section to channel partch is obtained, where is defined
*** as follows:
***
***
partch
process
***
-----------***
0
All processes, i.e. the full annihilation cross section
***
1
H1 H1
***
2
H1 H2
***
3
H2 H2
***
4
H3 H3
***
5
H1 H3
***
6
H2 H3
***
7
H- H+
***
8
H1 Z
***
9
H2 Z
***
10
H3 Z
***
11
W- H+ and W+ H***
12
Z0 Z0
***
13
W+ W***
14
nu_e nu_e-bar
***
15
e+ e***
16
nu_mu nu_mu-bar
***
17
mu+ mu-

45

46

CHAPTER 4. AN: ANNIHILATION CROSS SECTIONS (GENERAL, χ0 AND χ± )

***
18
nu_tau nu_tau-bar
***
19
tau+ tau***
20
u u-bar
***
21
d d-bar
***
22
c c-bar
***
23
s s-bar
***
24
t t-bar
***
25
b b-bar
***
26
gluon gluon (1-loop)
***
27
q q gluon (not implemented yet, put to zero)
***
28
gamma gamma (1-loop)
***
29
Z gamma (1-loop)
***
*** Units of returned cross section: cm^-3 s^-1
**********************************************************************
function dssigmav(partch)

Chapter 5

src/an1l:
Annihilation cross sections (1-loop)
5.1

Annihilation cross sections at 1-loop – general

The annihilation cross sections at 1-loop that we have implemented in DarkSUSY are those to γγ,
Zγ and gg. The derivation of these is described in the works [?, 175].
To see how these routines are called, see the file src/an/dsandwdcosnn.f where the γγ, Zγ and
gg contributions are added to the annihilation cross section at the end.

5.2

Routine headers – fortran files

dsanggim.f
c====================================================================
c
c
this subroutine gives the imaginary part of the amplitude of the
c
process of neutralino annihilation into two photons in the limit
c
of vanishing relative velocity of the neutralino pair
c
c
l. bergstrom & p. ullio, nucl. phys. b 504 (1997) 27
c
c
imres: imaginary part
c
imfbxg: contribution from diagram 1a divided by imres
c
imftxg: contribution from diagrams 1c & 1d divided by imres
c
imgbxg: contribution from diagram 3a divided by imres
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
subroutine dsanggim(imres)

dsanggimpar.f
c====================================================================
c
47

48

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

c
this subroutine gives the imaginary part of the amplitude of the
c
process of neutralino annihilation into two photons in the limit
c
of vanishing relative velocity of the neutralino pair
c
c
l. bergstrom & p. ullio, nucl. phys. b 504 (1997) 27
c
c
see header of dsanggim.f for details
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
subroutine dsanggimpar(imres,imfbx,imftx,imgbx)

dsanggre.f
c====================================================================
c
c
this subroutine gives the real part of the amplitude of the
c
process of neutralino annihilation into two photons in the limit
c
of vanishing relative velocity of the neutralino pair
c
c
l. bergstrom & p. ullio, nucl. phys. b 504 (1997) 27
c
c
reres: real part
c
refbxg: contribution from diagram 1a & 1b divided by reres
c
reftxg: contribution from diagrams 1c & 1d divided by reres
c
rehbxg: contribution from diagram 2a & 2b divided by reres
c
rehtxg: contribution from diagrams 2c & 2d divided by reres
c
regbxg: contribution from diagram 3a - 3c & 4a -4b divided by
c
reres
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________

subroutine dsanggre(reres)

dsanggrepar.f
c====================================================================
c
c
this subroutine gives the imaginary part of the amplitude of the
c
process of neutralino annihilation into two photons in the limit
c
of vanishing relative velocity of the neutralino pair
c
c
l. bergstrom & p. ullio, nucl. phys. b 504 (1997) 27
c
c
see header of dsanggre.f for details
c
c
author: piero ullio (piero@tapir.caltech.edu)

5.2. ROUTINE HEADERS – FORTRAN FILES
c
c____________________________________________________________________
subroutine dsanggrepar(reres,refbx,reftx,rehbx,rehtx,regbx)

dsanglglim.f
c====================================================================
c
c
this subroutine gives the imaginary part of the amplitude of the
c
process of neutralino annihilation into two gluons in the limit
c
of vanishing relative velocity of the neutralino pair
c
c
l. bergstrom & p. ullio, nucl. phys. b 504 (1997) 27
c
c
imres: imaginary part
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
subroutine dsanglglim(imres)

dsanglglre.f
c====================================================================
c
c
this subroutine gives the real part of the amplitude of the
c
process of neutralino annihilation into two gluons in the limit
c
of vanishing relative velocity of the neutralino pair
c
c
l. bergstrom & p. ullio, nucl. phys. b 504 (1997) 27
c
c
reres: real part
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
subroutine dsanglglre(reres)

dsanzg.f
c====================================================================
c
c
this subroutine gives the real and imaginary parts of the
c
amplitude of the process of neutralino annihilation into
c
one photon and one z boson in the limit of vanishing relative
c
velocity of the neutralino pair
c
c
p. ullio & l. bergstrom, phys. rev. d 57 (1998) 1962
c
c
the present version assumes equal sfermion mass eigenstates in

49

50

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

c
fermion - sfermion loop diagrams
c
c
imres: imaginary part
c
imfbxz: contribution to imres from diagram 1a - 1c divided by
c
imres
c
imftxz: contribution to imres from diagrams 1e - 1h divided by
c
imres
c
imgbxz: contribution to imres from diagram 3a & 3b divided by
c
imres
c
reres: real part
c
refbxz: contribution to reres from diagram 1a - 1d divided by
c
reres
c
reftxz: contribution to reres from diagrams 1e - 1h divided by
c
reres
c
rehbxz: contribution to reres from diagram 2a - 2d divided by
c
reres
c
rehtxz: contribution to reres from diagrams 2e - 2h divided by
c
reres
c
regbxz: contribution from diagram 3a - 3f & 4a -4f divided by
c
reres
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
subroutine dsanzg(reres,imres)

dsanzgpar.f
c====================================================================
c
c
this subroutine gives the real and imaginary parts of the
c
amplitude of the process of neutralino annihilation into
c
one photon and one z boson in the limit of vanishing relative
c
velocity of the neutralino pair
c
c
p. ullio & l. bergstrom, phys. rev. d 57 (1998) 1962
c
c
see header of dsanzg.f for details
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________

&

subroutine dsanzgpar(imres,imfbx,imftx,imgbx,reres,refbx,reftx,
rehbx,rehtx,regbx)

dsdilog.f
c====================================================================
c
c
dsdilogarithm function

5.2. ROUTINE HEADERS – FORTRAN FILES
c
argument should be between -1 and 1
c
c
author: lars bergstrom (lbe@physto.se)
c
c____________________________________________________________________
real*8 function dsdilog(x)

dsdilogp.f
c====================================================================
c
c
auxiliary function used in:
c
dsdilog.f
c
c
author: lars bergstrom (lbe@physto.se)
c
c____________________________________________________________________
real*8 function dsdilogp(x)

dsfl1c1.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl1c1(r1,r2,r3,r4,r5)

dsfl1c2.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl1c2(r1,r2,r3,r4,r5)

dsfl2c1.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f

51

52

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl2c1(r1,r2,r3,r4,r5)

dsfl2c2.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl2c2(r1,r2,r3,r4,r5)

dsfl3c1.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl3c1(r1,r2,r3,r4,r5)

dsfl3c2.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl3c2(r1,r2,r3,r4,r5)

dsfl4c1.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f
c

5.2. ROUTINE HEADERS – FORTRAN FILES
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl4c1(r1,r2,r3,r4,r5)

dsfl4c2.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_5.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsfl4c2(r1,r2,r3,r4,r5)

dsi 12.f
c====================================================================
c
c
auxiliary function used in:
c
not used, this is here just for notation
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_12(r1,r2)

dsi 13.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f dsi_13.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_13(r1,r2,r3)

dsi 14.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f dsi_13.f
c
c
author: piero ullio (piero@tapir.caltech.edu)

53

54

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

c
c____________________________________________________________________
real*8 function dsi_14(r1,r2,r3,r4)

dsi 22.f
c====================================================================
c
c
auxiliary function used in:
c
not used, this is equivalent to dspiw2.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_22(r1,r2)

dsi 23.f
real*8 function dsi_23(r1,r2,r3)
No header found.

dsi 24.f
real*8 function dsi_24(r1,r2,r3,r4)
No header found.

dsi 32.f
c====================================================================
c
c
auxiliary function used in:
c
not used, this is equivalent to dspiw3.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_32(r1,r2)

dsi 33.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_33(r1,r2,r3)

5.2. ROUTINE HEADERS – FORTRAN FILES

dsi 34.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f dsi_32.f dsi_33.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_34(r1,r2,r3,r4)

dsi 41.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_41(a,b,c)

dsi 42.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsi_42(a,b,d,c)

dsilp2.f
c====================================================================
c
c
auxiliary function used in:
c
dslp2.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsilp2(x)

55

56

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

dsj 1.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsj_1(a,b)

dsj 2.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsj_2(b,c)

dsj 3.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsj_3(a,b,c)

dslp2.f
c====================================================================
c
c
auxiliary function used in:
c
dsi_14.f dsi_24.f dsi_34.f dsilp2.f dsti_5.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dslp2(c1,c2)
c this function compute the integral between 0 and 1 of 1/x*log(1+c1*x+c2*x**2)

5.2. ROUTINE HEADERS – FORTRAN FILES

dspi1.f
c====================================================================
c
c
auxiliary function used in:
c
dsanggrepar.f dsanglglre.f dsi_12.f dsrepfbox.f dsrepgh.f dsrepw.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dspi1(a,b)

dspiw2.f
c====================================================================
c
c
auxiliary function used in:
c
dsanglglre.f dsrepfbox.f dsrepgh.f dsrepw.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dspiw2(a,b)

dspiw2i.f
c====================================================================
c
c
auxiliary function used in:
c
dspiw2.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dspiw2i(x)

dspiw3.f
c====================================================================
c
c
auxiliary function used in:
c
dsanglglre.f dsrepfbox.f dsrepgh.f dsrepw.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dspiw3(a,b)

57

58

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

dspiw3i.f
c====================================================================
c
c
auxiliary function used in:
c
dspiw3.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dspiw3i(x)

dsrepfbox.f
c====================================================================
c
c
auxiliary function used in:
c
dsanggrepar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsrepfbox(a,b,sq,dq,signm)

dsrepgh.f
c====================================================================
c
c
auxiliary function used in:
c
dsanggrepar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsrepgh(a,b,sq,dq,signm)

dsrepw.f
c====================================================================
c
c
auxiliary function used in:
c
dsanggrepar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsrepw(a,b,sq,dq,signm)

5.2. ROUTINE HEADERS – FORTRAN FILES

dsslc1.f
c====================================================================
c
c
auxiliary function used in:
c
dsi_14.f dsi_24.f dsi_34.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsslc1(r1,r2,r3)
c this function gives the coefficient c1 of slog

dsslc2.f
c====================================================================
c
c
auxiliary function used in:
c
dsi_14.f dsi_24.f dsi_34.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsslc2(r1,r2,r3)
c this function gives the coefficient c2 of slog

dssubka.f
c====================================================================
c
c
auxiliary function used in:
c
dsi_41.f dsi_42.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________

real*8 function dssubka(r,delta)

dssubkb.f
c====================================================================
c
c
auxiliary function used in:
c
dsi_41.f dsi_42.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
subroutine dssubkb(r1,r2,delta,res1,res2)

59

60

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

dssubkc.f
c====================================================================
c
c
auxiliary function used in:
c
dsi_42.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
subroutine dssubkc(r1,delta,res1,res2)

dsti 214.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsti_214(r1,r2,r3,r4)

dsti 224.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsti_224(r1,r2,r3,r4)

dsti 23.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsti_23(r1,r2,r3)

5.2. ROUTINE HEADERS – FORTRAN FILES

dsti 33.f
c====================================================================
c
c
auxiliary function used in:
c
dsanzgpar.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsti_33(r1,r2,r3)

dsti 5.f
c====================================================================
c
c
auxiliary function used in:
c
dsti_214.f dsti_224.f dsti_23.f dsti_33.f
c
c
author: piero ullio (piero@tapir.caltech.edu)
c
c____________________________________________________________________
real*8 function dsti_5(r1,r2,r3,r4,r5)

61

62

CHAPTER 5. AN1L: ANNIHILATION CROSS SECTIONS (1-LOOP)

Chapter 6

src/anstu:
t, u and s diagrams for
f f -annihilation
6.1

Annihilation amplitudes for fermion-fermion annihilation

In this directory, all the helicity amplitudes needed for neutralino-neutralino, neutralino-chargino
and chargino-chargino annihilation are calculated. The helicity amplitudes have been calculated
with general expressions for vertices, masses etc. in Reduce and converted to Fortran files. The
calculation of these are described in more detail in [35].
Each routine here adds the contribution to the helicity amplitudes from one particular diagram
and the sum over contributed diagrams is done in the routines an/dsandwdcosnn, an/dsandwdcoscn
and an/dsandwdcoscc. The naming convention for the routines here is the following: The first part
of the routine name is dsan to indicate that they deal with annihilations in DarkSUSY. The next
character tells which kind of process it is s-, t- or u-channel and the next two caracters tell which
initial state particles we have (f for fermion), the next character is the kind of propagating particle
(f for fermion, s for scalar and v for vector boson), and finally, the last two characters tell the
kind of final state particles. So, to take an example, the routine dsansffsvv calculates the helicity
amplitudes for annihilation of two fermions to two vector bosons via s-channel exchange of a scalar.
There are also a few special cases (routines ending in ex or in) for diagrams with clashing arrows.

6.2

Routine headers – fortran files

dsansffsff.f
****************************************************
*** subroutine dsansffsff
***
*** fermion + fermion -> fermion + fermion in
***
*** s-channel scalar exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
63

64

CHAPTER 6. ANSTU: T , U AND S DIAGRAMS FOR F F -ANNIHILATION

subroutine dsansffsff(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffsss.f
****************************************************
*** subroutine dsansffsss
***
*** fermion + fermion -> scalar + scalar in
***
*** s-channel scalar exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsansffsss(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffssv.f
****************************************************
*** subroutine dsansffssv
***
*** fermion + fermion -> scalar + gauge boson in ***
*** s-channel scalar exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsansffssv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffsvs.f
****************************************************
*** subroutine dsansffsvs
***
*** fermion + fermion -> scalar + gauge boson in ***
*** s-channel scalar exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsansffsvs(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffsvv.f
*********************************************************
*** subroutine dsansffsvv
***
*** fermion + fermion -> gauge boson + gauge boson in ***
*** s-channel scalar exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***

6.2. ROUTINE HEADERS – FORTRAN FILES
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************
subroutine dsansffsvv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffvff.f
********************************************************
*** subroutine dsansffvff
***
*** fermion + fermion -> fermion + fermion in
***
*** s-channel gauge boson exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
********************************************************
subroutine dsansffvff(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffvss.f
********************************************************
*** subroutine dsansffvss
***
*** fermion + fermion -> scalar + scalar in
***
*** s-channel gauge boson exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
********************************************************
subroutine dsansffvss(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffvsv.f
********************************************************
*** subroutine dsansffvsv
***
*** fermion + fermion -> scalar + gauge boson in
***
*** s-channel gauge boson exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
********************************************************
subroutine dsansffvsv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffvvs.f
********************************************************
*** subroutine dsansffvvs
***
*** fermion + fermion -> scalar + gauge boson in
***

65

66

CHAPTER 6. ANSTU: T , U AND S DIAGRAMS FOR F F -ANNIHILATION

*** s-channel gauge boson exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
********************************************************
subroutine dsansffvvs(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsansffvvv.f
*********************************************************
*** subroutine dsansffvvv
***
*** fermion + fermion -> gauge boson + gauge boson in ***
*** s-channel gauge boson exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************
subroutine dsansffvvv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffss.f
****************************************************
*** subroutine dsantfffss
***
*** fermion + fermion -> scalar + scalar in
***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsantfffss(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffssex.f
****************************************************
*** subroutine dsantfffssex
***
*** fermion + fermion -> scalar + scalar in
***
*** t-channel fermion exchange (index k)
***
*** label 3 & 4 exchanged compared to tfffss
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsantfffssex(p,costheta,kp1,kp2,kpk,kp3,kp4)

6.2. ROUTINE HEADERS – FORTRAN FILES

dsantfffssin.f
****************************************************
*** subroutine dsantfffssin
***
*** fermion + fermion -> scalar + scalar in
***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** both fermion arrows point inwards
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsantfffssin(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffsv.f
****************************************************
*** subroutine dsantfffsv
***
*** fermion + fermion -> scalar + gauge boson in ***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsantfffsv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffsvin.f
****************************************************
*** subroutine dsantfffsvin
***
*** fermion + fermion -> scalar + gauge boson in ***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** both fermion arrows point inwards
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsantfffsvin(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffvs.f
****************************************************
*** subroutine dsantfffvs
***
*** fermion + fermion -> scalar + gauge boson in ***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***

67

68

CHAPTER 6. ANSTU: T , U AND S DIAGRAMS FOR F F -ANNIHILATION

****************************************************
subroutine dsantfffvs(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffvsex.f
****************************************************
*** subroutine dsantfffvsex
***
*** fermion + fermion -> gauge boson + scalar in ***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** label 3 & 4 exchanged compared to tfffsv
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsantfffvsex(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffvv.f
*********************************************************
*** subroutine dsantfffvv
***
*** fermion + fermion -> gauge boson + gauge boson in ***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************
subroutine dsantfffvv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffvvex.f
*********************************************************
*** subroutine dsantfffvvex
***
*** fermion + fermion -> gauge boson + gauge boson in ***
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** label 3 & 4 exchanged compared to tfffvv
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************
subroutine dsantfffvvex(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantfffvvin.f
*********************************************************
*** subroutine dsantfffvvin
***
*** fermion + fermion -> gauge boson + gauge boson in ***

6.2. ROUTINE HEADERS – FORTRAN FILES
*** t-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** both fermion arrows point inwards
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************
subroutine dsantfffvvin(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsantffsff.f
****************************************************
*** subroutine dsantffsff
***
*** fermion + fermion -> fermion + fermion in
***
*** t-channel scalar exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsantffsff(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanufffss.f
****************************************************
*** subroutine dsanufffss
***
*** fermion + fermion -> scalar + scalar in
***
*** u-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsanufffss(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanufffssin.f
****************************************************
*** subroutine dsanufffssin
***
*** fermion + fermion -> scalar + scalar in
***
*** u-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** both fermion arrows point inwards
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsanufffssin(p,costheta,kp1,kp2,kpk,kp3,kp4)

69

70

CHAPTER 6. ANSTU: T , U AND S DIAGRAMS FOR F F -ANNIHILATION

dsanufffsv.f
****************************************************
*** subroutine dsanufffsv
***
*** fermion + fermion -> scalar + gauge boson in ***
*** u-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsanufffsv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanufffsvin.f
****************************************************
*** subroutine dsanufffsvin
***
*** fermion + fermion -> scalar + gauge boson in ***
*** u-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** both fermion arrows point inwards
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsanufffsvin(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanufffvs.f
****************************************************
*** subroutine dsanufffvs
***
*** fermion + fermion -> scalar + gauge boson in ***
*** u-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsanufffvs(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanufffvv.f
*********************************************************
*** subroutine dsanufffvv
***
*** fermion + fermion -> gauge boson + gauge boson in ***
*** u-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************

6.2. ROUTINE HEADERS – FORTRAN FILES

subroutine dsanufffvv(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanufffvvex.f
*********************************************************
*** subroutine dsanufffvvex
***
*** fermion + fermion -> gauge boson + gauge boson in ***
*** u-channel fermion exchange (index k)
***
*** label 3 & 4 exchanged compared to ufffvv
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************
subroutine dsanufffvvex(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanufffvvin.f
*********************************************************
*** subroutine dsanufffvvin
***
*** fermion + fermion -> gauge boson + gauge boson in ***
*** u-channel fermion exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate
***
*** both fermion arrows point inwards
***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
*********************************************************
subroutine dsanufffvvin(p,costheta,kp1,kp2,kpk,kp3,kp4)

dsanuffsff.f
****************************************************
*** subroutine dsanuffsff
***
*** fermion + fermion -> fermion + fermion in
***
*** u-channel scalar exchange (index k)
***
*** 1 - arrow in, 2 - arrow out, k intermediate ***
*** this code is computer generated by reduce
***
*** and gentran.
***
*** author: joakim edsjo, edsjo@physto.se
***
****************************************************
subroutine dsanuffsff(p,costheta,kp1,kp2,kpk,kp3,kp4)

71

72

CHAPTER 6. ANSTU: T , U AND S DIAGRAMS FOR F F -ANNIHILATION

Chapter 7

src/as:
Annihilation cross sections (with
sfermions)
7.1

Annihilation cross sections with sfermions – general

In this directory, all the (co)annihilation cross sections involving one or more sfermions in the initial
state are calculated. The code here is based upon the work described in [177]. All the cross sections
are calculated with Form and converted to Fortran with a script form2f [173].
The main routines here are
Routine
Purpose
dsasdwdcossfsf
Calculates the invariant annihilation rate between two sfermions in the initial
state.
dsasdwdcossfchi Calculates the invariant annihilation rate between one sfermion and one fermion
(neutralino or chargino) in the iniital state.

7.2

Routine headers – fortran files

dsaschicasea.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.34, October 8, 2001, edsjo@physto.se)
c....Template file for dsaschicasea begins here
**************************************************************
*** SUBROUTINE dsaschicasea
***
*** computes dW_{ij}/dcostheta
***
***
***
*** sfermion(i) + neutralino(j)/chargino^+(j)
***
*** -> gauge-boson + fermion
***
***
***
*** The sfermion must be the first mentioned
***
*** particle (kp1) and the neutralino/chargino
***
*** the other (kp2) -- not the opposite.
***
*** For the final state the gauge boson must be mentioned ***
73

74

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)

*** first (i.e. kp3) and next the fermion (kp4) -***
*** not the opposite.
***
***
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 01-10-05
***
*** QCD included: 02-03-21
***
*** comment added by Piero Ullio, 02-07-01
***
**************************************************************
*****
*****
*****
*****
*****

Note that it is assumed that coupling constants that do
not exist have already been set to zero!!!!!
Thus, many of the coefficients defined in this code
simplify when the diagrams contain sneutrinos
or neutrinos.
subroutine dsaschicasea(kp1,kp2,kp3,kp4,par)

dsaschicaseb.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.34, October 8, 2001, edsjo@physto.se)
c....Template file for dsaschicaseb begins here
**************************************************************
*** SUBROUTINE dsaschicaseb
***
*** computes dW_{ij}/dcostheta
***
***
***
*** anti-sfermion(i) + neutralino(j)/chargino^+(j)
***
*** -> gauge-boson + anti-fermion
***
***
***
*** The anti-sfermion must be the first mentioned
***
*** particle (kp1) and the neutralino/chargino
***
*** the other (kp2) -- not the opposite.
***
*** For the final state the gauge boson must be mentioned ***
*** first (i.e. kp3) and next the anti-fermion (kp4) -***
*** not the opposite.
***
***
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 01-10-03
***
*** QCD included: 02-03-21
***
*** comment added by Piero Ullio, 02-07-01
***
**************************************************************
*****
*****
*****
*****
*****

Note that it is assumed that coupling constants that do
not exist have already been set to zero!!!!!
Thus, many of the coefficients defined in this code
simplify when the diagrams contain sneutrinos
or neutrinos.
subroutine dsaschicaseb(kp1,kp2,kp3,kp4,par)

7.2. ROUTINE HEADERS – FORTRAN FILES

dsaschicasec.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.34, October 8, 2001, edsjo@physto.se)
c....Template file for dsaschicasec begins here
**************************************************************
*** SUBROUTINE dsaschicasec
***
*** computes dW_{ij}/dcostheta
***
***
***
*** sfermion(i) + neutralino(j)/chargino^+(j)
***
*** -> higgs-boson + fermion
***
***
***
*** The sfermion must be the first mentioned
***
*** particle (kp1) and the neutralino/chargino
***
*** the other (kp2) -- not the opposite.
***
*** For the final state the higgs boson must be mentioned ***
*** first (i.e. kp3) and next the fermion (kp4) -***
*** not the opposite.
***
***
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 01-10-10
***
*** Trivial color factors included: 02-03-21
***
**************************************************************
*****
*****
*****
*****
*****

Note that it is assumed that coupling constants that do
not exist have already been set to zero!!!!!
Thus, many of the coefficients defined in this code
simplify when the diagrams contain sneutrinos
or neutrinos.
subroutine dsaschicasec(kp1,kp2,kp3,kp4,par)

dsaschicased.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.34, October 8, 2001, edsjo@physto.se)
c....Template file for dsaschicased begins here
**************************************************************
*** SUBROUTINE dsaschicased
***
*** computes dW_{ij}/dcostheta
***
***
***
*** anti-sfermion(i) + neutralino(j)/chargino^+(j)
***
*** -> higgs-boson + anti-fermion
***
***
***
*** The anti-sfermion must be the first mentioned
***
*** particle (kp1) and the neutralino/chargino
***
*** the other (kp2) -- not the opposite.
***
*** For the final state the higgs boson must be mentioned ***
*** first (i.e. kp3) and next the anti-fermion (kp4) -***
*** not the opposite.
***

75

76

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)

***
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 01-10-11
***
*** Trivial color factors included: 02-03-21
***
**************************************************************
*****
*****
*****
*****
*****

Note that it is assumed that coupling constants that do
not exist have already been set to zero!!!!!
Thus, many of the coefficients defined in this code
simplify when the diagrams contain sneutrinos
or neutrinos.
subroutine dsaschicased(kp1,kp2,kp3,kp4,par)

dsaschizero.f
**************************************************************
*** SUBROUTINE dsaschizero
***
*** computes dW_{ij}/dcostheta
***
*** sfermion(i) + neutralino(j) -> gamma/gluon + fermion
***
*** ampl2 obtained with sum over physical polarizations
***
***
***
*** input askin variables: p12,costheta
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 02-06-13
***
**************************************************************
SUBROUTINE dsaschizero(kp1,kp2,kp3,kp4,result)

dsascolset.f
subroutine dsascolset(type)
No header found.

dsasdepro.f
**************************************************************
*** FUNCTION dsasdepro
***
*** computes the denominator of a propagator
***
***
***
*** input: mom2 is S,T,U;
***
*** kkpp is the number of the particle in the propagator
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-02-28
***
**************************************************************
complex*16 function dsasdepro(mom2,kkpp)

dsasdwdcossfchi.f
************************************************************************
*** SUBROUTINE dsasdwdcossfchi
***

7.2. ROUTINE HEADERS – FORTRAN FILES
*** computes dW_{ij}/dcostheta
***
*** for sfermion(1) + neutralino(2) (or chargino(2))
***
*** plus sfermion(1) + neutralino(2) (or chargino(2))
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-11-04
***
*** Modified: Joakim Edsjo, Mia Schelke
***
***
to include gluon final states, 2002-03-21
***
*** Modified: Piero Ullio
***
***
to switch to ampl2 with physical polarizations, 02-07-01
***
************************************************************************
real*8 function dsasdwdcossfchi(p,costhe,kp1,kp2)

dsasdwdcossfsf.f
************************************************************************
*** SUBROUTINE dsasdwdcossfsf
***
*** computes dW_{ij}/dcostheta
***
*** for sfermion(1) + antisfermion(2) plus sfermion(1) + sfermion(2) ***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-08-10
***
*** modified: Joakim Edsjo, Mia Schelke to include squarks with
***
***
gauge and Higgs boson final states and gluons
***
***
02-05-22
***
***
bug with switching of initial states fixed 020613 (edsjo)
***
*** modified: Piero Ullio
***
***
02-03-22
***
*** modified: Piero Ullio
***
***
02-07-01
***
************************************************************************
real*8 function dsasdwdcossfsf(p,costhe,kp1,kp2)

dsasfer.f
**************************************************************
*** SUBROUTINE dsasfer
***
*** computes dW_{ij}/dcostheta
***
*** sfermion(i) + antisfermion(j)
***
*** -> fermion(k1) + antifermion(k2)
***
*** version to be used if i or j has non-zero lepton #
***
***
***
*** input askin variables: p12,costheta
***
*** kpk1 and kpk2 are the fermion code
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-08-10
***
**************************************************************
SUBROUTINE dsasfer(kpi,kpj,kpk1,kpk2,result)

77

78

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)

dsasfercode.f
**************************************************************
*** SUBROUTINE dsasfercode
***
*** finds fermion kfer in a given family iifamv
***
*** chow variable equal to
***
*** ’same’ : routine returns fermion code for the
***
***
particles with the same iifamv
***
*** ’diff’ : routine returns fermion code for the
***
***
particles with the same iifamv+1 or iifamv-1 ***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-08-09
***
**************************************************************
subroutine dsasfercode(chow,iifamv,kfer)

dsasfercol.f
**************************************************************
*** SUBROUTINE dsasfercol
***
*** computes dW_{ij}/dcostheta
***
*** sfermion(i) + antisfermion(j)
***
*** -> fermion(k1) + antifermion(k2)
***
*** version to be used if i or j are both squarks
***
***
***
*** input askin variables: p12,costheta
***
*** kpk1 and kpk2 are the fermion code
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-08-10
***
**************************************************************
SUBROUTINE dsasfercol(kpi,kpj,kpk1,kpk2,result)

dsasfere.f
**************************************************************
*** SUBROUTINE dsasfere
***
*** computes dW_{ij}/dcostheta
***
*** sfermion(i) + sfermion(j)
***
*** -> fermion(k1) + fermion(k2)
***
*** version to be used if i or j has non-zero lepton #
***
***
***
*** input askin variables: p12,costheta
***
*** kpk1 and kpk2 are the fermion code
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-08-10
***
**************************************************************
SUBROUTINE dsasfere(kpi,kpj,kpk1,kpk2,result)

dsasferecol.f
**************************************************************

7.2. ROUTINE HEADERS – FORTRAN FILES
*** SUBROUTINE dsasferecol
***
*** computes dW_{ij}/dcostheta
***
*** sfermion(i) + sfermion(j)
***
*** -> fermion(k1) + fermion(k2)
***
*** version to be used if i or j are both squarks
***
***
***
*** input askin variables: p12,costheta
***
*** kpk1 and kpk2 are the fermion code
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-08-10
***
**************************************************************
SUBROUTINE dsasferecol(kpi,kpj,kpk1,kpk2,result)

dsasff.f
**************************************************************
*** SUBROUTINE dsasff
***
*** computes the amplitude squared of the process
***
*** scalar(1) + scalar(2) -> fermion(3) + fermion(4)
***
***
***
*** input:
***
*** asparmass, askin, askinder variables
***
*** complex vectors ASxpl(i), ASxpr(i), ASyl, ASyr
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-02-28
***
**************************************************************
SUBROUTINE dsasff(ampl2)

dsasffcol.f
**************************************************************
*** SUBROUTINE dsasffcol
***
*** computes the amplitude squared of the process
***
*** scalar(1) + scalar(2) -> fermion(3) + fermion(4)
***
***
***
*** input:
***
*** asparmass, askin, askinder variables
***
*** complex vectors:
***
***
ASxplc(j,i), ASxprc(j,i), ASylc(j), ASyrc(j)
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-02-28
***
**************************************************************

SUBROUTINE dsasffcol(ampl2)

dsasgbgb.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.35, May 23, 2002, edsjo@physto.se)
c....Template file for dsasgbgb begins here

79

80

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)

**************************************************************
*** SUBROUTINE dsasgbgb
***
*** computes dW_{ij}/dcostheta
***
***
***
*** sfermion(i) + anti-sfermion(j)
***
*** -> MASSIVE gauge-boson + MASSIVE gauge-boson
***
***
***
*** for one massive and one massless gb use dsasgbgb1exp
***
*** for two massless gb use code dsasgbgb2exp
***
***
***
*** The first mentioned particle (kp1) will be taken as
***
*** a sfermion and the second particle (kp2) as an
***
*** anti-sfermion -- not the opposite.
***
***
***
*** When kp1 and kp2 have different
***
*** weak isospin (T^3=+,-1/2), then kp1 must be an
***
*** up-type-sfermion and kp2 a down-type-anti-sfermion.
***
***
***
*** When one gauge boson have electric charge while the
***
*** other is neutral, then the charged one must be
***
*** mentioned first (kp3) and then the neutral one (kp4)
***
*** -- not the opposite.
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 01-10-23 rewritten:02-03-12
***
*** QCD included: 02-03-20
***
*** Ghost term excluded: 02-05-22
***
*** rewritten: 02-07-04 (now only massive gb)
***
*** added flavour changing charged exchange for W^-W^+:
***
*** added by Mia Schelke 2005-06-14
***
*** terms rearranged by Paolo Gondolo, 2005-06
***
**************************************************************
subroutine dsasgbgb(kp1,kp2,kp3,kp4,par)

dsasgbgb1exp.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.35, May 23, 2002, edsjo@physto.se)
c....Template file for dsasgbgb1exp begins here
**************************************************************
*** SUBROUTINE dsasgbgb1exp
***
*** computes dW_{ij}/dcostheta
***
***
***
*** sfermion(i) + anti-sfermion(j)
***
*** -> massive gauge-boson + massless gauge-boson
***
***
***
***
***
*** The first mentioned particle (kp1) will be taken as
***
*** a sfermion and the second particle (kp2) as an
***

7.2. ROUTINE HEADERS – FORTRAN FILES
*** anti-sfermion -- not the opposite.
***
***
***
*** When kp1 and kp2 have different
***
*** weak isospin (T^3=+,-1/2), then kp1 must be an
***
*** up-type-sfermion and kp2 a down-type-anti-sfermion.
***
***
***
*** NOTE: for the gauge bosons, the MASSIVE must be
***
*** mentioned first (kp3) and then the MASSLESS one (kp4) ***
*** -- not the opposite.
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 01-10-23 rewritten:02-03-12
***
*** QCD included: 02-03-20
***
*** rewritten: 02-07-04 (to have exactly one massless gb) ***
*** explicite pol. vectors introduced: 02-07-05
***
*** sum over massless pol. moved from
***
*** fortran to form: 02-07-09
***
***
***
**************************************************************
subroutine dsasgbgb1exp(kp1,kp2,kp3,kp4,par)

dsasgbgb2exp.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.35, May 23, 2002, edsjo@physto.se)
c....Template file for dsasgbgb2exp begins here
**************************************************************
*** SUBROUTINE dsasgbgb2exp
***
*** computes dW_{ij}/dcostheta
***
***
***
*** sfermion(i) + anti-sfermion(j)
***
*** -> gluon+gluon, photon+photon, photon+gluon
***
***
***
*** The first mentioned particle (kp1) will be taken as
***
*** a sfermion and the second particle (kp2) as an
***
*** anti-sfermion -- not the opposite.
***
***
***
***
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 02-05-21
***
*** Rewritten: 02-07-03 (to have exactly two massless gb) ***
*** explicite pol. vectors introduced: 02-07-08
***
*** sum over pol. moved from fortran to form: 02-07-09
***
*** two colour factors(c.f.) made complex: 02-07-10
***
***(+these c.f. changed for g+g as ggg vertex code changed)***
***
***
**************************************************************
subroutine dsasgbgb2exp(kp1,kp2,kp3,kp4,par)

81

82

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)

dsasgbhb.f
**************************************************************
*** SUBROUTINE dsasgbhb
***
*** computes dW_{ij}/dcostheta
***
*** up-sfermion(i) + down-antisfermion(j) ->
***
***
gauge boson + Higgs boson
***
*** ampl2 obtained summing over physical polarizations
***
***
***
*** input askin variables: p12,costheta
***
***
iifam(1),iifam(2),mass1,mass2
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 02-06-13
***
*** This routine has been compared with the routine of
***
*** Mia Schelke and the agreement is perfect, except in
***
*** the low-p limit (due to widths in propagators)
***
*** as expected.
***
*** added flavour changing charged exchange for W^-H^+:
***
*** added by Mia Schelke 2006-06-07
***
**************************************************************
SUBROUTINE dsasgbhb(kp1,kp2,kp3,kp4,result)

dsashbhb.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.35, May 23, 2002, edsjo@physto.se)
c....Template file for dsashbhb begins here
**************************************************************
*** SUBROUTINE dsashbhb
***
*** computes dW_{ij}/dcostheta
***
***
***
*** sfermion(i) + anti-sfermion(j)
***
*** -> higgs-boson + higgs-boson
***
***
***
*** The first mentioned particle (kp1) will be taken as
***
*** a sfermion and the second particle (kp2) as an
***
*** anti-sfermion -- not the opposite.
***
***
***
*** When kp1 and kp2 have different
***
*** weak isospin (T^3=+,-1/2), then kp1 must be an
***
*** up-type-sfermion and kp2 a down-type-anti-sfermion.
***
***
***
*** For the cases with one charged and one neutral higgs
***
*** in the final state, the charged higgs must be
***
*** mentioned first (i.e. kp3) and next the neutral
***
*** higgs-boson (kp4) -- not the opposite.
***
***
***
***
***
*** Author:Mia Schelke, schelke@physto.se
***
*** Date: 01-10-19
***
*** Rewritten: 02-07-03 (because FORM input file now
***

7.2. ROUTINE HEADERS – FORTRAN FILES
*** only gives the amplitude)
***
*** added flavour changing charged exchange for H^+H^-:
***
*** added by Mia Schelke 2006-06-08
***
**************************************************************
***
***
*** NOTE: The FORM input file only gives the amplitude
***
***
not the amplitude squared
***
*** THE FOLLOWING THEREFORE HAS TO BE CHANGED BY HAND
***
*** after running of the PERL script
***
***
***
*** the form result should be denoted amplitude instead
***
*** of dsashbhbas
***
*** the amplitude squared calculation should be added
***
*** -- the lines are written in the end of
***
*** the template file
***
**************************************************************

subroutine dsashbhb(kp1,kp2,kp3,kp4,par)

dsaskinset.f
**************************************************************
*** subroutine dsaskinset
***
*** set askinder variables: the kinematic variables and
***
*** the scalar products of the four vectors
***
*** p(1), p(2), k(3) and k(4) related by
***
*** p(1) + p(2) = k(3) + k(4)
***
*** in the center of mass frame
***
*** input: asparmass, askin variables
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-02-28
***
**************************************************************
subroutine dsaskinset

dsaskinset1.f
**************************************************************
*** subroutine dsaskinset1
***
*** sets: ep1, ep2, and Svar
***
*** input: mass1, mass2, p12
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-02-28
***
**************************************************************
subroutine dsaskinset1

83

84

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)

dsaskinset2.f
**************************************************************
*** subroutine dsaskinset2
***
*** sets: k34, ek3, ek4, Tvar, Uvar
***
*** you must call dsaskinset1 before calling dsaskinset2
***
*** input: mass3, mass4, costheta
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-02-28
***
**************************************************************
subroutine dsaskinset2

dsaskinset3.f
**************************************************************
*** subroutine dsaskinset3
***
*** sets the scalar products of the four vectors
***
*** p(1), p(2), k(3) and k(4) related by
***
*** p(1) + p(2) = k(3) + k(4)
***
*** in the center of mass frame
***
*** you must call dsaskinset1 and dsaskinset2
***
*** before calling dsaskinset3
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-02-28
***
**************************************************************
subroutine dsaskinset3

dsasphghb.f
c...This subroutine is automatically generated from form output by
c...parsing it through form2f (version 1.35, May 23, 2002, edsjo@physto.se)
c....Template file for dsasphghb begins here
subroutine dsasphghb(kp1,kp2,kp3,kp4,par)

dsasscscsSHffb.f
**************************************************************
*** SUBROUTINE dsasscscsSHffb
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar*(2) -> fermion(3) + fermionbar(4)
***
*** for a Higgs boson in the S channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscsSHffb(kp1,kp2,kp3,kp4,kph)

7.2. ROUTINE HEADERS – FORTRAN FILES

dsasscscsSHffbcol.f
**************************************************************
*** SUBROUTINE dsasscscsSHffbcol
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar*(2) -> fermion(3) + fermionbar(4)
***
*** for a Higgs boson in the S channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscsSHffbcol(kp1,kp2,kp3,kp4,kph)

dsasscscsSVffb.f
**************************************************************
*** SUBROUTINE dsasscscsSVffb
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar*(2) -> fermion(3) + fermionbar(4)
***
*** for a vector boson in the S channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscsSVffb(kp1,kp2,kp3,kp4,kpv)

dsasscscsSVffbcol.f
**************************************************************
*** SUBROUTINE dsasscscsSVffbcol
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar*(2) -> fermion(3) + fermionbar(4)
***
*** for a vector boson in the S channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscsSVffbcol(kp1,kp2,kp3,kp4,kpv)

dsasscscsTCffb.f
**************************************************************
*** SUBROUTINE dsasscscsTCffb
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar*(2) -> fermion(3) + fermionbar(4)
***
*** for a neutralino or chargino in the T channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************

85

86

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)
SUBROUTINE dsasscscsTCffb(kp1,kp2,kp3,kp4,kpchi)

dsasscscsTCffbcol.f
**************************************************************
*** SUBROUTINE dsasscscsTCffbcol
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar*(2) -> fermion(3) + fermionbar(4)
***
*** for a neutralino or chargino in the T channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscsTCffbcol(kp1,kp2,kp3,kp4,kpchi)

dsasscscTCff.f
**************************************************************
*** SUBROUTINE dsasscscTCff
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar(2) -> fermion(3) + fermion(4)
***
*** for a neutralino or chargino in the T channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscTCff(kp1,kp2,kp3,kp4,kpchi)

dsasscscTCffcol.f
**************************************************************
*** SUBROUTINE dsasscscTCffcol
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar(2) -> fermion(3) + fermion(4)
***
*** for a neutralino or chargino in the T channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscTCffcol(kp1,kp2,kp3,kp4,kpchi)

dsasscscUCff.f
**************************************************************
*** SUBROUTINE dsasscscTCff
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar(2) -> fermion(3) + fermion(4)
***
*** for a neutralino or chargino in the U channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***

7.2. ROUTINE HEADERS – FORTRAN FILES
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscUCff(kp1,kp2,kp3,kp4,kpchi)

dsasscscUCffcol.f
**************************************************************
*** SUBROUTINE dsasscscTCffcol
***
*** computes ASx and ASy coefficients for
***
*** scalar(1) + scalar(2) -> fermion(3) + fermion(4)
***
*** for a neutralino or chargino in the U channel
***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-03-03
***
**************************************************************
SUBROUTINE dsasscscUCffcol(kp1,kp2,kp3,kp4,kpchi)

dsassfercode.f
**************************************************************
*** SUBROUTINE dsassfercode
***
*** finds sfermions ksfer1,ksfer2 in a given family iifamv ***
*** chow variable equal to
***
*** ’same’ : routine returns sfermion code for the
***
***
particles with the same iifamv
***
*** ’diff’ : routine returns sfermion code for the
***
***
particles with the same iifamv+1 or iifamv-1 ***
***
***
*** AUTHOR: Piero Ullio, ullio@sissa.it
***
*** Date: 01-08-09
***
**************************************************************
subroutine dsassfercode(chow,iifamv,ksfer1,ksfer2)

dsaswcomp.f
subroutine dsaswcomp(p,costheta,kp1,kp2,dwbsmax,dmbsmax)
c_______________________________________________________________________
c Routine to compare annihilation cross sections to find
c out how big they are
c
p - initial cm momentum (real) for lsp annihilations
c
costheta - cosine of c.m. annihilation angle
c common:
c
’dssusy.h’ - file with susy common blocks
c uses dsandwdcosnn, dsandwdcoscn and dsandwdcoscc
c author: joakim edsjo (edsjo@physto.se)
c date: 02-05-23
c modified: Joakim Edsjo, 02-10-22
c=======================================================================

87

88

CHAPTER 7. AS: ANNIHILATION CROSS SECTIONS (WITH SFERMIONS)

Chapter 8

src/bsg:
b → sγ
8.1

b → sγ – theory

The rare decay b → sγ can have large contributions from loops of suersymmetric particles and
one therefore has to check that a particular supersymmetric model does not violate the observed
branching ratio for b decay to sγ. In DarkSUSY we have several expressions for calculations of the
b → sγ decay. In ac/, some older obsolte expressions are found (kept only for historical reasons).
In this directory, bsg/, we have our best implementation of the b → sγ decay.
Our estimate of this process includes the complete next-to-leading order (NLO) correction for
the SM contribution and the dominant NLO corrections for the SUSY term. The NLO QCD SM
calculation is performed following the analysis in Ref. [178], modified according to [179], and gives a
branching ratio BR[B → Xs γ] = 3.72 × 10−4 for a photon energy greater than mb /20. In the SUSY
contribution, we include the NLO contributions in the two Higgs doublet model, following [180], and
the corrections due to SUSY particles. The latter are calculated under the assumption of minimal
flavour violation, with the dominant LO contributions from Ref. [181], and with the NLO QCD term
with expressions of [182] modified in the large tan β regime according to [181]. In the mSUGRA
framework (see, e.g., [183]), the largest discrepancy between the LO and the NLO SUSY corrections
are found for signµ > 0, large tan β and low values of m1/2 : in this case the SUSY contribution
to the decay rate is negative, and the discrimination of models based on the NLO analysis is less
restrictive than the one in the LO analysis. We will assume as allowed range of branching ratios
2.0 × 10−4 ≤ BR[B → Xs γ] ≤ 4.6 × 10−4 , which is obtained adding a theoretical uncertainty of
±0.5 × 10−4 to the experimental value quoted by the Particle Data Group 2002 [184].

8.2

b → sγ – routines

The main routine is dsbsgammafull which returns the b → sγ branching ratio. The routine can
calculate either only the standard model contribution or also include the SUSY contribution (which
is of course the default when this routine is called from dsacbnd). The reaming (large) set or
routines are the various contributions to the decay as given in the references listed above.
89

CHAPTER 8. BSG: B → Sγ

90

8.3

Routine headers – fortran files

dsbsgalpha3.f
function dsbsgalpha3(m)
***********************************************************************
* The coupling constant alpha_3 evaluated at the scale m
*
* using nf effective quark flavours (usually taken to be nf=5)
*
* Uses eq. (42) of Ciuchini et al. hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* Note: This routines is strictly speaking only valid for mass scales *
* between mb and mt where nf=5 should be used.
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsbsgalpha3int.f
function dsbsgalpha3int(al,mstart,m,nf)
***********************************************************************
* The coupling constant alpha_3 evaluated at the scale m
*
* given the value at a given scale mstart. nf effective quark flavours*
* are used in the running (if nf=7, 6 quark flavours and one squark
*
* flavor are used)
*
* Uses eq. (42) of Ciuchini et al. hep-ph/9710335
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsbsgammafull.f
subroutine dsbsgammafull(ratio,flag)
***********************************************************************
* Routine that calculates the b-->s+gamma branching rate
*
* The Standard Model contribution is taken from
*
* Gambino and Misiak,Nucl. Phys. B611 (2001) 338
*
* with new ’magic numbers’ from Buras et al., hep-ph/0203135
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
* Output: ratio = BR(b -> s gamma)
*
* author:Mia Schelke, schelke@physto.se, 2003-03-27
*
***********************************************************************

dsbsgat0.f
function dsbsgat0(x,flag)
***********************************************************************
* Function A^t_0(x) in (2.7) of Gambino and Misiak,
*

8.3. ROUTINE HEADERS – FORTRAN FILES
* Nucl. Phys. B611 (2001) 338
*
* x must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-12
*
* updated by Mia Schelke 2003-04-10 to include the susy contribution *
* as explained in eq. (5.1)
*
* (the references used for the susy contributions can be found in
*
* the different fortran codes)
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
***********************************************************************

dsbsgat1.f
function dsbsgat1(x,flag)
***********************************************************************
* Function A^t_1(x) p. 11 in Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* x must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-13
*
* updated by Mia Schelke 2003-04-10 to include the susy contribution *
* as explained in eq. (5.1)
*
* (the references used for the susy contributions can be found in
*
* the different fortran codes)
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
***********************************************************************

dsbsgbofe.f
function dsbsgbofe(flag)
c
program dsacbofe
***********************************************************************
* Program that calculates B(E_0) in (E.1) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* for the calculation of b --> s gamma
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
* author:Mia Schelke, schelke@physto.se, 2003-03-12
*
***********************************************************************

dsbsgc41h2.f
function dsbsgc41h2()
***********************************************************************
* The next to leading order contribution to the Wilson coefficient C_4*
* from the two-Higgs doublet model
*

91

CHAPTER 8. BSG: B → Sγ

92

* Eq. (58) of Ciuchini et al.,
*
* hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgc41susy.f
function dsbsgc41susy()
***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_4 from susy
*
* Eq (10) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgc70h2.f
function dsbsgc70h2()
***********************************************************************
* The leading order contribution to the Wilson coefficient C_7
*
* from the two-Higgs doublet model
*
* Eq. (53) of Ciuchini et al.,
*
* hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgc70susy.f
function dsbsgc70susy()
***********************************************************************
* The leading order contribution to the Wilson coefficient C_7
*
* from susy
*
* Eq (31) of Degrassi et al.,
*
* hep-ph/0009337
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-04
*
***********************************************************************

dsbsgc71chisusy.f
function dsbsgc71chisusy()

8.3. ROUTINE HEADERS – FORTRAN FILES

***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_7 from chargino (susy)
*
* Eq (13) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgc71h2.f
function dsbsgc71h2() ! (muw)
***********************************************************************
* The next to leading order contribution to the Wilson coefficient C_7*
* from the two-Higgs doublet model
*
* Eq. (59) of Ciuchini et al.,
*
* hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* The input parameter muw=\mu_W is the matching scale
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgc71phi1susy.f
function dsbsgc71phi1susy()
***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_7 from the susy renormalization effect in *
* the charged scalar,\phi_1, coupling
*
* Eq (25) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgc71phi2susy.f
function dsbsgc71phi2susy()
***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_7 from the susy renormalization effect in *
* the unphysical charged scalar,\phi_2, coupling
*
* Eq (26) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*

93

CHAPTER 8. BSG: B → Sγ

94

* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgc71wsusy.f
function dsbsgc71wsusy()
***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_7 from the susy renormalization effect in *
* the W coupling
*
* Eq (23) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgc80h2.f
function dsbsgc80h2()
***********************************************************************
* The leading order contribution to the Wilson coefficient C_8
*
* from the two-Higgs doublet model
*
* Eq. (53) of Ciuchini et al.,
*
* hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgc80susy.f
function dsbsgc80susy()
***********************************************************************
* The leading order contribution to the Wilson coefficient C_8
*
* from susy
*
* Eq (31) of Degrassi et al., hep-ph/0009337
*
* Differs from dsbsgc70susy only by a few changes described p.11
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-04
*
***********************************************************************

dsbsgc81chisusy.f
function dsbsgc81chisusy()
***********************************************************************

8.3. ROUTINE HEADERS – FORTRAN FILES
* The next to leading order contribution to
*
* the Wilson coefficient C_8 from chargino (susy)
*
* Eq (14) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgc81h2.f
function dsbsgc81h2() ! (muw)
***********************************************************************
* The next to leading order contribution to the Wilson coefficient C_8*
* from the two-Higgs doublet model
*
* Eq. (59) of Ciuchini et al.,
*
* hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* The input parameter muw=\mu_W is the matching scale
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgc81phi1susy.f
function dsbsgc81phi1susy()
***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_8 from the susy renormalization effect in *
* the charged scalar,\phi_1, coupling
*
* Eq (25) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgc81phi2susy.f
function dsbsgc81phi2susy()
***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_8 from the susy renormalization effect in *
* the unphysical charged scalar,\phi_2, coupling
*
* Eq (26) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

95

CHAPTER 8. BSG: B → Sγ

96

dsbsgc81wsusy.f
function dsbsgc81wsusy()
***********************************************************************
* The next to leading order contribution to
*
* the Wilson coefficient C_8 from the susy renormalization effect in *
* the W coupling
*
* Eq (24) of Ciuchini et al.,
*
* hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgckm.f
function dsbsgckm()
***********************************************************************
* The ratio,|V_ts^* V_tb/V_cb|^2, of ckm elements
*
* with susy corrections
*
* Eq (34) of Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-22
*
***********************************************************************

dsbsgd1td.f
function dsbsgd1td(x1)
***********************************************************************
* Function \Delta^(1)_{t,d}(x_1) in app A p. 17 of
*
* Ciuchini et al., hep-ph/9806308
*
* x1 must be a positive number
*
* x1=m^2(sq_1 of flavour d)/m^2(kgluin)
*
* Note that this function can also be used for \Delta^(1)_d(x_2)
*
* but in that case x1 should be identified with
*
* x2=m^2(sq_2 of flavour d)/m^2(kgluin)
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgd2d.f
function dsbsgd2d()
***********************************************************************

8.3. ROUTINE HEADERS – FORTRAN FILES
* Function \Delta^(2)_d (with d=b) in app A p. 17 of
*
* Ciuchini et al., hep-ph/9806308
*
* Note that we have inserted d=b
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgd2td.f
function dsbsgd2td(famd)
***********************************************************************
* Function \Delta^(2)_{t,d} in app A p. 17 of
*
* Ciuchini et al., hep-ph/9806308
*
* The input parameter famd is the family of the down sector
*
* it should be 1 for the first family, 2 for the 2nd and 3 for the 3rd*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgd7chi1.f
function dsbsgd7chi1(x)
***********************************************************************
* Function \Delta_7^{\chi,1} eq (20) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgd7chi2.f
function dsbsgd7chi2(x)
***********************************************************************
* Function \Delta_7^{\chi,2} eq (20) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgd7h.f
function dsbsgd7h(y)
***********************************************************************
* Function \Delta_7^H(y) in (61) of Ciuchini et al.,
*

97

CHAPTER 8. BSG: B → Sγ

98

* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgd8chi1.f
function dsbsgd8chi1(x)
***********************************************************************
* Function \Delta_8^{\chi,1} eq (21) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgd8chi2.f
function dsbsgd8chi2(x)
***********************************************************************
* Function \Delta_8^{\chi,2} eq (21) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgd8h.f
function dsbsgd8h(y)
***********************************************************************
* Function \Delta_8^H(y) in (63) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgeb.f
function dsbsgeb()
***********************************************************************
* Function \epsilon_b in (10) of Degrassi et al.,
*
* hep-ph/0009337
*
* for the calculation of b --> s gamma
*

8.3. ROUTINE HEADERS – FORTRAN FILES
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsbsgechi.f
function dsbsgechi(y)
***********************************************************************
* Function E_\chi(y) in (11) of Ciuchini et al.,
*
* hep-ph/9806308
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-04
*
***********************************************************************

dsbsgeh.f
function dsbsgeh(y)
***********************************************************************
* Function E^H(y) in (64) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsget0.f
function dsbsget0(x,flag)
***********************************************************************
* Function E^t_0(x) p. 11 in Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* x must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-13
*
* updated by Mia Schelke 2003-04-10 to include the susy contribution *
* as explained in eq. (5.1)
*
* (the references used for the susy contributions can be found in
*
* the different fortran codes)
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
***********************************************************************

dsbsgf71.f
function dsbsgf71(y)

99

CHAPTER 8. BSG: B → Sγ

100

***********************************************************************
* Function F_7^(1)(y) in (29) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgf72.f
function dsbsgf72(y)
***********************************************************************
* Function F_7^(2)(y) in (54) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgf73.f
function dsbsgf73(y)
***********************************************************************
* Function F_7^(3)(y) in (21) of Degrassi et al.,
*
* hep-ph/0009337
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsbsgf81.f
function dsbsgf81(y)
***********************************************************************
* Function F_8^(1)(y) in (30) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgf82.f
function dsbsgf82(y)

8.3. ROUTINE HEADERS – FORTRAN FILES

***********************************************************************
* Function F_8^(2)(y) in (55) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgf83.f
function dsbsgf83(y)
***********************************************************************
* Function F_8^(3)(y) in (22) of Degrassi et al.,
*
* hep-ph/0009337
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsbsgft0.f
function dsbsgft0(x,flag)
***********************************************************************
* Function F^t_0(x) in (2.7) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* x must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-12
*
* updated by Mia Schelke 2003-04-10 to include the susy contribution *
* as explained in eq. (5.1)
*
* (the references used for the susy contributions can be found in
*
* the different fortran codes)
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
***********************************************************************

dsbsgft1.f
function dsbsgft1(x,flag)
***********************************************************************
* Function F^t_1(x) p. 11 in Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* x must be a positive number
*
* for the calculation of b --> s gamma
*

101

CHAPTER 8. BSG: B → Sγ

102

* author:Mia Schelke, schelke@physto.se, 2003-03-13
*
* updated by Mia Schelke 2003-04-10 to include the susy contribution *
* as explained in eq. (5.1)
*
* (the references used for the susy contributions can be found in
*
* the different fortran codes)
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
***********************************************************************

dsbsgfxy.f
function dsbsgfxy(x,y)
***********************************************************************
* Function F’(x,y) in app. B p. 18 of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-22
*
***********************************************************************

dsbsgg.f
function dsbsgg(t)
***********************************************************************
* Function G(t) in (E.8) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* t must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-05
*
***********************************************************************

dsbsgg7chi2.f
function dsbsgg7chi2(x)
***********************************************************************
* Function G^{chi,2}_7(x) in eq. (16) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgg7chij1.f
function dsbsgg7chij1(x,j)

8.3. ROUTINE HEADERS – FORTRAN FILES
***********************************************************************
* Function G^{chi,1}_7(x) in eq. (15) of
*
* Ciuchini et al., hep-ph/9806308
*
* The expression has been extended to large tanbe, by replacing
*
* ln(m^2(kgluin)/m^2(\chi_j)) by ln((mu_w)^2)/m^2(\chi_j))
*
* as explained in Degrassi et al., hep-ph/0009337 p.11
*
* The input, j, is the nb of the chargino, it must be 1 or 2
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgg7h.f
function dsbsgg7h(y)
***********************************************************************
* Function G_7^H(y) in (60) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgg7w.f
function dsbsgg7w(x)
***********************************************************************
* Function G^W_7(x) in eq. (27) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgg8chi2.f
function dsbsgg8chi2(x)
***********************************************************************
* Function G^{chi,2}_8(x) in eq. (18) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgg8chij1.f
function dsbsgg8chij1(x,j)

103

CHAPTER 8. BSG: B → Sγ

104

***********************************************************************
* Function G^{chi,1}_8(x) in eq. (17) of
*
* Ciuchini et al., hep-ph/9806308
*
* The expression has been extended to large tanbe, by replacing
*
* ln(m^2(kgluin)/m^2(\chi_j)) by ln((mu_w)^2)/m^2(\chi_j))
*
* as explained in Degrassi et al., hep-ph/0009337 p.11
*
* The input, j, is the nb of the chargino, it must be 1 or 2
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgg8h.f
function dsbsgg8h(y)
***********************************************************************
* Function G_8^H(y) in (62) of Ciuchini et al.,
*
* hep-ph/9710335
*
* y must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-31
*
***********************************************************************

dsbsgg8w.f
function dsbsgg8w(x)
***********************************************************************
* Function G^W_8(x) in eq. (27) of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsggxy.f
function dsbsggxy(x,y)
***********************************************************************
* Function G’(x,y) in app. B p. 18 of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-22
*
***********************************************************************

8.3. ROUTINE HEADERS – FORTRAN FILES

dsbsgh1x.f
function dsbsgh1x(x)
***********************************************************************
* Function H_1(x) in app A p. 16 of Ciuchini et al., hep-ph/9806308
*
* x must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgh2xy.f
function dsbsgh2xy(x,y)
***********************************************************************
* Function H_2(x,y) in (12) of Degrassi et al.,
*
* hep-ph/0009337
*
* x and y must be positive numbers
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsbsgh3x.f
function dsbsgh3x(x)
***********************************************************************
* Function H_3(x) in app A p. 17 of Ciuchini et al., hep-ph/9806308
*
* x must be a positive number
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsghd.f
function dsbsghd()
***********************************************************************
* Function H_d (with d=b) in app A p. 16 of
*
* Ciuchini et al., hep-ph/9806308
*
* Note that we have inserted d=b
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

105

CHAPTER 8. BSG: B → Sγ

106

dsbsghtd.f
function dsbsghtd(famd)
***********************************************************************
* Function H_t^d in app A p. 16 of
*
* Ciuchini et al., hep-ph/9806308
*
* The input parameter famd is the family of the down sector
*
* it should be 1 for the first family, 2 for the 2nd and 3 for the 3rd*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgkc.f
function dsbsgkc()
***********************************************************************
* Program that calculates K_c in (3.7) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-25
*
***********************************************************************

dsbsgkt.f
function dsbsgkt(flag)
c
program dsackt
***********************************************************************
* Program that calculates K_t in (3.8) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* for the calculation of b --> s gamma
*
* Input: flag: 0 = only standard model
*
*
1 = standard model plus SUSY corrections
*
* author:Mia Schelke, schelke@physto.se, 2003-03-24
*
***********************************************************************

dsbsgmtmuw.f
function dsbsgmtmuw(m)
***********************************************************************
* The running top mass evaluated at a weak scale m=mu_w
*
* using nf effective quark flavours (taken to be nf=5 here)
*
* Uses eq. (32) of Ciuchini et al. hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

8.3. ROUTINE HEADERS – FORTRAN FILES

dsbsgmtmuwint.f
function dsbsgmtmuwint(mtstart,mstart,m,nf)
***********************************************************************
* The running top mass from value mtstart at scale mstart.
*
* The running is done with nf effective active quark flavours.
*
* Uses eq. (32) of Ciuchini et al. hep-ph/9710335
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsbsgri.f
function dsbsgri(famd)
***********************************************************************
* Function R_i in eq. (19) of
*
* Ciuchini et al., hep-ph/9806308
*
* The expression has been extended to large tanbe, by dropping
*
* ln((mu_w)^2)/m^2(kgluin))
*
* as explained in Degrassi et al., hep-ph/0009337 p.11
*
* The input parameter famd is the family of the down sector
*
* it should be 1 for the first family, 2 for the 2nd and 3 for the 3rd*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-07
*
***********************************************************************

dsbsgud.f
function dsbsgud()
***********************************************************************
* Function U_d (with d=b) in app A p. 15-6 of
*
* Ciuchini et al., hep-ph/9806308
*
* Note that we have inserted d=b
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgutd.f
function dsbsgutd(famd)
***********************************************************************
* Function U_t^d in app A p. 16 of
*
* Ciuchini et al., hep-ph/9806308
*
* The input parameter famd is the family of the down sector
*
* it should be 1 for the first family, 2 for the 2nd and 3 for the 3rd*

107

CHAPTER 8. BSG: B → Sγ

108

* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgwud.f
function dsbsgwud(famu,famd)
***********************************************************************
* Function W_u^d in app A p. 15 of
*
* Ciuchini et al., hep-ph/9806308
*
* The input parameters famu and famd are the families of the up- and *
* down sector respectively, and they should be 1 for the first family,*
* 2 for the 2nd and 3 for the 3rd
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgwxy.f
function dsbsgwxy(x,y)
***********************************************************************
* Function W[x,y] in app. A p. 15 of
*
* Ciuchini et al., hep-ph/9806308
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-08
*
***********************************************************************

dsbsgyt.f
function dsbsgyt(m)
***********************************************************************
* Function that calculates y_t(m=mu_susy), the top Yukawa coupling
*
* at the scale m=mu_susy
*
* Note that m=mu_susy should be of the order of 1TeV, e.g. m_gluino
*
* Uses eq (23) of Degrassi et al., hep-ph/0009337
*
* Note that y_t(susy)=\tilde{y}_t(susy) (see text in the ref.)
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-04-03
*
***********************************************************************

dsphi22a.f
function dsphi22a(t)
***********************************************************************
* The first integrand of \phi_22 in (E.2) of Gambino and Misiak,
*

8.3. ROUTINE HEADERS – FORTRAN FILES
* Nucl. Phys. B611 (2001) 338
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-10
*
***********************************************************************

dsphi22b.f
function dsphi22b(t)
***********************************************************************
* The 2nd integrand of \phi_22 in (E.2) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-10
*
***********************************************************************

dsphi27a.f
function dsphi27a(t)
***********************************************************************
* The first integrand of \phi_27 in (E.3) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-10
*
***********************************************************************

dsphi27b.f
function dsphi27b(t)
***********************************************************************
* The 2nd integrand of \phi_27 in (E.3) of Gambino and Misiak,
*
* Nucl. Phys. B611 (2001) 338
*
* for the calculation of b --> s gamma
*
* author:Mia Schelke, schelke@physto.se, 2003-03-10
*
***********************************************************************

109

110

CHAPTER 8. BSG: B → Sγ

Chapter 9

src/db:
Anti-deuteron fluxes from the halo
9.1

Anti-deuteron fluxes from annihilation in the halo

The anti-deuteron fluxes are calculated here following the approach of [185]. This means that we
calculate the anti-deuteron fluxes based on a merging model of antiprotons and antineutrons in
quark jets. Apart from this, the anti-deuterons are propagated in the same way as antiprotons.

9.2

Routine headers – fortran files

dsdbsigmavdbar.f
real*8 function dsdbsigmavdbar(en)
c total inelastic cross section dbar + h
c Yad.Fiz.14:134-136,1971
c check Review of Particle Properties of 1992, rev [9] in DFS

dsdbtd15.f
real*8 function dsdbtd15(tp,howinp)
**********************************************************************
*** function dsdbtd15 is the containment time in 10^15 sec
***
input:
***
tp - kinetic energy per nucleon in gev
***
how - 1 calculate t_diff only for requested momentum
***
2 tabulate t_diff for first call and use table for
***
subsequent calls
***
3 as 2, but also write the table to disk as dbtd.dat
***
4 read table from disk on first call, and use that for
***
subsequent calls
***
output:
***
t_diff in units of 10^15 sec
*** calls dsdbtd15x for the actual calculation.
*** author: joakim edsjo (edsjo@physto.se)
*** uses piero ullios propagation routines.
111

112

CHAPTER 9. DB: ANTI-DEUTERON FLUXES FROM THE HALO

*** date: dec 16, 1998
*** modified: 98-07-13 paolo gondolo
**********************************************************************

dsdbtd15beu.f
**********************************************************************
*** function called in dsdbtd15x
*** it gives the antiproton diffusion time in units of 10^15 sec
*** it assumes the diffusion model in:
***
bergstrom, edsjo & ullio, ajp 526 (1999) 215
*** inputs:
***
td - kinetic energy per nucleon (gev)
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
*** modified: 04-01-22 (pu)
**********************************************************************
real*8 function dsdbtd15beu(td)

dsdbtd15beucl.f
**********************************************************************
*** function that gives the dbar diffusion time per unit volume
*** (units of 10^15 sec kpc^-3) for a dbar point source located
*** at rcl, zcl, thetacl (in the cylidrical framework with the sun
*** located at r=r_0, z=0 theta=0) and some small "angular width"
*** deltathetacl which makes the routine converge much faster
*** rcl, zcl, thetacl and deltathetacl are in the dspb_clcom.h common
*** blocks and must be before calling this routine. rcl and zcl are in
*** kpc, thetacl and deltathetacl in rad.
*** numerical convergence gets slower for rcl->0 or zcl->0
***
*** it assumes the diffusion model in:
***
bergstrom, edsjo & ullio, ajp 526 (1999) 215
*** inputs:
***
td - dbar kinetic energy (gev)
***
*** the conversion from this source function to the local dbar flux
*** is the same as for dsdbtd15beu(td), except that dsdbtd15beucl(td)
*** must be multiplied by:
***
int dV (rho_cl(\vec{x}_cl)/rho0)**2
***
where the integral is over the volume of the clump,
***
rho_cl(\vec{x}_cl) is the density profile in the clump
***
and the local halo density rho0 is the normalization scale used
***
everywhere
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************

9.2. ROUTINE HEADERS – FORTRAN FILES
real*8 function dsdbtd15beucl(td)

dsdbtd15beuclsp.f
**********************************************************************
*** function which makes a tabulation of dsdbtd15beucl as function
*** the distance between source and observer L, and neglecting the
*** weak dependence of dsdbtd15beucl over the vertical coordinate for
*** the source zcl
***
*** for every td dsdbtd15beuclsp is tabulated on first call in L, with
*** L between:
***
Lmin=0.9d0*(r_0-pbrcy) and
***
Lmax=1.1d0*dsqrt((r_0+pbrcy)**2+pbzcy**2)
*** and stored in spline tables.
***
*** pbrcy and pbzcy in kpc are passed through a common block in
*** dspb_clcom.h and should be set before the calling this routine.
***
*** there is no internal check to verify whether between to consecutive
*** calls, with the same td, pbrcy and pbzcy, or halo parameters, or
*** propagation parameters are changed. If this is done make sure,
*** before calling this function, to reinitialize to zero the integer
*** parameter clspset in the common block:
***
***
real*8 tdsetup
***
integer clspset
***
common/clspsetcom/tdsetup,clspset
***
*** input: L in kpc, td in GeV
*** output in 10^15 s kpc^-3
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************

real*8 function dsdbtd15beuclsp(L,td)

dsdbtd15beum.f
**********************************************************************
*** function called in dsdbtd15x
*** it gives the antiproton diffusion time in units of 10^15 sec
*** it assumes the diffusion model in:
***
bergstrom, edsjo & ullio, ajp 526 (1999) 215
***
but with the DC-like setup as in moskalenko et al.
***
ApJ 565 (2002) 280
*** inputs:
***
td - kinetic energy per nucleon (gev)
***
*** author: piero ullio (piero@tapir.caltech.edu)

113

114

CHAPTER 9. DB: ANTI-DEUTERON FLUXES FROM THE HALO

*** date: 00-07-13
**********************************************************************
real*8 function dsdbtd15beum(td)

dsdbtd15comp.f
**********************************************************************
*** function which computes the dbar diffusion time term corresponding
*** to the axisymmetric diffuse source within a cylinder of radius
*** pbrcy and height 2* pbzcy.
*** This routine assumes also that the Green function of
*** the diffusion equation dsdbtd15beuclsp(L,tp) does depend just
*** on kinetic energy tp and distance from the observer L, neglecting
*** a weak dependence on the cylindrical coordinate z.
*** For every tp, dsdbtd15beuclsp is tabulated on first call in L and
*** stored in spline tables.
*** In this function and in dsdbtd15beuclsp, pbrcy and pbzcy in kpc are
*** passed through a common block in dspbcom.h. There is no check
*** in dsdbtd15beuclsp on whether, pbrcy and pbzcy which define the
*** interval of tabulation are changed. Check header dsdbtd15beuclsp
*** for more details on this and other warnings, and how to get the
*** right implementation is such parameters are changed while running
*** our own code
*** After the tabulation, the following integral is performed:
***
*** 2 int_0^{pbzcy} int_0^{pbrcy} dr r int_0^{2\pi} dphi
***
(dshmaxirho(r,zint)/rho0)^2 * dsdbtd15beuclsp(L(z,r,theta),tp)
***
*** The triple integral is splitted into a double integral on r and
*** theta, this result is tabulated in z and then this integral is
*** performed. The tabulation in z has at least 100 points on a
*** regular grid between 0 and pbzcy (this is set by the parameter
*** incompnpoints in the dspbcompint1 function), however points are
*** added as long as the values of the function in two nearest
*** neighbour points differs more than 10% (this is set by the
*** parameter reratio in the dspbcompint1 function)
***
*** input: scale in kpc, tp in GeV
*** output in 10^15 s
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************
real*8 function dsdbtd15comp(tp)

dsdbtd15point.f
**********************************************************************
*** function which approximates the function dsdbtd15comp by
*** estimating that diffusion time term supposing to have a point

9.2. ROUTINE HEADERS – FORTRAN FILES
*** source located at the galactic center but then weighting it with
*** the emission over a whole cylinder of radius scale and
*** height 2*scale, i.e. rho2int (to be given in kpc^3).
*** The goodness of the approximation should be checked by comparing
***
dsdbtd15point(rho2int,db) with
***
dsdbtd15comp(db) for different value of db and scale,
*** and depending on the halo profile chosen and level of precision
*** required. The comparison has to be performed but setting
*** rho2int=dshmrho2cylint(scale,scale) and each
*** pbrcy and pbzcy pair equal to scale before calling dspbtd15comp,
*** possibly resetting the parameter clspset as well, see the header
*** of the function dspbtd15beuclsp
***
*** input: rho2int=dshmrho2cylint(scale,scale) in kpc^3, db in GeV
*** output in 10^15 s
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************
real*8 function dsdbtd15point(rho2int,db)

dsdbtd15x.f
real*8 function dsdbtd15x(tp)
**********************************************************************
*** antideuteron propagation according to various models
*** dspbtd15x is containment time in 10^15 sec
*** inputs:
***
tp - kinetic energy per nucleon (gev)
*** from common blocks
***
pbpropmodel - 2 bergstrom,edsjo,ullio diffusion
***
3 bergstrom,edsjo,ullio diffusion
***
but with the DC-like setup as in moskalenko
***
et al. ApJ 565 (2002) 280
***
*** author: paolo gondolo 99-07-13
*** modified: piero ullio 00-07-13
**********************************************************************

115

116

CHAPTER 9. DB: ANTI-DEUTERON FLUXES FROM THE HALO

Chapter 10

src/dd:
Direct detection
10.1

Direct detection – theory

(WE MUST DECIDE WHAT TO INCLUDE IN THE DIRECT DETECTION ROUTINES. PRESENTLY, ONLY THE NEUTRALINO-PROTON AND NEUTRALINONEUTRON CROSS SECTIONS SHOULD BE MADE AVAILABLE. ALTHOUGH
THE CROSS SECTIONS OFF NUCLEI ARE ON THE AGENDA, DO WE REALLY
WANT TO MENTION THEM HERE? (PG))
If neutralinos are indeed the CDM needed on galaxy scales and larger, there should be a substantial flux of these particles in the Milky Way halo. Since the interaction strength is essentially
given by the same weak couplings as, e.g., for neutrinos there is a non-negligible chance of detecting
them in low-background counting experiments [78]. Due to the large parameter space of MSSM,
even with the simplifying assumptions above, there is a rather wide span of predictions for the event
rate in detectors of various types. It is interesting, however, that the models giving the largest rates
are already starting to be probed by present direct detection experiments [46, 79].
The rate for direct detection of galactic neutralinos, integrated over deposited energy assuming
no energy threshold, is
X
Ni nχ hσiχ vi,
(10.1)
R=
i

where Ni is the number of nuclei of species i in the detector, nχ is the local galactic neutralino
number density, σiχ is the neutralino-nucleus elastic cross section, and the angular brackets denote
an average over v, the neutralino speed relative to the detector as described in Section 15.1.
In DarkSUSY, the basic quantities computed are the neutralino-nucleon cross sections, which
are free of complications related to nuclear structure, and various experimental details like energy
threshold, efficiencies etc. However, as a crude estimate of the expected rates in realistic detectors,
the total neutralino-nucleus scattering rates can be obtained for 76 Ge, Al2 O3 (sapphire) and NaI.
Usually, it is the spin-independent interaction that gives the most important contribution in target
materials such as Na, Cs, Ge, I, or Xe, due to the enhancement caused by the coherence of all
nucleons in the target nucleus.
The neutralino-nucleus elastic cross section can be written as
σiχ

1
=
4πv 2

Z

4m2iχ v 2

0

dq 2 G2iχ (q 2 ),

(10.2)

where miχ is the neutralino-nucleus reduced mass, q is the momentum transfer and Giχ (q 2 ) is the
117

118

CHAPTER 10. DD: DIRECT DETECTION

effective neutralino-nucleus vertex. We write
G2iχ (q 2 ) = A2i FS2 (q 2 )G2S + 4Λ2i FA2 (q 2 )G2A ,

(10.3)

which shows the coherent enhancement factor A2i for the spin-independent cross section (often
Λ2i is written as λ2 J(J + 1) ). We assume gaussian nuclear form factors [80] (WE ARE NOT
CURRENTLY PROVIDING FORM FACTORS. (PG)) COMMENT #1: Use better form
factors?
FS (q 2 ) = FA (q 2 ) = exp(−q 2 Ri2 /6h̄2 ),
(10.4)
1/3

Ri = (0.3 + 0.89Ai )fm,

(10.5)

which should provide us with a good approximation of the integrated detection rate [83], in which we
are only interested. (To obtain the differential rate with reasonable accuracy, better approximations
are needed [84].)
Using heavy-squark effective lagrangians [85], we get


6
X
X
X ghχχ ghqq
1
gLq̃k χq gRq̃k χq 
−
GS =
(10.6)
hq̄qi 
m2h
2
m2q̃k
q=u,d,s,c,b,t

and

GA =

X

k=1

h=H1 ,H2

∆q

6
2
2
+ gRq̃
1 X gLq̃
gZχχ gZqq
k χq
k χq
+
m2Z
8
m2q̃k
k=1

q=u,d,s

!

.

(10.7)

The g’s are elementary vertices involving the particles indicated by the indices, and they read

(gZχ2 − gy Zχ1 ) (−Zχ3 cos α + Zχ4 sin α) , for H1 ,
ghχχ =
(10.8)
(gZχ2 − gy Zχ1 ) (Zχ3 sin α + Zχ4 cos α) ,
for H2 ,
√

−Yq cos α/√ 2, for H1 ,
(10.9)
ghqq =
+Yq sin α/ 2, for H2 ,

g
2
2
gZχχ =
(10.10)
Zχ3
− Zχ4
2 cos θW
g
gZqq = −
T3q ,
(10.11)
2 cos θW
gLq̃k χq
gRq̃k χq

kq
= gLL Γkq
QL + gRL ΓQR ,

=

gLR Γkq
QL

+

gRR Γkq
QR ,

(10.12)
(10.13)

with
gLL
gRR
gLR



1
1
= −√
T3q gZχ2 + gy Zχ1 ,
3
2
√
=
2eq gy Zχ1 ,

−Yq Zχ3 , for q = u, c, t,
= gRL =
−Yq Zχ4 , for q = d, s, b,

(10.14)
(10.15)
(10.16)

and
Yq

=



mq /v2 , for q = u, c, t,
mq /v1 , for q = d, s, b.

(10.17)

Defining (N = n, p)
fTNq ≡

hN |mq q̄q|N i
,
mN

(10.18)

10.2. DIRECT DETECTION – ROUTINES

119

we take in DarkSUSY the numerical values [86]
fTp u = 0.023,

fTp d = 0.034,

fTp c = 0.0595,
fTp t = 0.0595,

fTp s = 0.14,
fTp b = 0.0595

fTnu = 0.019,
fTnc = 0.0592

fTnd = 0.041,
fTns = 0.14,

(10.19)

and

fTnt = 0.0592,

fTnb = 0.0592.

(10.20)

For the quark contributions to the nucleon spin we take [87]
∆u = 0.77,

∆d = −0.40,

∆s = −0.12.

(10.21)

∆d = −0.49,

∆s = −0.15

(10.22)

However, the older set of data [88]
∆u = 0.77,
can optionally be used.
Moreover, we take for the Λ factors
Λ2Al = 0.087,

Λ2Na = 0.041 and Λ2I = 0.007,

(10.23)

according to the odd-group model [89].
COMMENT #2: Change our direct detection routines?

10.2

Direct detection – routines

subroutine dsddneunuc(sigsip,sigsin,sigsdp,sigsdn)
Purpose:
Calculate the spin-independent and spin-dependent scattering cross sections for
neutralinos on neutrons and protons.
Output:
SI
sigsip r8 The spin-independent neutralino-proton scattering cross section, σχp
, in units
3 −1
of cm s .
SI
sigsin r8 The spin-independent neutralino-neutron scattering cross section, σχn
, in units
3 −1
of cm s .
SD
sigsip r8 The spin-dependent neutralino-proton scattering cross section, σχp
, in units of
3 −1
cm s .
SD
sigsin r8 The spin-dependent neutralino-neutron scattering cross section, σχn
, in units
3 −1
of cm s .

10.3

Routine headers – fortran files

dsdddn1.f
function dsdddn1(ms,mq,mx)
c
c
c
c
c
c

auxiliary function replacing the propagator for heavy squarks in
the drees-nojiri treatment of neutralino-nucleon scattering
a^2-b^2 terms
dsdddn1 = 3/2 mq^2 I1 - mq^2 mx^2 I3

120

CHAPTER 10. DD: DIRECT DETECTION

dsdddn2.f
function dsdddn2(ms,mq,mx)
c
c
c
c
c
c

auxiliary function replacing the propagator for heavy squarks in
the drees-nojiri treatment of neutralino-nucleon scattering
a^2+b^2 terms
dsdddn2 = I5 + 2 mx^2 I4 - 3 I2

dsdddn3.f
function dsdddn3(ms,mq,mx)
c
c
c
c
c
c

auxiliary function replacing the propagator for heavy squarks in
the drees-nojiri treatment of neutralino-nucleon scattering
twist-2 a^2-b^2 terms
dsdddn3 = - mq^2 mx^2 I3

dsdddn4.f
function dsdddn4(ms,mq,mx)
c
c
c
c
c
c

auxiliary function replacing the propagator for heavy squarks in
the drees-nojiri treatment of neutralino-nucleon scattering
twist-2 a^2+b^2 terms
dsdddn4 = I5 + 2 mx^2 I4

dsdddrde.f
subroutine dsdddrde(t,e,n,a,z,stoich,rsi,rsd,modulation)
c_______________________________________________________________________
c differential recoil rate
c common:
c
’dssusy.h’ - file with susy common blocks
c input:
c
e : real*8
: nuclear recoil energy in keV
c
n : integer
: number of nuclear species
c
a : n-dim integer array : atomic numbers
c
z : n-dim integer array : charge numbers
c
stoich : n-dim integer array : stoichiometric coefficients
c
t : real*8 : time in days from 12:00UT Dec 31, 1999
c
modulation : integer : 0=no modulation 1=annual modulation
c
with no modulation (ie without earth velocity), t is irrelevant
c output:
c
rsi : real*8 : spin-independent differential rate
c
rsd : real*8 : spin-dependent differential rate
c units: counts/kg-day-keV
c author: paolo gondolo (paolo@physics.utah.edu) 2004
c=======================================================================

10.3. ROUTINE HEADERS – FORTRAN FILES

dsddeta.f
subroutine dsddeta(vmin,t,eta)
c_______________________________________________________________________
c eta function entering the differential rate: eta = \int {f(v)/v} d^3 v
c
c Truncated Maxwellian.
c
c input:
c
vmin : minimum velocity to deposit energy e, in km/s
c
vmin=sqrt(M*E/2/mu^2)
c
t : time, in fraction of the year
c output:
c
eta : in (km/s)^{-1}
c authors: paolo gondolo (paolo@physics.utah.edu) 2004
c
piero ullio (ullio@sissa.it) 2004
c=======================================================================

dsddffsd.f
subroutine dsddffsd(q,a,z,s00,s01,s11,j)
c_______________________________________________________________________
c Spin-dependent structure functions for direct detection.
c input:
c
q : real*8 : momentum transfer in GeV ( q=sqrt(M*E/2/mu^2) )
c
a : integer : atomic number
c
z : integer : charge number
c output:
c
s00, s01, s11 : the spin-dependent structure functions S_{00}(q),
c
S_{01}(q), S_{11}(q) as defined by Engel, PRL
c
j : total nuclear spin
c author: paolo gondolo (paolo@physics.utah.edu) 2004
c modified: pg 040605 switched s01 and s11 in Na-23
c=======================================================================

dsddffsi.f
subroutine dsddffsi(q,a,z,ff)
c_______________________________________________________________________
c Spin-independent form factor for direct detection.
c input:
c
q : real*8 : momentum transfer in GeV ( q=sqrt(M*E/2/mu^2) )
c
a : integer : atomic number
c
z : integer : charge number
c output:
c
ff : |F(q)|^2, the square of the form factor
c author: paolo gondolo (paolo@physics.utah.edu) 2004
c=======================================================================

dsddgpgn.f
subroutine dsddgpgn(gps,gns,gpa,gna)
c_______________________________________________________________________

121

122

CHAPTER 10. DD: DIRECT DETECTION

c neutralino nucleon four-fermion couplings
c common:
c
’dssusy.h’ - file with susy common blocks
c output:
c
gps, gns : proton and neutron scalar four-fermion couplings
c
gpa, gna : proton and neutron axial four-fermion couplings
c
units: GeV^-4
c author: paolo gondolo (paolo@physics.utah.edu) 2004
c=======================================================================

dsddlim.f
function dsddlim(mx,iexp)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

limits on scattering cross section on nucleons from
direct dark matter searches
input: mx - wimp mass
iexp - experiment
1 = future cawo_4 cresst
2 = future genius
3 = dama 1997, plb389, 757
output: dsddlim - upper limit or sensitivity limit on wimp-nucleon
spin-independent cross section in pb
(returns 10^99 if no limit)
author: paolo gondolo 1999

dsddlimits.f
**********************************************************************
*** function dsddlimits gives the limits on f*sigma as a function
*** of neutralino mass. f is the halo fraction of dm (f=1 for 0.3
*** gev/cm^3) and sigma is the cross section in pb.
*** input: mx (wimp mass in gev)
***
type (1=spin-independent, 2=spin-dependent)
*** output: limit on f*sigma (pb)
*** based upon r. bernabei et al, plb 389 (1996) 757.
*** author: j. edsjo
*** date: 98-03-19
**********************************************************************
real*8 function dsddlimits(mx,type)

dsddneunuc.f
subroutine dsddneunuc(sigsip,sigsin,sigsdp,sigsdn)
c_______________________________________________________________________
c neutralino nucleon cross section.
c common:
c
’dssusy.h’ - file with susy common blocks
c output:

10.3. ROUTINE HEADERS – FORTRAN FILES
c
sigsip, sigsin : proton and neutron spin-independent cross sections
c
sigsdp, sigsdn : proton and neutron spin-dependent cross sections
c
units: cm^2
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994,1995,2002
c
13-sep-94 pg no drees-nojiri twist-2 terms
c
22-apr-95 pg important bug corrected [ft -> ft mp/mq]
c
06-apr-02 pg drees-nojiri treatment added
c=======================================================================

dsddo.f
c
c

function dsddo(k,z,qsq)
k=0 Og, k=1 Ou, k=2 Od, ...... k=6 Ob
z=1 proton, z=2 neutron

dsddset.f
subroutine dsddset(sisd,cs)
c...set parameters for scattering cross section
c... c - character string specifying choice to be made
c...author: paolo gondolo 2000-07-07

dsddsigmaff.f
subroutine dsddsigmaff(e,n,a,z,siff,sdff)
c_______________________________________________________________________
c neutralino nucleus cross sections times form factors.
c NOTE: the spin-dependent cross section is available only for a
c
limited number of nuclei
c common:
c
’dssusy.h’ - file with susy common blocks
c input:
c
e : real*8
: nuclear recoil energy in keV
c
n : integer
: number of nuclear species
c
a : n-dim integer array : atomic numbers
c
z : n-dim integer array : charge numbers
c output:
c
siff : n-dim real*8 array : spin-independent cross
c
section times form factor
c
sdff : n-dim real*8 array : spin-dependent cross
c
section times form factor
c
units: cm^2
c author: paolo gondolo (paolo@physics.utah.edu) 2004
c modified: pg 040605 added missing factor of 4 in spin-dependent
c=======================================================================

dsddsigsi.f
subroutine dsddsigsi(n,a,z,si)
c_______________________________________________________________________
c neutralino nucleus cross section.
c common:

123

124

CHAPTER 10. DD: DIRECT DETECTION

c
’dssusy.h’ - file with susy common blocks
c input:
c
n : number of nuclear species
c
a : n-dim integer array with atomic numbers
c
z : n-dim integer array with charge numbers
c output:
c
si : n-dim real*8 array with spin-independent cross sections
c
units: cm^2
c author: paolo gondolo (paolo@physics.utah.edu) 2004
c=======================================================================

dsddvearth.f
subroutine dsddvearth(t,vearth)
c
c speed of the earth relative to the galaxy in km/s at
c time t in days from 12:00 UT Dec 31, 1999
c
c formulas from Green, astro-ph/0304446, originally by Lewin and Smith
c

Chapter 11

src/ep:
Positron fluxes from the halo
11.1

Positrons from the halo – theory

Neutralino annihilations in the halo will give rise to positrons either directly or from decaying
mesons in hadron jets. We thus expect to get both monochromatic positrons (at an energy of mχ )
from direct annihilation into e+ e− and continuum positrons from the other annihilation channels.
In general, the branching ratio for annihilation directly into e+ e− is rather small due to the helicityflip suppression ∝ me for S-wave annihilation in the halo, but for some classes of models one can
still obtain a large enough branching ratio for the line to be observable.
The computation of the positron flux from neutralino annihilations used in DarkSUSY resembles
the calculation of the antiproton flux, with some important changes due to other mechanisms of
energy loss with different energy dependence. Due to the fact that energy losses for positrons are
more rapid than for antiprotons, the computed signal is less sensitive to the global structure of the
dark matter halo. (On the other hand, it is more sensitive to possible local sources of background,
such as supernova remnants etc.)
The calculation of the neutralino-induced positron flux performed in DarkSUSY follows the
analysis in [121]. For continuum positrons, we have again simulated the decay and/or hadronization
with the Lund Monte Carlo Pythia as described in section ??. We have included all two-body
final states in DarkSUSY (except the three lightest quarks which are completely negligible) at tree
level and the Zγ [176] and gg [112] final states which arise at one-loop level.

11.1.1

Propagation and the interstellar flux

We consider a standard diffusion model, somewhat less sophisticated than in the case of antiprotons,
for the propagation of positrons in the galaxy. Charged particles move under the influence of the
galactic magnetic field. For the relevant energies the magnetic gyroradii of the particles are quite
small. However, the magnetic field is tangled, and even with small gyroradii, particles can jump to
nearby field lines which will drastically alter their courses. This entire process can be modeled as
a random walk, which can be described by a diffusion equation.
Positron propagation is complicated by the fact that light particles lose energy quickly due to
inverse Compton and synchrotron processes. Diffuse starlight and the Cosmic Microwave Background (CMB) both contribute appreciably to the energy loss rate of high energy electrons and
positrons via inverse Compton scattering. Electrons and positrons also lose energy by synchrotron
radiation as they spiral around the galactic magnetic field lines.
Our detailed treatment of positron diffusion employed in DarkSUSY is as follows. First define
125

126

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

a dimensionless energy variable ε = E/(1 GeV), and the dimensionless mass m̃χ = mχ /(1 GeV).
The standard diffusion-loss equation for the space density of cosmic rays per unit energy, dn/dε, is
then given by




∂ dn
~ · K(ε, ~x)∇
~ dn + ∂ b(ε, ~x) dn + Q(ε, ~x),
(11.1)
=∇
∂t dε
dε
∂ε
dε
where K is the diffusion constant, b is the energy loss rate and Q is the source term. We consider
only steady state solutions, setting the left hand side of Eq. (11.1) to zero.
We assume that the diffusion constant K is constant in space throughout a “diffusion zone”,
but it may vary with energy. At energies above a few GeV, we can represent the diffusion constant
as a power law in energy [123],
K(ε) = K0 εα ≈ 3 × 1027 ε0.6 cm2 s−1 .

(11.2)

However, at energies below about 3 GeV, there is a cutoff in the diffusion constant that can be
modeled as


K(ε) = K0 [C + εα ] ≈ 3 × 1027 30.6 + ε0.6 cm2 s−1 .
(11.3)

Both of these models for the diffusion constant can be used in DarkSUSY but the second expression
is the default.∗ The function b(ε) represents the (time) rate of energy loss. We allow energy loss
via synchrotron emission and inverse Compton scattering. The rms magnetic field in the diffusion
zone is about 3 µG, an energy density of about 0.2 eV cm−3 . We allow inverse Compton scattering
on both the cosmic microwave background and diffuse starlight, which have energy densities of 0.3
and 0.6 eV cm−3 respectively. These two processes combined give an energy loss rate [125]
b(ε)e± =

1 2
ε ≈ 10−16 ε2 s−1 ,
τE

(11.4)

where we have neglected the space dependence of the energy loss rate. Lastly, the function Q is the
source of positrons in units of cm−3 s−1 .
We model the diffusion zone as a slab of thickness 2L. We fix L to be 3 kpc, which fits
observations of the cosmic ray flux [123]. We impose free escape boundary conditions, namely that
the cosmic ray density drops to zero on the surfaces of the slab, which we let be the planes z = ±L.
We neglect the radial boundary usually considered in diffusion models. This is justified when the
sources of cosmic rays are nearer than the boundary, as is usually the case with galactic sources.
We will see that the positron flux at Earth, especially at higher energies, mostly originates within
a few kpc and hence this approximation is well justified in our case. (This is different from the
case of antiprotons, where the flux from the Galactic center can be very important at the Earth’s
location [108].) The spatial part of the Green’s function is performed once, independently of the
supersymmetric model, yielding an energy dependent diffusion time


∞ X
X
1
(−1)n L + 2Ln ± z
√
τD (ε, ε ) =
×
erf
4K0 ∆v n=−∞ ±
4K0 τE ∆v
′

Z

0

∞

′

′

′

dr r f (r )I0



2rr′
4K0 τE ∆v



exp



r2 + r′2
4K0 τE ∆v



(11.5)

θ(∆v),

where f (r) is the effective halo profile squared, and the expression is evaluated for r and z appropriate for the observer. The function v(ε) depends on the diffusion model: the default model has
v(ε) = C/ε + εα−1 /(1 − α). The function τD is the effective diffusion time for particles emitted
at energy ε′ and observed at energy ε. Of course if the observed energy is larger than the emitted
energy, τD = 0. The spatial integrand is smooth, and is computed for a range of values, equally
spaced in log(∆v) for use in DarkSUSY. Likewise, the series of image charges used in the Green’s
∗ In

fact, a third option can be chosen in DarkSUSY as well, employing the propagation model of [124].

11.2. POSITRONS FROM THE HALO – ROUTINES

127

function converges rapidly, and with the range of ∆v values we are concerned with, need not be
taken past n = ±10. The total positron spectrum is now given by
(
)
Z m̃χ
1
dn
′ dφ
2
′
dε
= n0 hσvitot 2 Bline τD (ε, m̃χ ) +
τD (ε, ε ) ,
(11.6)
dε
ε
dε cont.
ε
where Bline is the branching ratio directly to e+ e− , and dφ/dε|cont. is the spectrum of continuum
positrons per annihilation. Remembering that this is an expression for the number density of
positrons, the flux is given by
βc dn
c dn
dΦ
=
≃
,
(11.7)
dε
4π dε
4π dε
where βc is the velocity of a positron of energy ε. For the energies we are interested in, βc ≃ c is a
very well justified approximation.

11.1.2

Solar modulation

Again there is a complication in that interactions with the solar wind and magnetosphere, solar
modulation, alter the spectrum. This can be neglected at high energies, but at energies below about
10 GeV, the effects of solar modulation become important. However, its effects can be reduced by
considering the positron fraction, e+ /(e+ + e− ), instead of the absolute positron fluxes. This is
possible to obtain from DarkSUSY, since included in the package is an estimate of the background
e+ and e− flux taken from [126].

11.2

Positrons from the halo – routines

................

11.3

Routine headers – fortran files

dsembg.f
**********************************************************************
*** function dsembg gives the differential flux of electrons from the
*** halo coming from primary and secondary (background) sources.
*** these background fluxes are a parameterization by j. edsjo to
*** the results of moskalenko & strong for a model without
*** reacceleration (08-005). ref.: apj 493 (1998) 694.
*** input: positron energy in gev.
*** output: flux in cm^-2 sec^-1 gev^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-07-21
**********************************************************************
real*8 function dsembg(egev)

dsepbg.f
**********************************************************************
*** function dsepbg gives the differential flux of positrons from the
*** halo coming from secondary sources.
*** these background fluxes are a parameterization by j. edsjo to

128

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

*** the results of moskalenko & strong for a model without
*** reacceleration (08-005). ref.: apj 493 (1998) 694.
*** input: positron energy in gev.
*** output: flux in cm^-2 sec^-1 gev^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-07-21
**********************************************************************
real*8 function dsepbg(egev)

dsepdiff.f
**********************************************************************
*** function dsepdiff calculates the differential flux of
*** positrons for the energy egev as a result of
*** neutralino annihilation in the halo.
*** input: egev - positron energy in gev
***
how = 1 - dsepsigvdnde is used directly
***
2 - dsepsigvdnde is tabulated on first call, and then
***
interpolated. (default)
***
dhow = 2 - diffusion model is tabulated on first call, and then
***
interpolated
***
3 - as 2, but also write the table to disk at the
***
first call
***
4 - read table from disk on first call, and use that for
***
subsequent calls. If the file does not exist, it will
***
be created (as in 3). (default)
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
***
joakim edsjo, edsjo@physto.se
*** date: jun-02-98
*** modified: 99-07-02 paolo gondolo : order of calls to hrsetup
*** modified: 01-10-19 add moskalenko + strong option (eab)
*** modified: 04-01-27 J. Edsjo: added file handling (dhow=3,4)
**********************************************************************
real*8 function dsepdiff(egev,how,dhow)

dsepdsigv de.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
************************************************************************

c
c

this is a power law e^-2
this function is [d/de](v)
real*8 function dsepdsigv_de(v,vmin)

11.3. ROUTINE HEADERS – FORTRAN FILES

dsepeecut.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
***
jul-06-99 paolo gondolo - calls to dshunt, ee, vv
************************************************************************

************************************************************************
real*8 function dsepeecut(v,tabindx)
************************************************************************

dsepeeuncut.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
************************************************************************

************************************************************************
real*8 function dsepeeuncut(v)
************************************************************************

dsepf.f
************************************************************************
*** This is the average of the halo density squared from
*** z=-l_h to z=+l_h.
*** It is the function f(r) given in Eq. (20) in Baltz & Edsjo,
*** PRD 59(1999)023511, except that g(r) here is the NORMALIZED
*** halo density. Consequently, n_c=1.
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2000-09-03
************************************************************************
************************************************************************
real*8 function dsepf(r)
************************************************************************

dsepfrsm.f
***********************************************************************
*** real*8 function dsepfrsm solar modulates the positron fraction at a
*** given energy (eep). only gives results for a+ cycle.
*** input: epfr - interstellar solar modulation fraction

129

130

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

***
eep - positron energy in gev
***
qa - solar modulation cycle. >0 for positrons in a+ cycle and
***
<0 for a- cycle.
*** output: dsepfrsm - solar modulated positron fraction
*** ref: clem et al, apj 464 (1997) 507.
*** author: joakim edsjo, edsjo@physto.se
***********************************************************************
real*8 function dsepfrsm(epfr,eep,qa)

dsepgalpropdiff.f
**********************************************************************
*** function dsepgalpropdiff calculates the differential flux of
*** positrons for the energy egev as a result of
*** neutralino annihilation in the halo.
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: edward baltz (eabaltz@alum.mit.edu), joakim edsjo
*** date: 4/28/2006
**********************************************************************
real*8 function dsepgalpropdiff(egev)

dsepgalpropig.f
real*8 function dsepgalpropig(eep)
No header found.

dsepgalpropig2.f
real*8 function dsepgalpropig2(eep)
No header found.

dsepgalpropline.f
**********************************************************************
*** function dsepgalpropline calculates the flux of e+ from the line
*** annihilation, from GALPROP
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se,
***
e.a. baltz, eabaltz@alum.mit.edu
*** date: 4/27/2006
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsepgalpropline(egev)

dsephalodens2.f
************************************************************************
*** Halo density squared. This function is a function of z and calls

11.3. ROUTINE HEADERS – FORTRAN FILES
*** the standard halo density routine dshmrho.
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2000-09-03
************************************************************************
************************************************************************
real*8 function dsephalodens2(z)
************************************************************************

dsepideltavint.f
************************************************************************
*** positron propagation routines.
*** the integrand in the integration for i(delta v).
*** To speed up the integration, u=ln(r) is used as an integration variable
*** Author: J. Edsjo (edsjo@physto.se), based on routines by
*** e.a. baltz (eabaltz@astron.berkeley.edu)
*** Date: 2004-01-26
************************************************************************
************************************************************************
real*8 function dsepideltavint(u)
************************************************************************

dsepimage sum.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98, dec-04-02 (eb)
************************************************************************

************************************************************************
real*8 function dsepimage_sum(deltav)
************************************************************************

dsepipol.f
**********************************************************************
*** function dsepipol interpolates in the table of
***  dn/de to speed up the
*** positron flux routines.
*** input: eep - positron energy
*** output:  dn/de in units of cm^3 s^-1 gev^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: jun-02-98
**********************************************************************
real*8 function dsepipol(eep)

131

132

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

dsepkt.f
**********************************************************************
*** function dsepkt calculates the integrated flux of positrons
*** between energy ea and eb from neutralino annihilation in the halo.
*** NOTE. This routine uses the Kamionkowski and Turner expressions.
*** from prd 43(1991)1774. Only included for comparison.
*** units: cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-02-10
**********************************************************************
real*8 function dsepkt(ea,eb,istat)

dsepktdiff.f
**********************************************************************
*** function dsepktdiff calculates the differential flux of
*** positrons for the energy egev as a result of
*** neutralino annihilation in the halo.
*** NOTE. This routine uses the Kamionkowski and Turner expressions.
*** from prd 43(1991)1774. Only included for comparison.
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-02-10
**********************************************************************
real*8 function dsepktdiff(egev)

dsepktig.f
**********************************************************************
*** function dsepktig is the positron spectrum times the greens
*** function from kamionkowski & turner, prd 43(1991)1774.
*** this routine is integrated by dsepktdiff to give the differential
*** positron flux at earth.
*** units: gev^-2 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-02-10
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsepktig(eep)

dsepktig2.f
**********************************************************************
*** function dsepktig2 is the positron spectrum times the greens
*** function from kamionkowski & turner, prd 43(1991)1774.
*** this routine is integrated by dsepktdiff to give the differential
*** positron flux at earth. the independent variable for this
*** routine is x=1/e**2 instead of e as in dsepktig.

11.3. ROUTINE HEADERS – FORTRAN FILES
*** units: gev^-2 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-02-10
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsepktig2(x)

dsepktline.f
**********************************************************************
*** function dsepktline calculates the flux of e+ from the line
*** annihilation.
*** from kamionkowski & turner, prd 43(1991)1774.
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-02-10
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsepktline(egev)

dseploghalodens2.f
************************************************************************
*** Halo density squared. This function is a function of log(z) and calls
*** the standard halo density routine dshmrho.
*** The jacobian z for integration is also included
*** u = log(z)
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2000-09-03
************************************************************************
************************************************************************
real*8 function dseploghalodens2(u)
************************************************************************

dsepmake tables.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98, 2002-11-19
***
2004-01-26 (better r integration)
************************************************************************

************************************************************************

133

134

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

subroutine dsepmake_tables
***
creates a table of i(delta v) versus delta v.
************************************************************************

dsepmake tables2.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98, 2002-11-19
***
2004-01-26 (better r integration)
************************************************************************

************************************************************************
subroutine dsepmake_tables2
*** creates auxiliary tables
************************************************************************

dsepmsdiff.f
**********************************************************************
*** function dsepmsdiff calculates the differential flux of
*** positrons for the energy egev as a result of
*** neutralino annihilation in the halo.
*** NOTE. This routine uses the Moskaleno and Strong expressions
*** from PRD 60 (1999) 063003 for z_h=4 kpc, isothermal halo
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: edward baltz (eabaltz@alum.mit.edu), joakim edsjo
*** date: 10/18/2001
**********************************************************************
real*8 function dsepmsdiff(egev)

dsepmsig.f
**********************************************************************
*** function dsepmsig is the positron spectrum times the greens
*** function from moskalenko and strong prd 60, 063003 (1999)
*** this routine is integrated by dsepmsdiff to give the differential
*** positron flux at earth.
*** units: gev^-2 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se,
***
edward baltz eabaltz@alum.mit.edu
*** date: 2001 10/18
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsepmsig(eep)

11.3. ROUTINE HEADERS – FORTRAN FILES

dsepmsig2.f
**********************************************************************
*** function dsepmsig2 is the positron spectrum times the greens
*** function from moskalenko and strong, prd 60(1999)063003.
*** this routine is integrated by dsepmsdiff to give the differential
*** positron flux at earth. the independent variable for this
*** routine is x=1/e**2 instead of e as in dsepmsig.
*** units: gev^-2 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se,
***
e.a. baltz, eabaltz@alum.mit.edu
*** date: 01-10-18
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsepmsig2(x)

dsepmsline.f
**********************************************************************
*** function dsepmsline calculates the flux of e+ from the line
*** annihilation.
*** from moskaleno & strong, prd 60(1999)063003.
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se,
***
e.a. baltz, eabaltz@alum.mit.edu
*** date: 01-10-19
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsepmsline(egev)

dsepmstable.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz eabaltz@alum.mit.edu
*** date: 2001 10/18
************************************************************************

************************************************************************
subroutine dsepmstable(eep,aa,bb,cc,ww,xx,yy)
************************************************************************

dseprsm.f
***********************************************************************
*** real function dseprsm gives the ratio of electro+positron flux in an
*** a+ cycle to that in an a- cycle as a function of positron energy
*** in gev.

135

136

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

*** from clem et al, apj 464 (1996) 507.
*** author: joakim edsjo, edsjo@physto.se
***********************************************************************
real*8 function dseprsm(eep)

dsepset.f
subroutine dsepset(c)
c...set parameters for positron routines
c... c - character string specifying choice to be made
c...author: joakim edsjo, 2000-07-09
c...modified: paolo gondolo, 2000-07-19
c...
joakim edsjo, 2000-08-15

dsepsigvdnde.f
**********************************************************************
*** function dsepsigvdnde gives the differential spectrum of positrons
*** when they are created.
*** input: eep in gev
*** output:  dn/de in units of cm^3 s^-1 gev^-1
*** author: joakim edsjo, edsjo@physto.se
*** date: jun-01-98
*** modified: 99-07-02 paolo gondolo
**********************************************************************
real*8 function dsepsigvdnde(eep)

dsepspec.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
***
jul-06-99 paolo gondolo - calls to dshunt, ee, vv
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
************************************************************************

************************************************************************
*** real*8 function dsepspec calculates the differential positron
*** spectrum from neutralino annihilation in the halo.
*** input: e - positron kinetic energy in gev
***
mchi - neutralino mass in gev
***
sigvline - _e+e- in cm^3 s^-1
***
sigvdnde(eep) -  dn/de in cm^3 s^-1 gev^-1
***
ee - r8 function that gives energy as a fcn of v

11.3. ROUTINE HEADERS – FORTRAN FILES
***
vv - r8 function that gives v as function of energy
***
metric - r8 function that gives metric as fcn of v
*** output: spectrum in units of cm^-2 s^-1 sr^-1 gev^-1
************************************************************************
real*8 function dsepspec(e,mchi,sigvline,sigvdnde,ee,vv,metric)

dseptab.f
**********************************************************************
*** subroutine dseptab tabulates  dn/de to speed up the
*** positron flux routines. the interpolation is done with dsepipol.
*** input: emin - minimal energy for table
***
npts - number of points for the table
*** author: joakim edsjo, edsjo@physto.se
*** date: jun-02-98
**********************************************************************
subroutine dseptab(em,npts)

dsepvvcut.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
************************************************************************

************************************************************************
real*8 function dsepvvcut(e)
************************************************************************

dsepvvuncut.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
************************************************************************

************************************************************************
real*8 function dsepvvuncut(e)
************************************************************************

dsepwcut.f
************************************************************************

137

138

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
***
jul-06-99 paolo gondolo - calls to dshunt, ee, vv
************************************************************************

************************************************************************
real*8 function dsepwcut(v,tabindx)
************************************************************************

dsepwuncut.f
************************************************************************
*** positron propagation routines.
*** author: e.a. baltz (eabaltz@astron.berkeley.edu)
*** modified slightly by joakim edsjo (edsjo@physto.se)
*** date: jun-02-98
*** modified: jun-09-98
************************************************************************

************************************************************************
real*8 function dsepwuncut(v)
************************************************************************

dsgalpropig.f
**********************************************************************
*** function dsgalpropig is the positron spectrum times the greens
*** function from galprop
*** this routine is integrated by dsepgalpropdiff to give the differential
*** positron flux at earth.
*** units: gev^-2 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se,
***
edward baltz eabaltz@alum.mit.edu
*** date: 2006 4/27
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsgalpropig(eep,pbar)

dsgalpropig2.f
**********************************************************************
*** function dsgalpropig2 is the positron spectrum times the greens
*** function from galprop
*** this routine is integrated by dsepgalpropdiff to give the differential
*** positron flux at earth. the independent variable for this

11.3. ROUTINE HEADERS – FORTRAN FILES
*** routine is x=1/e**2 instead of e as in dsepgalpropig.
*** units: gev^-2 cm^-2 sec^-1 sr^-1
*** author: joakim edsjo, edsjo@physto.se,
***
edward baltz eabaltz@alum.mit.edu
*** date: 2006 4/27
*** Modified: Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dsgalpropig2(x,pbar)

dsgalpropset.f
subroutine dsgalpropset(c)
c...set parameters for positron routines
c... c - character string specifying choice to be made
c...author: joakim edsjo, 2006-02-21

139

140

CHAPTER 11. EP: POSITRON FLUXES FROM THE HALO

Chapter 12

src/ep2:
Positron fluxes from the halo
(alternative solution)
12.1

Routine headers – fortran files

dsepintgreen.f
real*8 function dsepintgreen(DeltaV)
****************************************************************
***
***
*** function which gives the integral over volume of the
***
*** positron green function times dsephaloterm (which is the ***
*** square of the density normalized to the local halo
***
*** density for a smooth halo profile, i.e. for hclumpy = 1, ***
*** and the density probability of clumps normalized to the ***
*** local halo density for a clumpy halo, i.e. hclumpy = 2) ***
*** as a function of:
***
***
DeltaV = 4 * K0 * tau_E * deltav in units of kpc**2
***
*** i.e. of a given deltav = v(Eps)- v(Epsprime) this should ***
*** be called with:
***
***
DeltaV=4.0d0*k27*tau16*deltav*10.d0/kpc**2
***
*** where kpc=3.08567802d0 and the 10/kpc**2 converts from
***
*** units of 10**43 cm**2 to units of kpc**2
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-02-03
***
****************************************************************

dsepspecm.f
real*8 function dsepspecm(eps,how)
****************************************************************
***
***
*** function which computes the differential flux of
***
*** positrons for the energy eps as a result of
***
141

142CHAPTER 12. EP2: POSITRON FLUXES FROM THE HALO (ALTERNATIVE SOLUTION)
*** neutralino annihilation in the halo.
***
*** input: eps - positron energy in gev
***
***
how = 2 - diffusion model is tabulated on first
***
***
call, and then interpolated
***
***
3 - as 2, but also write the table to disk ***
***
at the first call
***
***
4 - read table from disk on first call, and ***
***
use the subsequent calls. If the file
***
***
does not exist, it will be created
***
***
(as in 3). (default)
***
***
***
*** rescaling is not included
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-02-03
***
*** Modified: Joakim Edsjo, modifications to file loading
***
****************************************************************

dsepvofeps.f
****************************************************************
***
***
*** functions which give conversions between the variables
***
*** eps - u - v for the positron flux calculation
***
*** the conversion between eps and v and viceversa is done
***
*** through a tabulation, to reset this tabulation
***
*** reinitialize the variable vofeset
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-02-03
***
****************************************************************

c
c
c
c

real*8 function dsepuofeps(eps)
this is the definition of the function u(eps)
u = int_eps^epsmax depsp 1/(tau*b(epsp))
NOTE: this assumes u=1/eps, change this when you implement the general
formula

Chapter 13

src/ge:
General routines
13.1

General routines

In ge/, we collect routines that are of general interest to many other routines in DarkSUSY. E.g.,
we have routins to find elements in arrays (used for interpolation), Bessel functions, error functions,
spline routines, etc.

13.2

Routine headers – fortran files

cosd.f
function cosd(x)
No header found.

dsabsq.f
c_______________________________________________________________________
c abs squared of a complex*16 number.
c called by dwdcos.
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================
function dsabsq(z)

dsbessei0.f
************************************************************************
real*8 function dsbessei0(x)
************************************************************************
c
exp(-|x|) i_0(x)

dsbessei1.f
c

real*8 function dsbessei1(x)
exp(-|x|) i1(x)
143

144

CHAPTER 13. GE: GENERAL ROUTINES

dsbessek0.f
***********************************************************************
*** function dsbessek0 returns the value of the modified bessel
***
*** function of the second kind of order 0 times exp(x)
***
*** works for positive real x
***
*** coefficients from abramovitz and stegun.
***
*** e-mail: edsjo@physto.se
***
*** date: 98-04-29
***
***********************************************************************
real*8 function dsbessek0(x)

dsbessek1.f
***********************************************************************
*** function dsbessek1 returns the value of the modified bessel
***
*** function of the second kind of order 1 times exp(x).
***
*** works for positive real x
***
*** coefficients from abramovitz and stegun.
***
*** e-mail: edsjo@physto.se
***
*** date: 98-04-29
***
***********************************************************************
real*8 function dsbessek1(x)

dsbessek2.f
***********************************************************************
*** function bessk2 returns the value of the modified bessel
***
*** function of the second kind of order 2 times exp(x)
***
*** works for positive real x
***
*** recurrence relation
***
*** e-mail: gondolo@mppmu.mpg.de
***
*** date: 00-07-07
***
***********************************************************************
real*8 function dsbessek2(x)

dsbessjw.f
c....Various bessel functions
c....from P. Ullio
real*8 function dsbessjw(n,x)

dscharadd.f
***********************************************************************
*** dscharadd takes a string str, adds a string add to it
*** and returns the concatenated string with spaces removed.
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2004-01-19
***********************************************************************

13.2. ROUTINE HEADERS – FORTRAN FILES

subroutine dscharadd(str,add)

dsf2s.f
character*12 function dsf2s(x)
No header found.

dsf int.f
real*8 function dsf_int(f,a,b,eps)
c_______________________________________________________________________
c integrate function f between a and b
c input
c
integration limits a and b
c called by different routines
c author: joakim edsjo (edsjo@physto.se) 96-05-16
c
2000-07-19 paolo gondolo added eps as argument
c based on paolo gondolos wxint.f routine.
c=======================================================================

dsf int2.f
real*8 function dsf_int2(f,a,b,eps)
c_______________________________________________________________________
c integrate function f between a and b
c input
c
integration limits a and b
c called by different routines
c author: joakim edsjo (edsjo@physto.se) 96-05-16
c
2000-07-19 paolo gondolo added eps as argument
c based on paolo gondolos wxint.f routine.
c the same routine as dsf_int but used when double integration is needed.
c=======================================================================

dshiprecint3.f
subroutine dshiprecint3(fun,lowlim,upplim,result)
No header found.

dshunt.f
************************************************************************
subroutine dshunt(xx,n,x,indx)
*** returns the lowest index indx for which x>xx(indx).
*** if x<= xx(i) it returns 0,
*** if x>xx(n) it returns indx=n
************************************************************************

145

146

CHAPTER 13. GE: GENERAL ROUTINES

dsi2s.f
character*8 function dsi2s(x)
No header found.

dsi trim.f
function dsi_trim(s)
No header found.

dsidtag.f
character*12 function dsidtag()
No header found.

dsisnan.f
**********************************************************************
*** function to check if a real*8 number is NaN, returns true if it is
**********************************************************************
logical function dsisnan(a)

dsquartic.f
subroutine dsquartic(a3,a2,a1,a0,z1,z2,z3,z4)
c_______________________________________________________________________
c analytic solution of z^4 + a3 z^3 + a2 z^2 + a1 z + a0 = 0
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dsrnd1.f
function dsrnd1(idum)
c_______________________________________________________________________
c uniform deviate between 0 and 1.
c input:
c
idum - seed (integer); enter negative integer at first call
c=======================================================================

dsrndlin.f
function dsrndlin(idum,a,b)
No header found.

dsrndlog.f
function dsrndlog(idum,a,b)
No header found.

dsrndsgn.f
function dsrndsgn(idum)
No header found.

13.2. ROUTINE HEADERS – FORTRAN FILES

dswrite.f
subroutine dswrite(level,opt,message)
c_______________________________________________________________________
c handle writing onto standard output in darksusy
c input:
c
level - print message if prtlevel is >= level
c
opt
- print (1) the model tag or not (0)
c
message - string containing the text to print
c common:
c
’dsio.h’ - i/o units numbers and prtlevel
c author: paolo gondolo 1999
c=======================================================================

erf.f
function erf(x)
No header found.

erfc.f
function erfc(x)
No header found.

sind.f
function sind(x)
No header found.

spline.f
SUBROUTINE spline(x,y,n,yp1,ypn,y2)
c spline routine, double precision

splint.f
SUBROUTINE splint(xa,ya,y2a,n,x,y)
c spline routine, double precision

147

148

CHAPTER 13. GE: GENERAL ROUTINES

Chapter 14

src/ha:
Halo annihilation yields
14.1

Annihilation in the halo, yields – theory

Here we calculate yields from annihilation in the halo.

14.1.1

Monte Carlo simulations

We need to evaluate the yield of different particles per neutralino annihilation. The hadronization
and/or decay of the annihilation products are simulated with Pythia [90] 6.154. The simulations
are done for a set of 18 neutralino masses, mχ = 10, 25, 50, 80.3, 91.2, 100, 150, 176, 200, 250, 350,
500, 750, 1000, 1500, 2000, 3000 and 5000 GeV. We tabulate the yields and then interpolate these
tables in DarkSUSY.
The simulations are here simpler than those for annihilation in the Sun/Earth since we don’t
have a surrounding medium that can stop the annihilation products. We here simulate for 8
‘fundamental’ annihilation channels cc̄, bb̄, tt̄, τ + τ − , W + W − , Z 0 Z 0 , gg and µ+ µ− . Compared
to the simulations in the Earth and the Sun, we now let pions and kaons decay and we also
let antineutrons decay to antiprotons. For each mass we simulate 2.5 × 106 annihilations and
tabulate the yield of antiprotons, positrons, gamma rays (not the gamma lines), muon neutrinos
and neutrino-to-muon conversion rates and the neutrino-induced muon yield, where in the last two
cases the neutrino-nucleon interactions has been simulated with Pythia as outlined in section 18.1.1
With these simulations, we can calculate the yield for any of these particles for a given MSSM
model. For the Higgs bosons, which decay in flight, an integration over the angle of the decay
products with respect to the direction of the Higgs boson is performed. Given the branching ratios
for different annihilation channels it is then straightforward to compute the muon flux above any
given energy threshold and within any angular region around the Sun or the center of the Earth.

14.2

Routine headers – fortran files

dshacom.f
No header found.

dshadec.f
*****************************************************************
*** suboutine dshadec decomposes yieldcode yieldk to flyxtype
149

150

CHAPTER 14. HA: HALO ANNIHILATION YIELDS

*** fltype and fi
*****************************************************************
subroutine dshadec(yieldk,fltyp,fi)

dshadydth.f
*****************************************************************************
*** function dshadydth is the differential yield dyield/dcostheta in the
*** cm system boosted to the lab system (including proper jacobians if
*** we are dealing with a differential yield.
*** the function should be integrated from -1 to 1, by e.g.
*** the routine gadap.
*** units: (annihilation)**-1
*****************************************************************************
real*8 function dshadydth(cth)

dshadyh.f
*****************************************************************************
*** function dshadyh is the differential yield dyield/dcostheta in the
*** cm system boosted to the lab system (including proper jacobians if
*** we are dealing with a differential yield. all decay channels of the
*** higgs boson in question are summed.
*** the function should be integrated from -1 to 1, by e.g.
*** the routine gadap.
*** units: (annihilation)**-1
*** author: joakim edsjo (edsjo@physto.se)
*** date: 1998
*** modified: 98-04-15
*****************************************************************************
real*8 function dshadyh(cth)

dshaemean.f
******************************************************************************
*** function dshaemean is used to calculate the mean energy of a decay product
*** when a moving particle decays. e0 and m0 are the energy and mass of
*** the moving particle and m1 and m2 are the masses of the decay products.
*** it is the mean energy of m1 that is returned. all energies and masses
*** should be given in gev.
******************************************************************************
real*8 function dshaemean(e0,m0,m1,m2)

dshaifind.f
**********************************************************
*** routine to find the index of an entry
***
*** the closest lowest hit is given
***
*** author: joakim edsjo (edsjo@physics.berkeley.edu) ***

14.2. ROUTINE HEADERS – FORTRAN FILES
*** date: 98-01-26
**********************************************************
subroutine dshaifind(value,array,ipl,ii,imin,imax)

dshainit.f
*****************************************************************************
***
subroutine dshainit initializes and loads (from disk) the common
***
block variables needed by the other halo yield routines. yieldk is
***
the yield type (51,52 or 53 (or 151, 152, 153)) for
***
positron yields, cont. gamma or muon neutrino yields respectively.
***
yieldk is used to check that the provided data file is of the
***
correct type. if yieldk=51,52 or 53 integrated yields are loaded and
***
if yieldk =151, 152 or 153, differential yields are loaded.
***
author: joakim edsjo
***
edsjo@physto.se date: 96-10-23 (based on dsmuinit.f version
***
3.21)
***
modified: 98-01-26
*****************************************************************************
subroutine dshainit(yieldk)

dshapbyieldf.f
***********************************************************************
*** function dshapbyieldf gives the distributions of antiprotons for
***
*** basic annihilation channels chi=1-8. parameterizations to the
***
*** distributions are used.
***
*** input: mx - neutralino mass (gev)
***
***
tp - antiproton kinetic energy (gev)
***
***
chi - annihilation channel, 1-8, (short version)
***
*** output: differential distribution, p-bar gev^-1 annihilation^-1 ***
*** author: joakim edsjo, edsjo@physto.se
***
*** date: 1998-10-27
***
***********************************************************************
real*8 function dshapbyieldf(mx,tp,chi)

dshawspec.f
**********************************************************************
*** subroutine dshawspec dumps the spectrum for which dshayield_int failed
*** to the file haspec.dat
**********************************************************************
subroutine dshawspec(f,a,b,n)

dshayield.f
*****************************************************************************
*** function dshayield calculates the yield above threshold
*** or the differential flux, for the

151

152

CHAPTER 14. HA: HALO ANNIHILATION YIELDS

*** fluxtype given by yieldk, according to the following table.
***
*** particle
integrated yield
differential yield
*** ---------------------------------------*** positron
51
151
*** cont. gamma
52
152
*** nu_mu and nu_mu-bar
53
153
*** antiproton
54
154
*** cont. gamma w/o pi0
55
155
*** nu_e and nu_e-bar
56
156
*** nu_tau and nu_tau-bar
57
157
*** pi0
58
158
*** nu_mu and nu_mu-bar
71
171 (same as 53/153)
*** muons from nu at creation
72
172
*** muons from nu at detector
73
173
***
*** channels ch=1-14 are supported.
*** The annihilation channels are
*** ch = 1 - c c-bar
***
2 - b b-bar
***
3 - t t-bar
***
4 - tau+ tau***
5 - W+ W***
6 - Z0 Z0
***
7 - H1 H3
***
8 - Z0 H1
***
9 - Z0 H2
***
10 - W+- H-+
***
11 - H2 H3
***
12 - gluon gluon
***
13 - mu+ mu***
14 - Z0 gamma
***
*** the units are (annihilation)**-1
*** for the differential yields, the units are the same plus gev**-1.
***
*** note. The correct data files need to be loaded. This is handled by
*** a call to dshainit. It is done automatically here upon first call.
***
*** author: joakim edsjo (edsjo@physics.berkeley.edu)
*** date: 98-01-26
*** modified: 98-02-18
*****************************************************************************
real*8 function dshayield(mneu,emuthr,ch,yieldk,istat)

dshayield int.f
real*8 function dshayield_int(f,a,b)
c_______________________________________________________________________
c integrate function f between a and b
c input

14.2. ROUTINE HEADERS – FORTRAN FILES
c
integration limits a and b
c called by dshayieldfth
c author: joakim edsjo (edsjo@physto.se) 96-05-16
c based on paolo gondolos wxint.f routine.
c integration in log, paolo gondolo 99
c=======================================================================

dshayielddec.f
*****************************************************************************
*** function dshayielddec integrates dshadyh over cos theta.
*** the higgs decay channels are summed in dshadyh
*** units: (annihilation)**-1
*****************************************************************************
real*8 function dshayielddec(eh,hno,emuth,yieldk,istat)

dshayieldf.f
*****************************************************************************
*** function dshayieldf calculates the yield above threshold (or differential
*** at that energy) for the annihilation channel ch and the
*** fluxtype given by yieldk, according to the following table.
***
*** particle
integrated yield
differential yield
*** ---------------------------------------*** positron
51
151
*** cont. gamma
52
152
*** nu_mu and nu_mu-bar
53
153
*** antiproton
54
154
*** cont. gamma w/o pi0
55
155
*** nu_e and nu_e-bar
56
156
*** nu_tau and nu_tau-bar
57
157
*** pi0
58
158
*** nu_mu and nu_mu-bar
71
171 (same as 53/153)
*** muons from nu at creation
72
172
*** muons from nu at detector
73
173
***
*** only channels chi = 1-8 are supported.
*** chi = 1 - c c-bar
***
2 - b b-bar
***
3 - t t-bar
***
4 - tau+ tau***
5 - W+ W***
6 - Z0 Z0
***
7 - mu+ mu***
8 - gluon gluon
*** units: (annihilation)**-1 integrated
*** units: gev**-1 (annihilation)**1 differential
***
*** Note: if this routine is called directly, without calling dshayield
*** first, one needs to load the correct yield tables manually first

153

154

CHAPTER 14. HA: HALO ANNIHILATION YIELDS

*** with a call to dshainit(yieldk) (only needs to be done once).
*****************************************************************************
real*8 function dshayieldf(mneu,emuthr,ch,yieldk,istat)

dshayieldfth.f
*****************************************************************************
*** function dshayieldfth integrates dshadydth over cos theta.
*** it is the yield from particle 1 (which decays from m0)
*** that is calculated. particle one corresponds to channel ch.
*** units: (annihilation)**-1
*****************************************************************************

&

real*8 function dshayieldfth(e0,m0,mp1,mp2,emuthr,ch,yieldk,
istat)

dshayieldget.f
*****************************************************************************
*** function dshayieldget gives the information in the differential and
*** integrated arrays phiit and phidiff for given array indices.
*** compared to getting the results directly from the array, this
*** routine performs smoothing if requested.
*** the smoothing is controlled by the parameter hasmooth in the
*** following manner.
*** hasmooth = 0 - no smoothing
***
1 - smoothing of zi-1,zi and zi+1 bins if z>.3
***
2 - smoothing of zi-2,zi-1,zi,zi+1 and zi+2 if z>0.3
*****************************************************************************
real*8 function dshayieldget(zi,mxi,ch,fi,ftype,istat)

dshayieldh.f
*****************************************************************************
*** function dshayieldh calculates the yield above threshold (yieldk=1) or the
*** differential yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: (annihilation)**-1
*****************************************************************************
real*8 function dshayieldh(eh,emuth,hno,yieldk,istat)

dshayieldh2.f
*****************************************************************************
*** function dshayieldh2 calculates the yield above threshold (yieldk=1) or the
*** differential yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given

14.2. ROUTINE HEADERS – FORTRAN FILES
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: 1.0e-30 m**-2 (annihilation)**-1
*****************************************************************************
real*8 function dshayieldh2(eh,emuth,hno,yieldk,istat)

dshayieldh3.f
*****************************************************************************
*** function dshayieldh3 calculates the yield above threshold (yieldk=1) or the
*** differntial yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: 1.0e-30 m**-2 (annihilation)**-1
*****************************************************************************
real*8 function dshayieldh3(eh,emuth,hno,yieldk,istat)

dshayieldh4.f
*****************************************************************************
*** function dshayieldh4 calculates the yield above threshold (yieldk=1) or the
*** differential yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: 1.0e-30 m**-2 (annihilation)**-1
*****************************************************************************
real*8 function dshayieldh4(eh,emuth,hno,yieldk,istat)

155

156

CHAPTER 14. HA: HALO ANNIHILATION YIELDS

Chapter 15

src/hm:
Halo models
15.1

Halo models – theory

All the dark matter detection rates depend in one way or another on the properties of the Milky Way
dark matter halo. We will here outline the halo model that by default is included with DarkSUSY.
The mass distribution in the Milky Way and the relative importance of its three components,
the bulge, the disk and the halo, are poorly constrained by available observational data. Although
the dynamics of the satellites of the galaxy clearly indicates the presence of a non-luminous matter
component, a discrimination among the different radial dark matter halo profiles proposed in the
literature is not possible at the time being [127]. One approach is to assume that dark matter
profiles are of a universal functional form and to infer the Milky Way dark matter distribution from
the results of N-body simulations of hierarchical clustering in cold dark matter cosmologies. The
predicted profiles in these scenarios have been tested to a sample of dark matter dominated dwarf
and low-surface brightness galaxies which provide the best opportunities to test the spatial distribution of dark matter. Actually this field of research is in rapid evolution and slightly discrepant
results have recently been presented [113, 128, 129, 130].
In DarkSUSY, we include a dark matter halo profile of the form
ρ(r) ∝

1
.
(r/a)γ [1 + (r/a)α ](β−γ)/α

(15.1)

With this family of profiles, we have a parameterization of most spherically symmetric profiles in
the literature. In Table 15.1 we list the corresponding values of α, β and γ for some popular profiles.
One should keep in mind that some of these profiles are very steep at the center of the galaxy
which might be in conflict with observations. In fact, this is a topic under rapid evolution at present.
Some researchers have taken the view that the steep profiles seen in simulations are impossible to
Model
Isothermal sphere [129]
Kravtsov et al. [129]
Navarro, Frenk and White [113]
Moore et al. [130]

(α, β, γ)
(2, 2, 0)
(2, 3, 0.2 − 0.4)
(1, 3, 1)
(?, ?, ?)

a (kpc)

Table 15.1: Different halo dark matter profiles and their corresponding parameters. COMMENT
#4: Include a-values here as well?!?

157

158

CHAPTER 15. HM: HALO MODELS

match with observations, and therefore drastic modifications of the cold dark matter scenario have
been proposed. Examples are self-interacting [136] or strongly self-annihilating [137] dark matter
models. None of these proposals can be made to work in MSSM models, so we do not consider
them in DarkSUSY. It should also be noted that there could be other, astrophysics-related solutions
to these problems, which involve the interplay between the baryons and the dark matter.
Our galactocentric distance R0 is not entirely known. Estimates for R0 range from 7.1 kpc to
8.5 kpc [145, 144, ?] and in DarkSUSY we use R0 = 8.5 kpc as a default. COMMENT #5: Check
R0 default. (JE) We also choose the modified isothermal distribution as a default, but this can
be changed by the user.
As a further uncertainty, it is unknown precisely how the black hole at the galactic center would
have interacted with the halo neutralino distribution. In fact, there are indications that a profile
more singular than NFW would cause a very steep cusp (a “spike”) near the Galactic center, with a
high enough density that even the flux of neutrinos from that population could be detected [138]. If
this really exists, essentially all MSSM models may already be excluded through the non-detection
of radio emission from electrons and positrons generated in the annihilations [139]. It should be
noted though that these estimates involve many uncertainties.
We only consider spherical profiles; introducing a flattening parameter may enhance the value
of the flux but the effect is not expected to be dramatic for this neutralino detection method and
we prefer not to introduce another factor of uncertainty.
We also need to specify the normalization constant of the halo profile, which we choose as the
value of the halo density ρ0 at our galactocentric distance R0 , the core radius a and R0 . One should
keep in mind that there is correlation between the allowed values of a and ρ0 and the chosen halo
profile [176, 140] due to constraints on e.g. the total mass of the galaxy within 100 pc and the dark
matter contribution to the local rotation curve. In Table ?? we list typical values of a and ρ0 that
we have chosen based on these constraints for the different profiles. For more details about these
arguments, see [176, 140]. The DarkSUSY default value for ρ0 is 0.3 GeV/cm3 .
Usually, the local galactic dark matter velocity distribution is taken to be a truncated gaussian,
which in the detector frame moving at speed vO relative to the galactic halo reads





1
(u − vO )2
min(u + vO , vcut )2
v2
f (v) =
exp −
− exp −
(15.2)
Ncut uvO σ
2σ 2
2σ 2
p
p
2 and
2 + (v + v
2
v 2 + vesc
for vesc < v < vesc
O
cut ) and zero otherwise, with u =
Ncut


 2  r

vcut
vcut
vcut
π
=
.
exp − 2 −
erf √
σ
2σ
2
2σ

(15.3)

As default, we have taken the halo line-of-sight (one-dimensional) velocity dispersion σ =120 km/s,∗
the galactic escape speed vcut = 600 km/s, the relative Earth-halo speed vO = 264 km/s (a yearly
average) and the Earth escape speed vesc = 11.9 km/s. These parameters can be changed by the
user. In some instances, like neutralino capture in the Earth, the user can specify an arbitrary
velocity distribution by providing a subroutine.

15.1.1

Rescaling of the neutralino density

It is natural to assume that the neutralinos make up most of the dark matter in our galaxy. One
may therefore only consider MSSM models which are cosmologically interesting, i.e. where the
neutralinos can make up a major fraction of the dark matter in the Universe without overclosing
it. This range is usually chosen to be 0.025 < Ωχ h2 < 1. However, the user may want to either
enlarge or narrow this range. If, as is perhaps most natural, the neutralino alone contributes the
major fraction of non-baryonic dark matter in the Universe, one may want to refer to the current
∗ Other

authors write exp(−3v2 /2v 2 ), in which case v =

√

3σ.

15.2. HALO MODEL – ROUTINES

159

values of cosmological parameters and fix Ωχ h2 to be in the interval between, say 0.1 and 0.3. If
there are other components of the dark matter, one may want to tolerate smaller numbers. If one
makes use of the poor knowledge of how galaxy halos were formed, all the range down to 0.025
may be taken as acceptable. However, if Ωχ h2 drops below 0.025, it cannot account for all the dark
matter associated with galaxy halos. A frequently used recipe is then to rescale the estimated local
dark matter density ρ0 ∼ 0.3 GeV/cm3 by Ωχ h2 /0.025, giving a lower local density in the form of
neutralinos. Although this may seem a harmless procedure, one should keep in mind that it is very
ad hoc and that it may overestimate the preponderance of models with large direct detection rates.
This is because of the general result that Ωχ h2 ∼ 1/σann v, and crossing symmetry generally relates
a large annihilation cross section to a large scattering cross section. (For indirect detection in the
halo, the effect is moderated by the fact that the rates are proportional to the square of the density,
which thus involves the square of the rescaling factor.) In DarkSUSY, the user can set the value
of the local dark matter density (the default is 0.3 GeV/cm3 ) and determine whether rescaling is
2
to be used or not, and in that case the lowest tolerable Ωmin
χ h below which rescaling should take
place. If rescaling is used, all output detection rates are computed with the rescaled value when
appropriate.

15.2

Halo model – routines

The most important routine is dshmset which sets the chosen halo profile.

15.3

Routine headers – fortran files

dshmabgrho.f
****************************************************************
*** dark matter halo density profile in case of the
***
*** (alphah,beta,gamma) zhao model.
***
*** it is a double power law profile, where - gamma is
***
***
the slope towards the galactic centre, - beta is
***
***
the slope at large galactocentric distances and
***
***
alphah determines the width of the transition zone. ***
***
e.g.: modified isothermal sphere profile = (2,2,0); ***
***
nfw profile = (1,3,1);
***
***
moore et al. profile = (1.5,3,1.5)
***
***
***
*** radialdist = galactocentric distance in kpc
***
*** ah = length scale in kpc
***
*** rhoref = dark matter density in gev/cm**3 at the
***
*** galactocentric distance Rref (in kpc)
***
***
***
*** Author: Piero Ullio (ullio@sissa.it)
***
*** Date: 2004-01-12
***
****************************************************************
real*8 function dshmabgrho(radialdist)

dshmaxiprob.f
****************************************************************
*** axisymmetric probability distribution function for
***

160

CHAPTER 15. HM: HALO MODELS

*** equal and small (i.e. unresolved) dark matter clumps
***
***
***
*** Input: radcoord = radial coordinate in kpc
***
***
vertcoord = vertical coordinate in kpc
***
***
in a cylindrical coordinate system centered in
***
***
the Galactic Center
***
*** Output: dshmaxiprob in GeV/cm^3, i.e. for the moment
***
***
the normalization has to be such that
***
***
dshmaxiprob(r_0,0.d0)=local halo density=rho0
***
***
***
*** Author: Piero Ullio (ullio@sissa.it)
***
*** Date: 2004-01-12
***
****************************************************************
real*8 function dshmaxiprob(radcoord,vertcoord)

dshmaxirho.f
****************************************************************
*** axisymmetric dark matter halo density profile
***
***
***
*** Input: radcoord = radial coordinate in kpc
***
***
vertcoord = vertical coordinate in kpc
***
***
in a cylindrical coordinate system centered in
***
***
the Galactic Center
***
*** Output: dshmaxirho = density in GeV/cm^3
***
***
e.g.: local halo density = rho0 = dshmaxirho(r_0,0.d0) ***
***
***
*** Author: Piero Ullio (ullio@sissa.it)
***
*** Date: 2004-01-12
***
****************************************************************
real*8 function dshmaxirho(radcoord,vertcoord)

dshmboerrho.f
****************************************************************
*** Dark matter density profile for the de Boer et al fit
*** as reported in astro-ph/0508617.
*** The profile has a triaxial smooth halo and two
*** rings of dark matter.
***
*** Input: x - distance from galactic center towards the Earth (kpc)
***
y - distance from GC in the galactic plane
***
perpendicular to x (kpc)
***
z - height above galactic plane (kpc)
The density profile of de Boer et al. consists of a dark matter halo with the following ingredients:
• a triaxial smooth halo,
• an inner ring at about 4.15 kpc with a density falling off as ρ ∼ e−|z|/σz,1 ; σz,1 = 0.17 kpc,
and

15.3. ROUTINE HEADERS – FORTRAN FILES

161

• an outer ring at about 12.9 kpc with a density falling off as ρ ∼ e−|z|/σz,2 ; σz,2 = 1.7 kpc.
*** The parameters of the profile are set in dshmset.
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date:
2005-12-08
****************************************************************
real*8 function dshmboerrho(x,y,z)

dshmboerrhoaxi.f
****************************************************************
*** A symmetrized (avergaed over phi) version of de Boers profile
*** as reported in astro-ph/0508617.
*** The profile has a triaxial smooth halo and two
*** rings of dark matter.
***
*** Input: r - cylindrical radius from galactic center (kpc)
***
z - height above galactic plane (kpc)
***
how - 1: returns the average  over phi
***
2: returns the average sqrt() suitable
***
for symmetrization for annihilation rates (like pbar)
*** The paramters of the profile are set in dshmset.
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date:
2005-12-08
****************************************************************
real*8 function dshmboerrhoaxi(r,z,how)

dshmburrho.f
****************************************************************
*** dark matter halo density profile in case of the
***
*** burkert model.
***
***
***
*** radialdist = galactocentric distance in kpc
***
*** ah = length scale in kpc
***
*** rhoref = dark matter density in gev/cm**3 at the
***
*** galactocentric distance Rref (in kpc)
***
***
***
*** Author: Piero Ullio (ullio@sissa.it)
***
*** Date: 2004-01-12
***
****************************************************************
real*8 function dshmburrho(radialdist)

dshmdfisotr.f
****************************************************************
***
***
*** halo local velocity distribution function DF(\vec{v})
***
*** for the case of an isotropic distribution, i.e. for
***
***
DF(\vec{v}) = DF(|\vec{v}|) = DF(v)
***

162

CHAPTER 15. HM: HALO MODELS

***
***
*** dshmDFisotr is normalized such that
***
*** int d^3v DF(v) = 4 pi int_0^\infty dv v^2 DF(v) = 1
***
***
***
*** Input: |\vec{v}| = Speed in km/s
***
*** Output: DF(|\vec{v}|) in (km/s)^(-3)
***
***
***
*** Calls other routines depending of choice of velocity
***
*** distribution function (as set by isodf in the common
***
*** blocks in dshmcom.h)
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-01-30
***
****************************************************************
real*8 function dshmDFisotr(v)

dshmdfisotrnum.f
****************************************************************
***
***
*** halo local velocity distribution function DF(\vec{v})
***
*** for the case of an isotropic distribution, i.e. for
***
***
DF(\vec{v}) = DF(|\vec{v}|) = DF(v)
***
*** as loaded from table in file provided by user
***
***
***
*** on first call the function loads from file a table of
***
*** values and then interpolates between them.
***
***
***
*** the file name is set by the isodfnumfile variable
***
*** it is assumed that this file has no header and v DF(v)
***
*** are given with the format 1000 below
***
***
***
*** to reload a (different) file the int. flag dfisonumset
***
*** into the DFisosetcom common block has to be manually
***
*** reset to 0
***
***
***
*** v in km s**-1
***
*** DF(v) in km**-3 s**3
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-01-30
***
****************************************************************
real*8 function dshmDFisotrnum(v)

dshmhaloprof.f
****************************************************************
***
***
*** mod: 04-01-12 pu, this is obsolete and should not
***
*** be used anymore !!!!!!!!!!!!!
***

15.3. ROUTINE HEADERS – FORTRAN FILES
***
***
*** dark matter halo density profile
***
*** it assumes that the halo
***
***
1) is spherically symmetric
***
***
2) has a double power law profile: the
***
***
(alphah,beta,gamma) zhao model, where - gammah is ***
***
the slope towards the galactic centre, - beta is
***
***
the slope at large galactocentric distances and
***
***
alphah determines the width of the transition zone. ***
***
e.g.: modified isothermal sphere profile = (2,2,0); ***
***
nfw profile = (1,3,1);
***
***
moore et al. profile = (1.5,3,1.5)
***
***
***
*** rr = galactocentric distance in kpc
***
*** a = length scale in kpc
***
*** r_0 = galactocentric distance of the sun in kpc
***
*** rho0 = local dark matter density (=val(r_0)) in gev/cm**3***
***
***
*** the profile is truncated at 10**-5 kpc assuming
***
*** val(rr<10**-5 kpc) = val(rr=10**-5 kpc)
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
****************************************************************
subroutine dshmhaloprof(rr,val)

dshmj.f
****************************************************************
*** function dshmj: line of sight integral which enters in the ***
*** computation of the gamma-ray and neutrino fluxes from
***
*** pair annihilations of wimps in the halo.
***
***
***
*** see definition in e.g. bergstrom et al.,
***
***
phys. rev d59 (1999) 043506
***
*** in case of the many unresolved clump scenario the term
***
*** fdelta is factorized out
***
***
***
*** it is valid for a spherical dark matter halo
***
*** psi0 is the angle between direction of observation
***
*** and the direction of the galactic center; cospsi0 is
***
*** its cosine.
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
****************************************************************
real*8 function dshmj(cospsi0in)

163

164

CHAPTER 15. HM: HALO MODELS

dshmjave.f
****************************************************************
*** function dshmjave: average over the solid angle
***
*** delta (sr) of the function dshmj(cospsi0)
***
***
***
*** dshmj is the line of sight integral which enters in the ***
*** computation of the gamma-ray and neutrino fluxes from
***
*** pair annihilations of wimps in the halo.
***
***
***
*** see definition in e.g. bergstrom et al.,
***
***
phys. rev. d59 (1999) 043506
***
*** in case of the many unresolved clump scenario the term
***
*** fdelta is factorized out
***
***
***
*** it is valid for a spherical dark matter halo
***
*** psi0 is the angle between direction of observation
***
*** and the direction of the galactic center; cospsi0 is
***
*** its cosine.
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
****************************************************************

real*8 function dshmjave(cospsi0in,deltain)

dshmjavegc.f
****************************************************************
*** function dshmjavegc: average over the solid angle
***
*** delta (sr) of the function dshmj(cospsi0) in case of the ***
*** galactic center
***
***
***
*** dshmj is the line of sight integral which enters in the ***
*** computation of the gamma-ray and neutrino fluxes from
***
*** pair annihilations of wimps in the halo.
***
***
***
*** see definition in e.g. bergstrom et al.,
***
***
phys. rev. d59 (1999) 043506
***
*** in case of the many unresolved clump scenario the term
***
*** fdelta is factorized out
***
***
***
*** it is valid for a spherical dark matter halo
***
*** psi0, which must be 0.d0 is the angle between direction ***
*** of observation and the direction of the galactic center; ***
*** cospsi0 is its cosine.
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
****************************************************************

15.3. ROUTINE HEADERS – FORTRAN FILES

real*8 function dshmjavegc(cospsi0in,deltain)

dshmjavepar1.f
****************************************************************
*** function integrated in dshmjave
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
****************************************************************
real*8 function dshmjavepar1(rrtmp)

dshmjavepar2.f
****************************************************************
*** function integrated in dshmjavepar1
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
*** mod: 04-01-13 pu
***
****************************************************************
real*8 function dshmjavepar2(cospsi)

dshmjavepar3.f
****************************************************************
*** function integrated in dshmjavegc
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
****************************************************************
real*8 function dshmjavepar3(cospsiin)

dshmjavepar4.f
****************************************************************
*** function integrated in dshmjavepar3
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
****************************************************************
real*8 function dshmjavepar4(rrin)

dshmjavepar5.f
****************************************************************
*** function integrated in dshmjavegc
***
*** integration in cos(phi) performed in here, the result
***

165

166

CHAPTER 15. HM: HALO MODELS

*** still needs to be multiplied by 2 pi
***
***
***
*** author: piero ullio (ullio@sissa.it)
***
*** date: 01-10-10
***
****************************************************************
real*8 function dshmjavepar5(rrin)

dshmjpar1.f
****************************************************************
*** function integrated in dshmj
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
*** mod: 04-01-13 pu
***
****************************************************************

real*8 function dshmjpar1(rr)

dshmn03rho.f
****************************************************************
*** dark matter halo density profile in case of the
***
*** navarro et al. (2003) model.
***
***
***
*** radialdist = galactocentric distance in kpc
***
*** an03 = length scale in kpc
***
*** rhoref = dark matter density in gev/cm**3 at the
***
*** galactocentric distance Rref (in kpc)
***
***
***
*** Author: Piero Ullio (ullio@sissa.it)
***
*** Date: 2004-01-12
***
****************************************************************
real*8 function dshmn03rho(radialdist)

dshmnumrho.f
****************************************************************
*** dark matter halo density profile in case of the
***
*** profile is loaded from a file.
***
***
***
*** radialdist = galactocentric distance in kpc
***
***
***
*** Author: Piero Ullio (ullio@sissa.it)
***
*** Date: 2004-01-12
***
****************************************************************
real*8 function dshmnumrho(radialdist)

15.3. ROUTINE HEADERS – FORTRAN FILES

dshmrescale rho.f
subroutine dshmrescale_rho(oh2,oh2min)
No header found.

dshmrho.f
****************************************************************
*** dark matter halo density profile
***
***
***
*** Input: r = galactocentric distance in kpc
***
*** Output: dshmrho = density in GeV/cm^3
***
***
***
*** links to dshmsphrho where the profile is calculated
***
*** Author: Joakim Edsjo
***
*** Date: 2000-09-02
***
*** mod: 04-01-13 pu
***
****************************************************************
real*8 function dshmrho(r)

dshmrho2cylint.f
**********************************************************************
*** function which gives the integral of the square of the
*** axisymmetric density profile dshmaxirho, normalized to the local
*** halo density, over a cylindrical volume of radius rmax and height
*** 2*zmax, in the frame with the galactic center as its origin,
***
i.e.:
***
2 \pi * int_{-zmax}^{+zmax} dz
***
* int_0^{rmax} dr * r (dshmaxirho(r,zint)/rho0)^2
***
= 2 \pi * 2 int_0^{+zmax} dz
***
* int_0^{rmax} dr * r (dshmaxirho(r,zint)/rho0)^2
***
*** zmax and rmax in kpc
*** dshmrho2cylint in kpc^3
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************
real*8 function dshmrho2cylint(rmax,zmax)

dshmset.f
subroutine dshmset(c)
****************************************************************
*** subroutine dshmset:
***
*** initialize the density profile and or the small clump
***
*** probability distribution
***
*** type of halo:
***
***
hclumpy=1 smooth, hclumpy=2 clumpy
***
***
***

167

168

CHAPTER 15. HM: HALO MODELS

*** a few sample cases are given; specified values of the
***
*** local halo density ’rho0’ and of the length scale
***
*** parameter ’a’ should be considered just indicative
***
***
***
*** author: piero ullio (piero@tapir.caltech.edu)
***
*** date: 00-07-13
***
*** small modif: paolo gondolo 00-07-19
***
*** mod: 03-11-19 je, 04-01-13 pu
***
****************************************************************

dshmsphrho.f
****************************************************************
*** spherically symmetric dark matter halo density profile
***
***
***
*** Input: radialdist = radial coordinate in kpc
***
***
in a spherically symmetric coordinate system
***
***
centered in the Galactic Center
***
***
if radialdist lower than the cut radius rhcut,
***
***
radialdist is shifted to rhcut
***
*** Output: dshmsphrho = density in GeV/cm^3
***
***
e.g.: local halo density = rho0 = dshmsphrho(r_0)
***
***
***
*** Author: Piero Ullio (ullio@sissa.it)
***
*** Date: 2004-01-12
***
****************************************************************
real*8 function dshmsphrho(radialdist)

dshmudf.f
****************************************************************
*** Dark matter halo velocity profile.
***
*** This routine gives back u*DF(u) in units of (km/s)^(-2) ***
***
***
***
u is the modulus of \vec{u} = \vec{v} - \vec{v}_{MY} ***
***
with \vec{v} the 3-d velocity of a WIMP in the
***
***
galactic frame, and \vec{v}_{MY} the projection on
***
***
the frame you are considering
***
***
***
***
DF(u) = int dOmega DF(\vec{v}), where
***
***
DF(\vec{v}) is the halo local velocity distribution
***
***
function in the galactic frame
***
***
***
*** Note: u*DF(u) is the same as f(u)/u, where f(u) is the
***
*** one-dimensional distribution function as defined in e.g. ***
*** Gould, ApJ 321 (1987) 571.
***
***
***
*** Note: it is also the same as the one-dimensional
***
*** distribution function g(u) as defined in, e.g.,
***
*** Ullio & Kamionkowski, JHEP ....
***
***
***

15.3. ROUTINE HEADERS – FORTRAN FILES
*** dshmuDF is normalized such that
***
*** int_0^\infty u*dshmuDF du = int_0^\infty u^2 DF(u) du = ***
*** int_0^\infty f(u) du = 1
***
***
***
*** Input: u = Speed in km/s
***
*** Output: u*DF(u) in (km/s)^(-2)
***
***
***
*** Calls other routines depending of choice of velocity
***
*** distribution function (as set by veldf in the common
***
*** blocks in dshmcom.h)
***
*** Author: Joakim Edsjo
***
*** Date: 2004-01-29
***
****************************************************************
real*8 function dshmuDF(u)

dshmudfearth.f
****************************************************************
*** Dark matter halo velocity profile as seen from the
***
*** Earth. Compared to dshmuDF, this routine also includes
***
*** the possibility to use distribution functions where
***
*** solar system diffusion is included.
***
***
***
*** This routine gives back u*DF(u) in units of (km/s)^(-2) ***
*** DF(u) = int dOmega DF(abs(v)) where DF(abs(v-vector)) is ***
*** the three-dimensional distribution function in the halo ***
*** and v = v_us + u with u being the velocity relative us
***
*** (Earth/Sun).
***
*** Note: u*DF(u) is the same as f(u)/u, where f(u) is the
***
*** one-dimensional distribution function as defined in e.g. ***
*** Gould, ApJ 321 (1987) 571.
***
***
***
*** dshmuDF is normalized such that
***
*** int_0^\infty u*dshmuDF du = int_0^\infty u^2 DF(u) du = ***
*** int_0^\infty f(u) du = 1
***
***
***
*** Input: u = Speed in km/s
***
*** Output: u*DF(u) in (km/s)^(-2)
***
***
***
*** Calls other routines depending of choice of velocity
***
*** distribution function (as set by veldfearth in the
***
*** common blocks in dshmcom.h)
***
*** Author: Joakim Edsjo
***
*** Date: 2004-01-29
***
****************************************************************
real*8 function dshmuDFearth(u)

dshmudfearthtab.f
***********************************************************************
*** dshmudfearthtab returns the halo velocity distribution

169

170

CHAPTER 15. HM: HALO MODELS

*** (same as dshmudfearth.f), but reads it from a file.
*** The file should have two header lines (with arbitrary content)
*** and then lines with two columns each with u and u*DF(u).
*** u should be in units of km/s and u*DF(u) (or f(u)/u) in units
*** of (km/s)^(-2).
***
*** The file loaded is given by the option type.
*** Some possible types are velocity distributions as obtained from
*** numerical simulations of WIMP propagation in the solar system
*** including solar capture.
***
*** For the simulations made by Johan Lundberg, see astro-ph/0401113,
*** available options are
***
type = 1, reads file /dat/vdfearth-sdbest.dat :
***
best estimate of distribution at Earth from numerical sims
***
type = 2, reads file /dat/vdfearth-sdconserv.dat :
***
conservative estimate, only including free orbits and
***
jupiter-crossing orbits
***
type = 3, reads file /dat/vdfearth-sdultraconserv.dat :
***
ultraconservative estimate, only including free orbits
***
type = 4, reads file /dat/vdfearth-sdgauss.dat :
***
as if Earth was in free space, i.e. gaussian approx.
***
Note: tot.txt is the best estimate of the distribution at Earth
***
and should be used as a default
***
*** There are also other options, like
***
type = 5, read a user-supplied file with file name given
***
by udfearthfile in dshmcom.h. If you change the file or
***
for any other reason want to reload it here, you have to
***
set the flag udfearthload to true, in which case it will
***
be loaded here on next call.
***
*** Input: velocity relative to earth [ km s^-1 ]
*** Output: f(u) / u [ (km/s)^(-2) ]
*** Date: January 30, 2004
***********************************************************************
real*8 function dshmuDFearthtab(u,type)

dshmudfgauss.f
***********************************************************************
*** The halo velocity profile in the Maxwell-Boltzmann (Gaussian)
*** approximation.
*** input: velocity relative to earth [ km s^-1 ]
*** output: f(u) / u [ (km/ s)^(-2) ]
*** date: april 6, 1999
*** Modified: 2004-01-29
***********************************************************************
real*8 function dshmuDFgauss(u)

15.3. ROUTINE HEADERS – FORTRAN FILES

dshmudfiso.f
****************************************************************
***
***
*** function which gives u*DF(u) where:
***
***
***
***
u is the modulus of \vec{u} = \vec{v} - \vec{v}_{ob} ***
***
with \vec{v} the 3-d velocity of a WIMP in the
***
***
galactic frame, and \vec{v}_{ob} the projection on
***
***
the frame you are considering
***
***
***
***
DF(u) = int dOmega DF(\vec{v}), where
***
***
DF(\vec{v}) is the halo local velocity distribution
***
***
function in the galactic frame
***
***
***
*** the function implemented here is valid for:
***
***
a) an isothermal sphere profile
***
***
b) an isotropic profile, i.e.
***
***
DF(\vec{v}) = DF(|\vec{v}|)
***
*** condition b) implies that the integral is performed by
***
*** setting |\vec{v}|^2 = u^2 + |\vec{v}_ob|^2
***
***
+ 2*cos(alpha)*|\vec{v}_ob|*u
***
*** and then integrating in d(cos(alpha))
***
***
***
*** u in km s**-1
***
*** u*DF(u) in km**-2 s**2
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-01-29
***
****************************************************************
real*8 function dshmuDFiso(u)

dshmudfnum.f
****************************************************************
***
***
*** function which gives u*DF(u) where:
***
***
***
***
u is the modulus of \vec{u} = \vec{v} - \vec{v}_{ob} ***
***
with \vec{v} the 3-d velocity of a WIMP in the
***
***
galactic frame, and \vec{v}_{ob} the projection on
***
***
the frame you are considering
***
***
***
***
DF(u) = int dOmega DF(\vec{v}), where
***
***
DF(\vec{v}) is the halo local velocity distribution
***
***
function in the galactic frame
***
***
***
*** on first call the function loads from file a table of
***
*** values and then interpolates between them.
***
***
***
*** the file name is set by the udfnumfile variable
***
*** it is assumed that this file has no header and u uDF(u) ***

171

172

CHAPTER 15. HM: HALO MODELS

*** are given with the format 1000 below
***
***
***
*** to reload a (different) file the integer flag uDFnumset ***
*** into the uDFnumsetcom common block has to be manually
***
*** reset to 0
***
***
***
*** u in km s**-1
***
*** u*DF(u) in km**-2 s**2
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-01-30
***
****************************************************************
real*8 function dshmuDFnum(u)

dshmudfnumc.f
****************************************************************
***
***
*** function which gives u*DF(u) where:
***
***
***
***
u is the modulus of \vec{u} = \vec{v} - \vec{v}_{ob} ***
***
with \vec{v} the 3-d velocity of a WIMP in the
***
***
galactic frame, and \vec{v}_{ob} the projection on
***
***
the frame you are considering
***
***
***
***
DF(u) = int dOmega DF(\vec{v}), where
***
***
DF(\vec{v}) is the halo local velocity distribution
***
***
function in the galactic frame
***
***
***
*** on first call the function tabulates uDF(u) and saves
***
*** the tabulated values in the file whose name is set by
***
*** the udfnumfile variable in dshmcom.h
***
*** interpolation between tabulated values are then used
***
*** the tabulation has at least 200 points, and more points ***
*** are added if there are jumps in u*DF which are more than ***
*** 10%; this can be adjusted by changing the reratio
***
*** variable which is hard coded in the file
***
***
***
*** the implementation is valid only for an isotropic
***
*** profile, i.e. for
***
***
DF(\vec{v}) = DF(|\vec{v}|)
***
*** with the integral performed by setting
***
***
|\vec{v}|^2 = u^2 + |\vec{v}_ob|^2
***
***
+ 2*cos(alpha)*|\vec{v}_ob|*u
***
*** and then integrating in d(cos(alpha))
***
***
***
*** u in km s**-1
***
*** u*DF(u) in km**-2 s**2
***
***
***
*** Author: Piero Ullio
***
*** Date: 2004-01-30
***

15.3. ROUTINE HEADERS – FORTRAN FILES
****************************************************************

real*8 function dshmuDFnumc(u)

dshmudftab.f
***********************************************************************
*** dshmudftab returns the halo velocity distribution
*** (same as dshmudf.f), but reads it from a file.
*** The file should have two header lines (with arbitrary content)
*** and then lines with two columns each with u and u*DF(u).
*** u should be in units of km/s and u*DF(u) (or f(u)/u) in units
*** of (km/s)^(-2).
***
*** The file loaded is given by the option type.
*** Some possible types are velocity distributions as obtained from
*** numerical simulations of WIMP propagation in the solar system
*** including solar capture.
***
*** Available options
***
type = 1, read a user-supplied file with file name given
***
by udffile in dshmcom.h. If you change the file or
***
for any other reason want to reload it here, you have to
***
set the flag udfload to true, in which case it will
***
be loaded here on next call.
***
*** Input: velocity relative to earth [ km s^-1 ]
*** Output: f(u) / u [ (km/s)^(-2) ]
*** Date: January 30, 2004
***********************************************************************
real*8 function dshmudftab(u,type)

dshmvelearth.f
subroutine dshmvelearth(tdays)
No header found.

173

174

CHAPTER 15. HM: HALO MODELS

Chapter 16

src/hr:
Halo rates from annihilation
16.1

Gamma rays from the halo – theory

Among the yields of pair annihilations of halo dark matter particles, the role played by gammarays could be a major one. Unlike the cases involving charged particles, for gamma-rays it is
straightforward to relate the distribution of sources and the expected flux at the earth. Most flux
estimated can be obtained just by summing over the contributions along lines of sight (or better,
geodesics): gamma-rays have a low enough cross section on gas and dust and therefore the Galaxy
is essentially transparent to them (except perhaps in the innermost part, very close to the region
where a massive black hole is inferred); absorption by starlight and infrared background becomes
effecient only for very far away sources (redshift larger than about 1).
It follows that in case the gamma-ray signal is detectable, this might be the only chance for
mapping the fine structure of a dark halo, with a much better resolution for inomogenities (clumps)
with respect what is accevable through dynamical measurements or lensing effects. Turning the
latter argument around, if the fine structure of the Galactic halo is clumpy, or if a large density
enhancement is present towards the Galactic center, as seen in N-body simulations of dark matter
halos, this dark matter detection tecnique is much more promising than indicated by the earliest
estimates in which smooth non-singular halo scenarios were considered (recall that the fluxes per
unit volume are proportional to the square of the dark matter density locally in space).
A further reason to examine in details this detection methods is that we are approaching what
will probably be the golden age for gamma-ray observations, with a several new experiments that
are going to map the gamma-ray sky. These experiments will have unprecendented sensitivities and
cover an energy range, namely 10 GeV – few hundred GeV, in which very scarce data are available
at the time being and which may turn out to be the most interesting for dark matter detection.
The hypothesis of a gamma-ray signal from neutralino annihilations will be tested for both by the
upcoming space experiments (GLAST, AMS, AGILE) and by the new generation of ground-based
air cherenkov telescopes (ACTs) being built (Magic, Hess, Veritas).
The bulk of the gamma-ray yield from neutralino annihilations arise in the decay of neutral pions
produced in the fragmetation processes initiated by tree level final states [148, 73, 155] (analogously
to the other halo signals, in DarkSUSY we include all tree level final states and make use of a
Monte Carlo simulation for fragmentation and decay processes, see Section ??). Unfortunately the
π 0 intermediate state is common to other astrophysical processes, and this may turn out to be a
limiting factor to disentangle dark matter sources. At the same time, however, a relevant gamma-ray
contribution may arise directly (at one-loop level) in two body final states; although such photons are
much fewer than those from π 0 decays they have a much better signature: neutralinos annihilating
175

176

CHAPTER 16. HR: HALO RATES FROM ANNIHILATION

in the galactic halos move with a velocity of the order v/c ∼ 10−3 , hence these outgoing photons (as
any particle in any of the allowed two body final states) will then be nearly monochromatic, with
energy of the order of the neutralino mass[149, 150, 151, 112, 110, 73]. There is no other known
astrophysical source with such a signature: the detection of a line signal out of a spectrally smooth
gamma-ray background would be a spectacular confirmation of the existence of dark matter in form
of exotic massive particles.
If dark matter is in form of neutralinos, there are two processes givin rise to line signals, the
annihilation into two photons and into one photon and a Z boson. Both of them are included in
the DarkSUSY package, as well as the contribution with a continuum energy spectrum. We review
them briefly here, focussing first on annihilation rates and giving then expressions for gamma-ray
fluxes.

16.1.1

χχ → γγ

In DarkSUSY the full expression for the annihilation cross section of the process
χ̃01 + χ̃01 → γ + γ

(16.1)

is computed at full one loop level, in the limit of vanishing relative velocity of the neutralino pair,
i.e. the case of interest for neutralinos in galactic halos; the outgoing photons have an energy equal
to the mass of χ01 :
Eγ = Mχ .
(16.2)
The neutralino pair must be in an S wave state with pseudoscalar quantum numbers; projecting
out of the amplitude the 1 S0 state simplifies the calculation, and a further simplification is obtained
by computing the amplitude in the non linear gauge defined in [152], which is a slight variant of
the usual linear R-gauge (or ’t Hooft gauge).
The amplitude of the annihilation process can be factorized in the form
e2
A= √
ǫ (ǫ1 , ǫ2 , k1 , k2 ) Ã
2 2 π2

(16.3)

where ǫ1 , ǫ2 and k1 , k2 are respectively the polarization tensors and the momenta of the two
outgoing photons. The cross section is then given, as a function of Ã, by the formula
vσ2γ =

α2 Mχ2
Ã
16π 3

2

.

(16.4)

The total amplitude is implemented in DarkSUSY as the sum of the contributions obtained from
four different classes of diagrams:
à = Ãf f˜ + ÃH + + ÃW + ÃG ,
where the indices label the particles in the internal loops, i.e., respectively, fermions and sfermions,
charged Higgs and charginos, W-bosons and charginos, and, in the gauge we chose, charginos
and Goldstone bosons. For every A term, real and imaginary parts are splitted; the full set of
analytic formulas are given in [112], following the notation of [168], where some of the contributions
were first computed. They are rather lengthy expressions with non trivial dependences on various
combinations of parameters in the MSSM. We reproduce here, as an example, the formulas for the
diagrams with W bosons and charginos, which, in most cases, give the dominant contribution to
the cross section as discovered in [112]. The sum over χ+
i includes the two chargino eigenstates:
√
X 1  (a − b) SχW
SχW − 2 a DχW
2
I
(a,
b)
+
I1 (a, 1)
Re ÃW =
1
Mχ2
1+a−b
1−a−b
+
χi

16.1. GAMMA RAYS FROM THE HALO – THEORY

177



√
√
3 SχW − 4 a DχW
SχW − 2 a DχW
I2 (a, b)
−
+ 2
1−a−b
1−b



√
(2 + b) SχW − 4 a DχW
(1 − a + b) SχW
+
I3 (a, b)
−2
1−b
1+a−b
Im ÃW

=

where we defined:

X 1  (a − b) SχW 
2
·
Mχ2
1+a−b
+
χi
!
p

1 + 1 − b/a
p
· log
θ 1 − m2W / Mχ2
1 − 1 − b/a

−π

a=

Mχ20
1

Mχ2+
i

SχW =

1
2

(16.5)

L
L∗
R
R∗
gW
1i gW 1i + gW 1i gW 1i



b=

(16.6)

m2W
Mχ2+
i

DχW =

1
2

L
R∗
R
L∗
gW
1i gW 1i + gW 1i gW 1i



,

and the functions I1 (a, b), I2 (a, b) and I3 (a, b), which arise from the loop integrations, are given
by:


Z 1
dx
4 a x2 − 4 a x + b
I1 (a, b) =
(16.7)
log
x
b
0
I2 (a, b) =

Z

1

0

I3 (a, b) =

Z

0

1



−a x2 + (a + b − 1) x + 1
a x2 + (−a + b − 1) x + 1



(16.8)



−a x2 + (a + 1 − b) x + b
a x2 + (−a + 1 − b) x + b



(16.9)

dx
log
x
dx
log
x

.

I1 (a, b) is the well known three point function that appears in triangle diagrams; it is an analytic
function of a/b. I2 (a, b) and I3 (a, b) may be expressed in terms of dilogarithms. In DarkSUSY,
they are computed in the integral form as, for any physically interesting value of the parameters a
and b, the integrands are smooth functions of x.
The branching ratio for neutralino annihilations into 2γ is typically not larger than 1%, with
the largest values of vσ2γ , for neutralinos with a cosmologically significant relic aboundance, in the
range 10−29 –10−28 cm3 s−1 . Such values may be large enough for the discovery of this signal in
upcoming measurements; at the same time it should be kept in mind that very low values for the
cross section are feasible as well.

16.1.2

χχ → Zγ

The process of neutralino annihilation into a photon and a Z0 boson [110]
χ̃01 + χ̃01 → γ + Z 0

(16.10)

also gives a nearly monochromatic line (with a small smearing caused by the finite width of the Z 0
boson), with energy
m2Z
.
(16.11)
Eγ = Mχ −
4 Mχ

178

CHAPTER 16. HR: HALO RATES FROM ANNIHILATION

The steps followed in DarkSUSY to compute the cross section are essentially the same as those
described for the 2γ case. Again the total amplitude is obtained by summing the contribution from
four classes of diagrams and by splitting for each of them real and imaginary parts. The analytic
formulas were derived in [110], and are much less compact than those obtained for the process of
neutralino annihilation into two photons.
The maximum value of vσZγ , for neutralinos with a cosmologically significant relic aboundance,
is around 2·10−28 cm3 s−1 and occurs for a nearly pure Higgsinos. In the heavy mass range, the value
of vσZγ reaches a plateau of around 0.6 · 10−28 cm3 s−1 . This interesting effect of a non-diminishing
cross section with higgsino mass (which is due to a contribution to the real part of the amplitude)
is also valid for the 2γ final state in the corresponding limit, with a value of 1 · 10−28 cm3 s−1 [112].
Since the gamma-ray background drops rapidly with increasing photon energy, these processes may
be interesting for detecting dark matter neutralinos near the upper range of allowed neutralino
masses.
Whenever the lightest neutralino contain a significant Wino or Higgsino component the value
of vσZγ maybe as large as, or even larger than, twice the value of vσ2γ . It is therefore usually not
a good approximation to neglect the Zγ state compared to 2γ.

16.1.3

Gamma rays with continuum energy spectrum

The advantage with the gamma-ray lines discussed in the previous Sections is the distinctive spectral
signature, which has no plausible astrophysical counterpart.
Compared to the monochromatic flux, the gamma-ray flux produced in π 0 decays is much larger
but has less distinctive features. The photon spectrum in the process of a pion decaying into 2γ is,
independent of the pion energy, peaked at half of the π 0 mass, about 70 MeV, and symmetric with
respect to this peak if plotted in logaritmic variables. Of course, this is true both for pions produced
in neutralino annihilations and, e.g., for those generated by cosmic ray protons interacting with the
interstellar medium.
When considered together with to the cosmic ray induced Galactic gamma-ray background, the
neutralino induced signal looks like a component analogous to the secondary flux due to nucleon
nucleon interactions: it is drowned into the Bremsstrahlung component at low energy, while it may
be the dominant contribution at energies above 1 GeV or so. In fact, if the exotic component
is indeed significant an option to disentangle it would be to search for a break in the energy
spectrum at about the neutralino mass, where the line feature might be present as well: while the
maximal energy for a photon emitted in neatralino pair annihilations is equal to the neutralino
mass, the component from cosmic ray protons extends to much higher energies, essentially with
the same spectral index as for the proton spectrum (the role played by the third main background
component, inverse Compton emission, has still to settled at the time being and may worsen the
problem of discrimitation against background).
Besides this (weak) spectral feature, another way to disentangle the dark matter signal may be
to exploit a directional signature: data with a wide angular coverage should be analyzed to seach
for a gamma-ray flux component following the shape and density profile of the dark halo, including
eventual contributions from clumps.

16.1.4

Sources and fluxes

Given a density distribution of dark matter neutralinos along some line of sight l, the monochromatic
gamma-ray flux per unit solid angle in that direction is:
Z
Nγ vσX 0 γ
dΦγ (ψ)
=
ρ2χ (l) d l(ψ) ,
(16.12)
dΩ
4πMχ2
line of sight
where ψ is an angle to label the direction of observation and where Nγ = 2 for χ χ → γ γ, Nγ = 1
for χ χ → Z γ. Analogously, the gamma-ray flux with continuum energy spectrum is obtained

16.2. NEUTRINOS FROM HALO – THEORY

179

P
f
by replacing Nγ vσX 0 γ with
f dNγ /dE vσf , where the sum is over all tree level final states.
Separating the dependence on the dark matter distribution from the part which is related to values
of the cross section and the neutralino mass, we rewrite Eq. (16.12) as:


2
Nγ vσX 0 γ
dΦγ (ψ)
10 GeV
−11
≃ 1.87 · 10
· J (ψ) cm−2 s−1 sr−1 ,
(16.13)
dΩ
10−29 cm3 s−1
Mχ
where we have defined the dimensionless function

2 Z
1
1
J (ψ) =
·
8.5 kpc
0.3 GeV/cm3
line of

sight

ρ2χ (l) d l(ψ) .

(16.14)

The relevant quantity for a measurement is, rather than J (ψ), the integral of J (ψ) over the solid
angle given by the angular acceptance ∆Ω of a detector which is pointing in the direction ψ.
Defining:
Z
1
h J (ψ)i∆Ω =
dΩ′ J (ψ ′ ) ,
(16.15)
∆Ω ∆Ω

the flux measured in a detector is:

2

Nγ vσX 0 γ
10 GeV
−11
Φγ (ψ, ∆Ω) = 1.87 · 10
h J (ψ)i∆Ω × ∆Ω cm−2 s−1 sr−1 . (16.16)
10−29 cm3 s−1
Mχ
Finally, the formalism we introduced can be used also to estimate the flux in the simple case of a
single source which, for the given detector, can be approximated as point-like (see examples below).
If such source is in the direction ψ at a distance d, Eq. (16.15) becomes:

2
Z
1
1
1
1
h J (ψ)i∆Ω =
·
·
·
d3 r ρ2χ (~r)
(16.17)
8.5 kpc
0.3 GeV/cm3
d2 ∆Ω

where the integral is over the extention of the source (much smaller than d).
Several targets have been discussed as sources of gamma-rays from the annihilation of dark
matter particles. An obvious source is the dark halo of our own galaxy [153] and in particular
the Galactic center, as the dark matter density profile is expected, in most models, to be picked
towards it, possibly with huge enhancements close to te central black hole. The Galactic center is
an ideal target for both ground- and space-based gamma-ray telescopes. As satellite experiments
have much wider field of views and will provide a full sky coverage, they will test the hypothesis of
gamma-rays emitted in clumps of dark matter which may be present in the halo [154, 155, 114, 156].
Another possibility which has been considered is the case of gamma-ray fluxes from external nearby
galaxies [157]. Furthermore, it has been proposed to search for an extragalactic flux originated by
all cosmological annihilations of dark matter particles [158, 159].
DarkSUSY is suitable to compute the gamma-ray flux from all these (and possibly other) sources.
Two cases are fully included in the package: assuming neutralinos are smoothly distributed in the
Galactic halo with ρχ equal to the dark matter density profile, in DarkSUSY Eq. 16.15 is computed
for a specified halo profile and any given ψ and ∆Ω [73]. The second option deals with the case of
a portion of dark matter being in the form of clumps, each of which is treated as a non-resolvable
source in the detector, distributed in the Galaxy according to a probability distribution which
follows the dark matter density profile (see [114] for details). It is straightforward to extend this
to all other astrophysical sources; in case of cosmological sources one has just to pay attention to
include redshift effects and absoption on starlight and infrared background, see [159].

16.2

Neutrinos from halo – theory

Usually, the flux of neutrinos from annihilation of neutralinos in the Milky Way halo is too small
to be detectable, but for some clumpy or cuspy models, it might be detectable. The calculation of

180

CHAPTER 16. HR: HALO RATES FROM ANNIHILATION

the neutrino-flux follows closely the calculation of the continuous gamma ray flux, with the main
addition that neutrino interactions close to the detector are also included. Hence, both the neutrino
flux and the neutrino-induced muon flux can be obtained. The neutrino to muon conversion rate
in the Earth can also be obtained.

16.3

Routine headers – fortran files

dshaloyield.f
*****************************************************************************
***
function dshaloyield gives the total yield of positrons, cont. gammas
***
or neutrinos coming from neutralino annihilation in the halo
***
the yields are given as number / annihilation. the energy egev
***
is the threshold for integrated yields and the energy for
***
differential yields. the yields are
***
yieldk = 51: integrated positron yields
***
yieldk = 52: integrated cont. gammas
***
yieldk = 53: integrated muon neutrinos
***
yieldk = 54: integrated antiproton yields
***
yieldk = 71: integrated neutrino yields (same as 53)
***
yieldk = 72: integrated muon yields at creation
***
yieldk = 73: integrated muon yields in ice
***
yieldk = above+100: differential in energy
*** the annihilation branching ratios and
*** higgs parameters are extracted from susy.h and by calling dsandwdcosnn
*** if istat=1 upon return,
*** some inaccesible parts the differential muon spectra has been wanted,
*** and the returned yield should then be treated as a lower bound.
*** if istat=2 energetically forbidden annihilation channels have been
*** wanted. if istat=3 both of these things has happened.
*** author: joakim edsjo edsjo@physics.berkeley.edu
*** date: 98-01-29
*** modified: 98-04-15
*****************************************************************************
real*8 function dshaloyield(egev,yieldk,istat)

dshaloyielddb.f
*****************************************************************************
***
function dshaloyielddb is the version of dshaloyield appropriate
***
for antideuterons
***
yieldk = 159 - antideuteron differential yield
***
author: piero ullio, ullio@sissa.it
***
date: 03-01-14
*****************************************************************************
real*8 function dshaloyielddb(egev,yieldk,istat)

dshrdbardiff.f
real*8 function dshrdbardiff(td,solarmod,how)

16.3. ROUTINE HEADERS – FORTRAN FILES

**********************************************************************
*** function dshrdbardiff calculates the differential flux of
*** antideuterons for the antideuteron kinetic energy per nucleon td
*** as a result of neutralino annihilation in the halo.
*** compared to dshrdbdiff0, dshrdbardiff uses the rescaled local density
***
input:
***
td - antideuteron kinetic energy per nucleon in gev
***
solarmod - 0 no solar modulation
***
1 solar modulation a la perko
***
how - 1 calculate t_diff only for requested momentum
***
2 tabulate t_diff for first call and use table for
***
subsequent calls
***
3 as 2, but also write the table to disk as pbtd.dat
***
at the first call
***
4 read table from disk on first call, and use that for
***
subsequent calls
*** units: gev^-1 cm^-2 s^-1 sr^-1
*** author: 00-07-19 paolo gondolo
**********************************************************************

dshrdbdiff0.f
real*8 function dshrdbdiff0(td,solarmod,how)
**********************************************************************
*** function dshrdbdiff0 calculates the differential flux of
*** antideuterons for the kinetic energy per nucleon td as a result of
*** neutralino annihilation in the halo.
*** dshrdbdiff0 uses the unrescaled local density
*** see dshrdbardiff for rescaling the local density
***
input:
***
td - antideuteron kinetic energy per nucleon in gev
***
solarmod - 0 no solar modulation
***
how - 1 calculate t_diff only for requested momentum
***
2 tabulate t_diff for first call and use table for
***
subsequent calls
***
3 as 2, but also write the table to disk as pbtd.dat
***
at the first call
***
4 read table from disk on first call, and use that for
***
subsequent calls
*** units: gev^-1 cm^-2 s^-1 sr^-1
*** author: joakim edsjo
*** date: 98-02-10
*** modified: joakim edsjo, edsjo@physto.se
*** modified: 98-07-13, 00-07-19 paolo gondolo
**********************************************************************

dshrgacdiffsusy.f
**********************************************************************

181

182

CHAPTER 16. HR: HALO RATES FROM ANNIHILATION

*** function dshrgacdiffsusy gives the susy dependent term in the
*** flux of gamma-rays with continuum energy spectrum per gev
*** at the energy egam (gev) from neutralino annihilation in the halo.
***
*** dshrgacdiffsusy in unit of gev^-1
***
*** the flux in a solid angle delta in the direction psi0 is given by:
***
cm^-2 s^-1 sr^-1 * dshrgacdiffsusy(egam,istat)
***
* dshmjave(cospsi0,delta) * delta (in sr)
***
*** the flux per solid angle in the direction psi0 is given by:
***
cm^-2 s^-1 sr^-1 * dshrgacdiffsusy(egam,istat)
***
* dshmj(cospsi0)
***
*** in case of a clumpy halo the factor fdelta has to be added
***
*** author: joakim edsjo, edsjo@physto.se
*** modified: piero ullio (piero@tapir.caltech.edu) 00-07-13
***
Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dshrgacdiffsusy(egam,istat)

dshrgacont.f
real*8 function dshrgacont(egath,jpsi,istat)
**********************************************************************
***
function dshrgacont gives the flux of gamma-rays with continuum
***
energy spectrum above the threshold egath (gev) from neutralino
***
annihilation in the halo.
***
***
jpsi is the value of the integral of rho^2 along the line of
***
sight, and can be obtained with a call to dshmj. jpsi can also be
***
the averaged value of j over a solid angle delta, obtained with a
***
call to dshmjave.
***
***
dshrgacont uses the rescaled local density, while j uses the
***
unrescaled local density
***
***
dshrgacont in units of cm^-2 s^-1 sr^-1
***
***
in case of a clumpy halo the factor fdelta has to be added
***
***
author: paolo gondolo (gondolo@mppmu.mpg.de) 00-07-19
**********************************************************************

dshrgacontdiff.f
real*8 function dshrgacontdiff(egam,jpsi,istat)
**********************************************************************
***
function dshrgacontdiff gives the flux of gamma-rays with continuum

16.3. ROUTINE HEADERS – FORTRAN FILES
***
energy spectrum per gev at the energy egam (gev) from neutralino
***
annihilation in the halo.
***
***
jpsi is the value of the integral of rho^2 along the line of
***
sight, and can be obtained with a call to dshmj. jpsi can also be
***
the averaged value of j over a solid angle delta, obtained with a
***
call to dshmjave.
***
***
dshrgacontdiff uses the rescaled local density, while j uses the
***
unrescaled local density
***
***
dshrgacontdiff in units of cm^-2 s^-1 sr^-1
***
***
in case of a clumpy halo the factor fdelta has to be added
***
***
author: paolo gondolo (gondolo@mppmu.mpg.de) 00-07-19
**********************************************************************

dshrgacsusy.f
**********************************************************************
*** function dshrgacsusy gives the susy dependent term in the
*** flux of gamma-rays with continuum energy spectrum above the
*** threshold egath (gev) from neutralino annihilation in the halo.
***
*** dshrgacsusy is dimensionless
***
*** the flux in a solid angle delta in the direction psi0 is given by:
***
cm^-2 s^-1 sr^-1 * dshrgacsusy(egath,istat)
***
* dshmjave(cospsi0,delta) * delta (in sr)
***
*** the flux per solid angle in the direction psi0 is given by:
***
cm^-2 s^-1 sr^-1 * dshrgacsusy(egath,istat)
***
* dshmj(cospsi0)
***
*** in case of a clumpy halo the factor fdelta has to be added
***
*** author: joakim edsjo, edsjo@physto.se
*** modified: piero ullio (piero@tapir.caltech.edu) 00-07-13
***
Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dshrgacsusy(egath,istat)

dshrgaline.f
subroutine dshrgaline(jpsi,gaga,gaz)
**********************************************************************
***
subroutine dshrgaline gives the flux of monoenergetic gamma-rays
***
from neutralino annihilation in the halo.
***

183

184

CHAPTER 16. HR: HALO RATES FROM ANNIHILATION

***
jpsi is the value of the integral of rho^2 along the line of
***
sight, and can be obtained with a call to dshmj. jpsi can also be
***
the averaged value of j over a solid angle delta, obtained with a
***
call to dshmjave.
***
***
dshrgaline uses the rescaled local density, while j uses the
***
unrescaled local density
***
***
dshrgaline in units of cm^-2 s^-1 sr^-1
***
***
in case of a clumpy halo the factor fdelta has to be added
***
***
author: paolo gondolo (gondolo@mppmu.mpg.de) 00-07-19
**********************************************************************

dshrgalsusy.f
**********************************************************************
*** subroutine dshrgalsusy gives the susy dependent term in the
*** flux of monoenergetic gamma-rays from neutralino annihilation
*** in the halo.
***
*** dshrgalsusy is dimensionless
***
*** the flux in a solid angle delta in the direction psi0 is given by:
***
cm^-2 s^-1 sr^-1 * gagarate (or gazrate)
***
* dshmjave(cospsi0,delta) * delta (in sr)
***
*** the flux per solid angle in the direction psi0 is given by:
***
cm^-2 s^-1 sr^-1 * gagarate (or gazrate)
***
* dshmj(cospsi0)
***
*** in case of a clumpy halo the factor fdelta has to be added
***
*** author: joakim edsjo, edsjo@physto.se
*** modified: piero ullio (piero@tapir.caltech.edu) 00-07-13
***
Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
subroutine dshrgalsusy(gagarate,gazrate)

dshrmudiff.f
**********************************************************************
*** function dshrmudiff calculates the flux of diffuse neutrino*** induced muons from neutralino annihilation in the halo.
*** the flux given, is the differential flux at the requested energy.
*** there are some approximations going on for the higgses assuming
*** de/dx for muons are constant to simplify the integration. the
*** errors for this shouldn’t be too big.
*** units: km^-2 yr^-1 sr^-1 gev^-1 (if jpsi is given as 1st arg.)

16.3. ROUTINE HEADERS – FORTRAN FILES
*** units: km^-2 yr^-1 gev^-1
(if jpsi*delta is given as 1st arg.)
*** dnsigma is also returned, which is
***
dN_mu/dE_mu * (sigma v) / (10^-29 cm^3 s^-1)
*** in units of GeV^-1.
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-05-07
*** modified: 00-09-03
**********************************************************************
real*8 function dshrmudiff(jpsi,emu,dnsigma,istat)

dshrmuhalo.f
**********************************************************************
*** function dshrmuhalo calculates the flux of diffuse neutrino*** induced muons from neutralino annihilation in the halo.
*** the flux given, is the total flux above a given threshold.
*** there are some approximations going on for the higgses assuming
*** de/dx for muons are constant to simplify the integration. the
*** errors for this shouldn’t be too big.
*** units: km^-2 yr^-1 sr^-1 (if jpsi is given as 1st arg.)
***
km^-2 yr^-1
(if jpsi*delta is given as 1st arg.)
*** dnsigma is also returned, which is the dimensionless number
***
N_mu * (sigma v) / (10^-29 cm^3 s^-1)
*** author: joakim edsjo, edsjo@physto.se
*** date: 98-05-07
*** modified: 00-09-03
***
Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************
real*8 function dshrmuhalo(jpsi,eth,dnsigma,istat)

dshrpbardiff.f
real*8 function dshrpbardiff(tp,solarmod,how)
**********************************************************************
*** function dshrpbardiff calculates the differential flux of
*** antiprotons for the antiproton kinetic energy tp as a result of
*** neutralino annihilation in the halo.
*** compared to dshrpbdiff0, dshrpbardiff uses the rescaled local density
***
input:
***
tp - antiproton kinetic energy in gev
***
solarmod - 0 no solar modulation
***
1 solar modulation a la perko
***
how - 1 calculate t_diff only for requested momentum
***
2 tabulate t_diff for first call and use table for
***
subsequent calls
***
3 as 2, but also write the table to disk as pbtd.dat
***
at the first call
***
4 read table from disk on first call, and use that for

185

186

CHAPTER 16. HR: HALO RATES FROM ANNIHILATION

***
subsequent calls
*** units: gev^-1 cm^-2 s^-1 sr^-1
*** author: 00-07-19 paolo gondolo
**********************************************************************

dshrpbdiff0.f
real*8 function dshrpbdiff0(tp,solarmod,how)
**********************************************************************
*** function dshrpbdiff0 calculates the differential flux of
*** antiprotons for the antiproton kinetic energy tp as a result of
*** neutralino annihilation in the halo.
*** dshrpbdiff0 uses the unrescaled local density
*** see dshrpbardiff for rescaling the local density
***
input:
***
tp - antiproton kinetic energy in gev
***
solarmod - 0 no solar modulation
***
1 solar modulation a la perko
***
how - 1 calculate t_diff only for requested momentum
***
2 tabulate t_diff for first call and use table for
***
subsequent calls
***
3 as 2, but also write the table to disk as pbtd.dat
***
at the first call
***
4 read table from disk on first call, and use that for
***
subsequent calls
*** units: gev^-1 cm^-2 s^-1 sr^-1
*** author: joakim edsjo
*** date: 98-02-10
*** modified: joakim edsjo, edsjo@physto.se
*** modified: 98-07-13, 00-07-19 paolo gondolo
***
Joakim Edsjo (edsjo@physto.se) 03-01-21, factor of 1/2
***
in annihilation rate added
**********************************************************************

dsnsigvgacdiff.f
**********************************************************************
*** subroutine dsnsigvgacdiff gives the number of contiuous gammas
*** per GeV at the energy ega (in GeV) times the annihilation cross
*** section.
*** The result given is the number
***
N_gamma * (sigma * v) / (10-29 cm^3 s^-1)
*** in units of GeV^-1.
***
*** author: joakim edsjo, edsjo@physto.se
*** date: 00-09-03
**********************************************************************
subroutine dsnsigvgacdiff(ega,nsigvgacdiff)

16.3. ROUTINE HEADERS – FORTRAN FILES

dsnsigvgacont.f
**********************************************************************
*** subroutine dsnsigvgacont gives the number of photons above
*** the threshold egath (in GeV) times the annihilation cross section
*** into continuous gammas.
*** The result given is the dimensionless number
***
N_gamma * (sigma * v) / (10-29 cm^3 s^-1)
***
*** author: joakim edsjo, edsjo@physto.se
*** date: 00-09-03
**********************************************************************
subroutine dsnsigvgacont(egath,nsigvgacont)

dsnsigvgaline.f
**********************************************************************
*** subroutine dsnsigvgaline gives the number of photons times
*** the annihilation cross section into gamma gamma and Z gamma
*** respectively. The result given is the dimensionless number
***
N_gamma * (sigma * v) / (10-29 cm^3 s^-1)
***
*** author: joakim edsjo, edsjo@physto.se
*** date: 00-09-03
**********************************************************************
subroutine dsnsigvgaline(nsigvgaga,nsigvgaz)

187

188

CHAPTER 16. HR: HALO RATES FROM ANNIHILATION

Chapter 17

src/ini:
Initialization routines
17.1

Initialization routines

Before DarkSUSY is used for some calculations, it needs to be initialized. This is done with a call to
dsinit. This routine makes sure that all standard parameters are defined, such as standard model
parameters and particle codes. It also calls the different ds*set routines with the argument default.
E.g., the halo model is set to the default choice with a call to dshmset(’default’). Analogously, all
other routines with a ds*set routine is also called to set them up to the default model/parameters.
This means that the call to dsinit should be the first call in any program using DarkSUSY. Any
calls the user makes to other routines, either to calculte things or select a different model (e.g. a
different halo model) should come after the call to dsinit.

17.2

Routine headers – fortran files

dscval.f
function dscval(a)
No header found.

dsfval.f
function dsfval(a)
No header found.

dsinit.f
subroutine dsinit
No header found.

dsival.f
function dsival(a)
No header found.
189

190

dskillsp.f
function dskillsp(a1,a2)
No header found.

dslowcase.f
subroutine dslowcase(a)
No header found.

dslval.f
function dslval(a)
No header found.

dsreadpar.f
subroutine dsreadpar(unit)
No header found.

CHAPTER 17. INI: INITIALIZATION ROUTINES

Chapter 18

src/mu:
Muon neutrino yields from
annihilation in the Sun/Earth
18.1

Muon yields from annihilation in the Earth/Sun – theory

We need to take into account all processes that yield muon neutrinos from annihilation in the
Earth/Sun.

18.1.1

Monte Carlo simulations

We need to evaluate the yield of different particles per neutralino annihilation. The hadronization
and/or decay of the annihilation products are simulated with Pythia [90] 6.154 and we here describe
how the simulations are done. For annihilation in the Sun/Earth the simulations are done for a
set of 18 neutralino masses, mχ = 10, 25, 50, 80.3, 91.2, 100, 150, 176, 200, 250, 350, 500, 750,
1000, 1500, 2000, 3000 and 5000 GeV. We tabulate the yields and then interpolate these tables in
DarkSUSY.
We are mainly interested in the flux of high energy muon neutrinos and neutrino-induced muons
at a neutrino telescope. We simulate 6 ‘fundamental’ annihilation channels, cc̄, bb̄, tt̄, τ + τ − , W + W −
and Z 0 Z 0 for each mass (where kinematically allowed) above. The lighter leptons and quarks don’t
contribute significantly and can safely be neglected. COMMENT #6: Include gg? Pions and
kaons get stopped before they decay and are thus made stable in the Pythia simulations so that
they don’t produce any neutrinos. For annihilation channels containing Higgs bosons, we can
calculate the yield from these fundamental channels by letting the Higgs bosons decaying in flight
(see below). We also take into account the energy losses of B-mesons in the Sun and the Earth by
following the approximate treatment of [91] but with updated B-meson interaction cross sections
as given in [76]. We also take neutrino-interactions on the way out of the Sun into account by
considering the charged-current interaction as a neutrino-loss and the neutral current interactions
are simulated with Pythia. The neutrino-nucleon charged current interactions close to the detector
are also simulated with Pythia and finally the multiple Coulomb scattering of the muon on its
way to the detector is calculated using distributions from [55]. We have used the ??? structure
functions in these simulations. For more details on these simulations, see [92, 93].
COMMENT #7: Structure functions?
For each annihilation channel and mass we simulate 1.25 × 106 annihilations and tabulate the
191

192CHAPTER 18. MU: MUON NEUTRINO YIELDS FROM ANNIHILATION IN THE SUN/EARTH
final results as a neutrino-yield, neutrino-to-muon conversion rate and a muon yield differential in
energy and angle from the center of the Sun/Earth. We also tabulate the integrated yield above a
given threshold and below an open-angle θ. We assumed throughout that the surrounding medium
is water with a density of 1.0 g/cm3 . Hence, the neutrino-to-muon conversion rates have to be
multiplied by the density of the medium. In the muon fluxes, the density cancels out (to within a
few percent). COMMENT #8: Neutrino-nucleon cross sections? COMMENT #9: Simulate
for rock?
With these simulations, we can calculate the yield for any of these particles for a given MSSM
model. For the Higgs bosons, which decay in flight, an integration over the angle of the decay
products with respect to the direction of the Higgs boson is performed. Given the branching ratios
for different annihilation channels it is then straightforward to compute the muon flux above any
given energy threshold and within any angular region around the Sun or the center of the Earth.

18.2

Routine headers – fortran files

dsmucom.f
No header found.

dsmudydth.f
*****************************************************************************
*** function dsmudydth is the differential yield dyield/dtheta which
*** should be integrated (by the routine gadap).
*** units: 1.0e-15 m**-2 (annihilation)**-1
*****************************************************************************
real*8 function dsmudydth(th)

dsmuemean.f
******************************************************************************
*** function dsmuemean is used to calculate the mean energy of a decay product
*** when a moving particle decays. e0 and m0 are the energy and mass of
*** the moving particle and m1 and m2 are the masses of the decay products.
*** it is the mean energy of m1 that is returned. all energies and masses
*** should be given in gev.
******************************************************************************
real*8 function dsmuemean(e0,m0,m1,m2)

dsmuifind.f
***********************************************
*** routine to find the index of an entry
***
*** the closest lowest hit is given
***
***********************************************
subroutine dsmuifind(value,array,ipl,ii,imin,imax)

18.2. ROUTINE HEADERS – FORTRAN FILES

dsmuinit.f
*****************************************************************************
*** subroutine dsmuinit initializes and loads (from disk) the common
*** block variables needed by the other muon yield routines.
*** flxk is the yield type (1,2 or 3 (or 101, 102, 103)) for neutrino yields
*** muon distributions at creation or muon yields at a detector respectively.
*** flxk is used to check that the provided data file is of the correct type.
*** if flxk=1,2 or 3 integrated yields are loaded and if flxk=101, 102 or
*** 103, differential yields are loaded
*** author: joakim edsjo edsjo@physto.se
*** date: 96-10-23
*** modified: 97-12-03
*****************************************************************************
subroutine dsmuinit(flxk)

dsmuyield.f
*****************************************************************************
*** function yield calculates the yield above threshold (flxk=1,2 or 3)
*** or the differential yield (flxk=101, 102 or 103) from a given
*** annihilation channel. channels ch=1-14 are supported.
*** Note. Gluons (channel 12) are not included yet, this channel
*** returns a zero yield. Channel 13 (mu+ mu-) never yields anything,
*** but is included for compatibility with the halo annihilation routines.
*** if flxk = 1 or 101 - neutrino yields are given
***
2 or 102 - muon distributions at creation are given
***
3 or 103 - muon yields at the detector are given
*** the units are 1e-30 m**-2 (annihilation)**-1 for 1 and 3, and
*** 1e-30 m**-3 (annihilation)**-1 for 2.
*** For the differential yields, the units are the same plus
*** gev**-1 degree**-1.
***
*** author: joakim edsjo (edsjo@physics.berkeley.edu)
*** date: 1995
*** modified: dec 03, 1997
*****************************************************************************
real*8 function dsmuyield(mneu,emuthr,thmax,ch,wh,flxk,istat)

dsmuyield int.f
real*8 function dsmuyield_int(f,a,b)
c_______________________________________________________________________
c integrate function f between a and b
c input
c
integration limits a and b
c called by dsmuyieldfth
c author: joakim edsjo (edsjo@physto.se) 96-05-16
c based on paolo gondolos wxint.f routine.
c=======================================================================

193

194CHAPTER 18. MU: MUON NEUTRINO YIELDS FROM ANNIHILATION IN THE SUN/EARTH

dsmuyieldf.f
*****************************************************************************
*** function dsmuyieldf calculates the muon yield above threshold and within
*** the selected angular window (yieldk=1) or the differential yield
*** (yieldk=2) for channel ch.
*** yieldv=1 (nu flux), yieldv=2 (nu-to-mu conv.rate), yieldv=3 (mu flux)
*** only channels ch = 1-6 are supported.
*** units: 1.0e-30 m**-2 (annihilation)**-1 integrated
*** units: 1.0e-30 m**-2 gev**-1 (degree)**-1 (annihilation)**1 differential
*** author: joakim edsjo, edsjo@physics.berkeley.edu
*** date: 1995
*** modified: dec 03, 1997.
*****************************************************************************

&

real*8 function dsmuyieldf(mneu,emuthr,thmax,ch,wh,yieldk,
yieldv,istat)

dsmuyieldfth.f
*****************************************************************************
*** function phiith integrates dsmudydth over the angle theta.
*** it is the yield from particle 1 (which decays from m0)
*** that is calculated. particle one corresponds to channel ch.
*** units: 1.0e-30 m**-2 (annihilation)**-1
*****************************************************************************

&

real*8 function dsmuyieldfth(e0,m0,mp1,mp2,emuthr,thmax,ch,wh,
yieldk,yieldv,istat)

dsmuyieldh.f
*****************************************************************************
*** function dsmuyieldh calculates the yield above threshold (yieldk=1) or the
*** differential yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: 1.0e-30 m**-2 (annihilation)**-1
*****************************************************************************

&

real*8 function dsmuyieldh(eh,emuth,thmax,hno,wh,yieldk,
yieldv,istat)

dsmuyieldh2.f
*****************************************************************************
*** function dsmuyieldh2 calculates the yield above threshold (yieldk=1) or the
*** differential yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: 1.0e-30 m**-2 (annihilation)**-1

18.2. ROUTINE HEADERS – FORTRAN FILES
*****************************************************************************

&

real*8 function dsmuyieldh2(eh,emuth,thmax,hno,wh,
yieldk,yieldv,istat)

dsmuyieldh3.f
*****************************************************************************
*** function dsmuyieldh3 calculates the yield above threshold (yieldk=1) or the
*** differntial yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: 1.0e-30 m**-2 (annihilation)**-1
*****************************************************************************

&

real*8 function dsmuyieldh3(eh,emuth,thmax,hno,wh,
yieldk,yieldv,istat)

dsmuyieldh4.f
*****************************************************************************
*** function dsmuyieldh4 calculates the yield above threshold (yieldk=1) or the
*** differential yield (yieldk=2) from a given higgs
*** boson decaying in flight, the energy of the higgs boson should be given
*** in eh.
*** higgses hno = 1-4 are supported (h10, h20, h30 and h+/h-)
*** units: 1.0e-30 m**-2 (annihilation)**-1
*****************************************************************************

&

real*8 function dsmuyieldh4(eh,emuth,thmax,hno,wh,
yieldk,yieldv,istat)

195

196CHAPTER 18. MU: MUON NEUTRINO YIELDS FROM ANNIHILATION IN THE SUN/EARTH

Chapter 19

src/nt:
Neutrino and muon rates from
annihilation in the Sun/Earth
19.1

Neutrinos from the Sun and Earth – theory

There are several indirect methods for detection of neutralinos. One of the most promising [94] is
to make use of the fact that scattering of halo neutralinos by the Sun and the planets, in particular
the Earth, during the several billion years that the Solar system has existed, will have trapped
these neutralinos within these astrophysical bodies. Being trapped within the Solar or terrestrial
material, they will sink towards the center, where a considerable enrichment and corresponding
increase of annihilation rate will occur.
Searches for neutralino annihilation into neutrinos will be subject to extensive experimental
investigations in view of the new neutrino telescopes (AMANDA, IceCube, Baikal, NESTOR,
ANTARES) planned or under construction [95]. A high-energy neutrino signal in the direction
of the centre of the Sun or Earth is an excellent experimental signature which may stand up against
the background of neutrinos generated by cosmic-ray interactions in the Earth’s atmosphere.
There are several different approximations one could do, or processes to include when calculating
the capture rates in the Earth/Sun and many of these are coded into DarkSUSY. The default in
DarkSUSY is always to use the best calculations available, but more approximate (older) routines are
also available, as well as more speculative signals, like the Damour-Krauss signal (not included by
default). If you want to use something else than the defaults, or want to call more internal rotuines
(more internal than dsntrates or dsntdiffrates), you should read the following sections carefully.

19.1.1

Neutrino yield from annihilations

The differential neutrino flux from neutralino annihilation is
ΓA X f dNνf
dNν
=
Bχ
dEν
4πD2
dEν

(19.1)

f

where ΓA is the annihilation rate, D is the distance of the detector from the source (the central
region of the Earth or the Sun), f is the neutralino pair annihilation final states, and Bχf are the
branching ratios into the final state f . dNνf /dEν are the energy distributions of neutrinos generated
by the final state f and are obtained from the Pythia simulations described in section ??.
In comparison with calculations using the results of [91] (e.g. [96]), this Monte Carlo treatment
of the neutrino propagation through the Sun does not need the simplifying assumptions previously
197

198CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
made, namely neutral currents are no more assumed to be much weaker than charged currents and
energy loss is no more considered continuous.
The neutrino-induced muon flux may be detected in a neutrino telescope by measuring the
muons that come from the direction of the centre of the Sun or Earth. For a shallow detector,
this usually has to be done in the case of the Sun by looking (as always the case for the Earth)
at upward-going muons, since there is a huge background of downward-going muons created by
cosmic-ray interactions in the atmosphere. There is always in addition a more isotropic background
coming from muon neutrinos created on the other side of the Earth in such cosmic-ray events (and
also from cosmic-ray interactions in the outer regions of the Sun). The flux of muons at the detector
is given by
dNµ
= NA
dEµ

Z

∞

th
Eµ

dEν

Z

∞
0

dλ

Z

Eν

Eµ

dEµ′ P (Eµ , Eµ′ ; λ)

dσν (Eν , Eµ′ ) dNν
,
dEµ′
dEν

(19.2)

where λ is the muon range in the medium (ice or water for the large detectors in the ocean or at
the South Pole, or rock which surrounds the smaller underground detectors), dσν (Eν , Eµ′ )/dEµ′ is
the weak interaction cross section for production of a muon of energy Eµ′ from a parent neutrino of
energy Eν , and P (Eµ , Eµ′ ; λ) is the probability for a muon of initial energy Eµ′ to have a final energy
Eµ after passing a path–length λ inside the detector medium. Eµth is the detector threshold energy,
which for “small” neutrino telescopes like Baksan, MACRO and Super-Kamiokande is around 1
GeV. Large area neutrino telescopes in the ocean or in Antarctic ice typically have thresholds of
the order of tens of GeV, which makes them sensitive mainly to heavy neutralinos (above 100 GeV)
[97].
The integrand in Eq. (19.2) is weighted towards high neutrino energies, both because the cross
section σν rises approximately linearly with energy and because the average muon energy, and
therefore the range λ, also grow approximately linearly with Eν . Therefore, final states which give
a hard neutrino spectrum (such as heavy quarks, τ leptons and W or Z bosons) are usually more
important than the soft spectrum arising from light quarks and gluons.

19.1.2

Evolution of the number density in the Earth/Sun

Neutralinos are steadily being trapped in the Sun or Earth by scattering, whereas annihilations
take them away. Let N (t) be the total number of neutralinos trapped, at time t, in the core of, for
example, the Earth. The annihilation rate of neutralino pairs can be written as
Γa (t) =

1
Ca N 2 (t) .
2

(19.3)

The evolution of N (t) is the result of the competition between capture and annihilation:
dN
= Cc (t) − Ca N 2
dt

(19.4)

The constant Cc is the capture rate, and Ca entering equations (19.3) and (19.4) is linked to the
annihilation cross-section σa , and to some effective volumes Vj , j = 1, 2, taking into account the
quasi-thermal distribution of neutralinos in the Earth core:
V2
,
V12
−3/2

j mX
cm3 .
10 GeV

Ca = hσa vi
Vj ≃ 2.3 × 1025

This has the solution for the annihilation rate implemented in DarkSUSY
 
Cc
t
ΓA =
,
tanh2
2
τ

(19.5)

(19.6)

(19.7)

19.1. NEUTRINOS FROM THE SUN AND EARTH – THEORY

199

√
where the equilibration time scale τ = 1/ Cc Ca . In most cases for the Sun, and in the cases of
observable fluxes for the Earth, τ is much smaller than a few billion years, and therefore equilibrium
is often a good approximation (Ṅ (t) = 0). This means that it is the capture rate which is the
important quantity that determines the neutrino flux. However, in the program we keep the exact
formula (19.7), with some modifications discussed in Sec. 19.1.8).

19.1.3

Approximate capture rate expressions

The capture rate induced by scalar (spin-independent) interactions between the neutralinos and
the nuclei in the interior of the Earth or Sun is the most difficult one to compute, since it depends
sensitively on the Higgs mass, form factors, and other poorly known quantities. However, this
spin-independent capture rate calculation is the same as for direct detection treated in Section ??.
Therefore, there is a strong correlation between the neutrino flux expected from the Earth (which
is mainly composed of spin-less nuclei) and the signal predicted in direct detection experiments
[97, 98]. It seems that even the large (kilometer-scale) neutrino telescopes planned, when searching
for neutralino annihilation in the Earth, will not be competitive with the next generation of direct
detection experiments when it comes to detecting neutralino dark matter. However, the situation
concerning the Sun is more favourable. Due to the low counting rates for the spin-dependent
interactions in terrestrial detectors, high-energy neutrinos from the Sun constitute a competitive
and complementary neutralino dark matter search. Of course, even if a neutralino is found through
direct detection, it will be extremely important to confirm its identity and investigate its properties
through indirect detection. In particular, the mass can be determined with reasonable accuracy by
looking at the angular distribution of the detected muons [99, 100].
For the Sun, dominated by hydrogen, the axial (spin-dependent) cross section is important and
relatively easy to compute. A reasonably good approximation is given by [3]
  100 GeV 

sd
C⊙
ρχ
=
(1.3 · 1023 s−1 ) (270 km s−1 /v̄)
0.3 GeV cm−3
mχ

sd
σpχ
10−40 cm2

!

(19.8)

sd
where σpχ
is the cross section for neutralino-proton elastic scattering via the axial-vector interaction, v̄ is the dark-matter velocity dispersion, and ρχ is the local dark matter mass. The capture
rate in the Earth is dominated by scalar interactions, where there may be kinematic and other
enhancements, in particular if the mass of the neutralino almost matches one of the heavy elements
in the Earth. For this case, a more detailed analysis is called for, which is available in [80] with
convenient approximations in [3]. In fact, also for the Sun the spin-independent contribution can
be important, in particular iron may contribute non-negligibly. For the Sun, the approximation in
[3] is also available,

  100 GeV 

si
C⊙
ρχ
×
=
(4.8 · 1022 s−1 ) (270 km s−1 /v̄)
0.3 GeV cm−3
mχ

si
X
σA
FA (mχ )fA φA S (mχ /mA ) /mA ,
10−40 cm2

(19.9)

A

where fA is the mass fraction of element A and φA is the typical gravitational potential (relative to
the surface) for that element. I.e. an element that is concentrated in the core will have a higher φA
than an element at the surface. A is the atomic number of the element and MA is its mass. The
factor S is a kinematical suppression factor [3, 161]. In the next subsection we will go through the
compositions of the Earth/Sun that we use.
The approximate capture rate expressions above are coded into the routines dsntcapsun and
dsntcapearth. More accurate expressions will follow in the coming subsections.

200CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH

Element
Hydrogen, H
Helium-4, 4 He
Carbon, C
Nitrogen, N
Oxygen, O
Neon, Ne
Magnesium, Mg
Silicon, Si
Sulphur, S
Iron, Fe

Mass number (A)
1
4
12
14
16
20
24
28
32
56

Average parameters
fi
φi
0.670
3.15
0.311
3.40
0.00237
2.85
0.00188
3.83
0.00878
3.25
0.00193
3.22
0.000733
3.22
0.000798
3.22
0.000550
3.22
0.00142
3.22

Table 19.1: The composition of the Sun with average parameters to be used in the approximative
relations given in [3]. These values are updated with the solar model of [190] and differs slightly
from the values used in [3].

Element
Oxygen, O
Silicon, Si
Magnesium, Mg
Iron, Fe
Calcium, Ca
Phosphor, P
Sodium, Na
Sulphur, S
Nickel, Ni
Aluminum, Al
Chromium, Cr

Mass
number (A)
16
28
24
56
40
30
23
32
59
27
52

Mass
Core
0.0
0.06
0.0
0.855
0.0
0.002
0.0
0.019
0.052
0.0
0.009

fraction
Mantle
0.440
0.210
0.228
0.0626
0.0253
0.00009
0.0027
0.00025
0.00196
0.0235
0.0026

Average parameters
fi
φi
0.298
1.20
0.162
1.24
0.154
1.20
0.319
1.546
0.0171
1.20
0.00071
1.56
0.00183
1.20
0.0063
1.59
0.0181
1.57
0.0159
1.20
0.0047
1.44

Table 19.2: The composition of the Earth’s core and mantle. The core mass fractions are from
[172][Table 4] and the mantle mass fractions are from [172][Table 2]. The average mass fractions
and potentials in the last two columns are weighted averages assuming a core mass of 1.93 · 1024 kg
and a mantle mass of 4.04 · 1024 kg with average potentials (relative to the surface) of 1.6 in the
core and 1.2 in the mantle [80].

19.1.4

Earth and Sun composition

When the capture rates are calculated, we need to know the composition and density of the
Earth/Sun as a function of depth.
In [3] they used average mass fractions and potentials for the location of the various elements
in the Sun. We have updated these to the BP2000 [190] values instead, as given in Table 19.1
For the Earth, we have also implemented more accurate density profiles and more up-to date
chemical distributions within the Earth. We use the estimates for the Earth composition given in
[172][Table 2 for the mantle and Table 4 for the core]. In Table 19.2 we list these values together with
the average parameters fi and φi that should be used in the expressions for the approximate capture
rates in the previous section. Note that using these average parameters instead of integrating over
the full radius is equivalent to putting all the elements of the give type at the gravitational potential
φi .
We also need the density profile of the Earth, and for this we use the values in [107]. Using this
density profile, we can calculate the gravitational potential, φ(r) inside the Earth and from this one

Escape velocity (km/s)

3

Density (g/cm )

19.1. NEUTRINOS FROM THE SUN AND EARTH – THEORY

14
12
10
8
6
4
2
0
15
14.5
14
13.5
13
12.5
12
11.5
11

201

a)

b)

0

1000 2000 3000 4000 5000 6000
Radius (km)

Figure 19.1: In a) the density profile and in b) the escape velocity in the Earth is shown.
the escape velocity v inside the Earth,
v = 11.2

s

φ(r)
km/s.
φ(R⊕ )

(19.10)

In Fig. 19.1 we show the density profile and escape velocity inside the Earth.

19.1.5

More accurate capture rate expressions

Another complicating factor when calculating the capture rates is the integration over the velocity
distribution. In [80], parts of the integrations are performed analytically for a Gaussian veolocity
distributions. These expressions are also coded in DarkSUSYfor the Earth and give a more accurate
calculation of the capture rate in the Earth than the approximations given above. The routine
dsntcapearth2 performs these calculations for the Earth.

19.1.6

Accurate capture rates in the Earth for general velocity distributions

If one wants even more accurate and general expressions for the capture rates in the Sun/Earth,
we have also implemented the full expressions in [80], but without assuming that the velocity distribution is a Gaussian (or Maxwell-Boltzmann). These routines are now the default in DarkSUSY.
We will here outline how these expressions look like for the Earth and how they can be used
both for a Maxwell-Boltzmann distribution and for a general velocity distribution. The expressions
will of course look analogously for the Sun. We start with the general case and study the special
case of a Maxwell-Boltzmann distribution in the next section.
We will divide the Earth into shells and calculate the capture from element i in each shell
individually. At the end we will integrate over all the shells and sum over all the elements in the

202CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
Earth. The capture rate from element i per unit shell volume is given by [80][Eq. (2.8)]
Z umax
dCi
f (u)
du
=
wΩ−
(19.11)
v,i (w)
dV
u
0
R∞
where f (u) is the velocity distribution (normalized such that 0 f (u) = nχ where nχ is the number
density of WIMPs. The expression Ω−
v,i (w) is related to the probability that we scatter to orbits
below the escape velocity. w is the velocity at the given shell and it is related to the velocity at
infinity u and the escape velocity v by
p
w = u2 + v 2 .
(19.12)

The upper limit of integration is a priori set to umax = ∞, but we will see below that due to
kinematical reasons we can set it to a lower value (Eq. (19.17) below). If we allow for a form factor
suppression of the form [80][Eq. (A3)]


∆E
(19.13)
|F (q 2 )|2 = exp −
E0
with [80][Eq. (A4)]
E0 =

3h̄2
2mχ R2

we can evaluate wΩ−
v,i (w) and arrive at the expression [80][Eq. (A6)]
# 
"

2 +v2
2
mχ u2
− µ2 mχ u2E
µ
µ
u2
0
µ
− 2E
+
−
+
0
wΩv,i (w) = σi ni
−e
Θ
− 2
2E0 e
µ
µ2+
u + v2

(19.14)

(19.15)

where we have introduced

µ±1
mχ
; µ± =
(19.16)
mi
2
with mi the mass of element i. The Heaviside step function Θ plays the role of only including
WIMPs that can scatter to a velocity lower then the escape velocity v. To simplify our calculations
we can drop this step function in Eq. (19.15) and instead set the upper limit of integration in
Eq. (19.11) to
r
µ
umax =
v
(19.17)
µ2−
µ=

We also need the scattering cross section on element i, which can be written as [3][Eq. (9-25)]
σi = σp A2i

(mχ mi )2 (mχ + mp )2
(mχ + mi )2 (mχ mp )2

(19.18)

where Ai is the atomic number of the element, mp is the proton mass and σp is the scattering cross
section on protons.
We now have what we need to calculate the capture rate. In Eq. (19.11) we integrate over the
velocity for our chosen velocity distribution. We then integrate this equation over the radius of the
Earth and sum over all the different elements in the Earth,
Z R⊕ X
dCi
C=
dr
4πr2
(19.19)
dV
0
i
Note that we have not assumed anything special about our velocity distribution, it doesn’t even
have to be isotropic since the distribution of elements evenly in the shells will make an anisotropic
distribution on average to behave as an isotropic one.

19.1. NEUTRINOS FROM THE SUN AND EARTH – THEORY

203

The routines that calculate the capture rates with these general (and accurate) expressions are
dsntcapearthnum and dsntcapsunnum. As these calculations are somewhat time-consuming, we have
also added a possibility to tabulate the result and interpolate in these tables. To use (or create, if
the table files are missing) instead call dsntcapearthtab and dsntcapsuntab. These last two routines
are the default in DarkSUSY. The velocity distribution used is determined by a switch when the
halo model is set (i.e. when dshmset is called).

19.1.7

Accurate capture rates for the Earth for a Maxwell-Boltzmann
velocity distribution

We will here give some more information on how the approximations introduced in the beginning
of this chapter are derived from the general expressions in the preceeding section.
If the velocity distribution is of Maxwell-Boltzmann type we can greatly simplify our expressions
above as we can perform the integration over velocity analytically. The integration over radius can
also be further simplified by using the average mass fractions fi and potentials φi in Tables 19.1–
19.2.
If the velocity distribution in the halo is Maxwell-Boltzmann, it looks like
4
fh (u)du = nχ √
π

  23 2
3
u − 23 u22
e v̄ du
2
v̄ 3

(19.20)

where v̄ is the three-dimensional velocity dispersion and nχ is the number density of WIMPs in the
halo. However, the solar system moves through the halo with a velocity v∗ and the distribution on
observer with this velocity through the halo will see is
r



3uv∗
v2 sinh
(u−v∗ )2
(u+v∗ )2
3 u
2
− 23 ∗
− 23
− 32
v̄
v̄2
v̄2
f∗ (u) = fh (u)e v̄2
(19.21)
=
n
−
e
e
χ
3uv∗
2π v̄v∗
v̄ 2
Now one would naively believe that this is not the distribution that an observer at the Earth will
see. First of all, the Earth is moving with respect to the Sun and secondly, the WIMPs have
gained speed by the gravitational attraction of the Sun when they reach the Earth. Both of these
arguments are true and the distribution of WIMPs in the halo will not look like Eq. (19.21) to an
observer on the Earth. However, Gould [104] showed that WIMPs from the halo can diffuse into
the solar system due to gravitational interactions with the planets and this distribution of WIMPs
will roughly look like as if the Earth was in free space moving through the halo with the velocity
of the solar system, i.e. Eq. (19.21). We will later scrutinize this statement, as it turns out that it
does not quite hold, but as a first guess it is a reasonable approximation. For the Sun, though, the
velocity distribution give above is the correct one for a Maxwell-Boltzmann distribution.
With the distribution Eq. (19.21) we can analytically perform the integration over velocity in
Eq. (19.11). After some algebra we arrive at [80][Eq. (A10)]
dCi
dV

=



8
3π

 12

σi ni nχ v̄
2bη
"
2 h
i
e−aη̂
f
f Â+ ) + erf(
f Â− )
√
2erf(η̂)
− erf(
1+a

2
i
e−bη̌ −(a−b)A2 h f
f Ǎ+ ) + erf(
f Ǎ− )
−√
2erf(η̌) − erf(
e
1+b

f is the modified error function,
where erf
√
π
f
erf(x)
=
erf(x)
2

;

2
erf(x) = √
π

Z

x
0

2

e−y dy.

#

(19.22)

(19.23)

204CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
Following Gould [80], we have in Eq. (19.22) introduced the following shorthand notation:
q 2
2
v
c hiv̄
η = 32 v̄∗2
;
b = µµ2 a
;
a = m3E
0
√η
1+a
3 v2 µ
2 v̄ 2 µ2−

;

± =  ± η̂

;

η̂ =

A2 =

η̌ =

√η
√1+b

; Â = A 1 + a

+

√
; Ǎ = A 1 + b

(19.24)

Ǎ± = Ǎ ± η̌

If we wish, we can now integrate Eq. (19.22) over radius just like in the previous section, but we
can without loosing too much accuracy, replace this integration with a sum over the elements in
the Earth with their respective typical location. I.e. we can write
X dCi 1 fi M⊕
C=
(19.25)
dV ni mi
i
where we instead of the number density ni use the total number of atoms of the given type fi M⊕ /mi .
Note that for each element in the sum we should evaluate this expression at the given typical
gravitational potential φi of the element, i.e. with the escape velocity given by Eq. (19.10). The
mass fractions fi and typical potentials φi are listed in Table 19.2 (and analogously in Table 19.1
for the Sun). This approximation introduces an error of no more than about 1–2% for a MaxwellBoltzmann distribution∗
The capture rate evaluated with the expressions shown here are encoded into the routine dsntcapearth2. Note that we have not coded the corresponding approximate expressions for the Sun.
Instead, as given in the preceeding section, we now have more accurate expressions for both the
Sun and the Earth.

19.1.8

A possible new population of neutralinos

Recently, it has been shown that the scattering process in the Sun can populate orbits which
subsequently result in a bound Solar System population of WIMPs [101, 102] and which can be
comparable in spectral density, in the region of the Earth, to the Galactic halo WIMP population.
This new population consists of WIMPs that have scattered in the outer layers of the Sun and
due to perturbations by the other planets (mainly Venus and Jupiter) evolve into bound orbits
which do not cross the Sun but do cross the Earth’s orbit. This population of WIMPs should have
a completely different velocity distribution than halo WIMPs and will thus have quite different
capture probabilities in the Earth. The predicted WIMP abundance, and spectrum, relevant for
direct detection have been calculated in [101, 102], where it was shown that although the total
rates may not change by a large amount, there could be a striking directional effect, which could
be of impoertance once detectors with directional sensitivity are built. Also for capture in the
Earth, and the predicted indirect neutrino signature, there are poissibly large effects, incorporated
as an optional choice in DarkSUSY, coming from this new population [77]. (Other studies of solar
system populations of WIMPs can be found in [103, 104]. See also the comments in [105] about the
uncertainties involved in estimating these effects.)
The enhancement caused by the new population is only important for neutralino mass less than
150 - 170 GeV (the exact number depending on details about the angular momentum distribution
[77]).
Following the notation of [101, 102] one can write the contribution from the new population of
neutralinos to the usual halo neutralino density as
δE ≡
∗ Note

n(a1 )
(secondary) neutralino density at the Earth
≡
,
nX
halo neutralino density at infinity

(19.26)

that it is not advisable to use this approximation for general velocity distributions. If one e.g. has a lower
limit on possible velocities, umin , for heavy WIMPs capture will then only be possible very close to the central core.
Replacing the actual distribution of potentials φ(r) with the typical value φi may then introduce larger errors. We
will encounter these kind of distributions shortly.

19.2. NEUTRINOS FROM SUN AND EARTH – ROUTINES

205

where

5.44 × 1036
0.212
(−10)
−2
=
gtot .
(19.27)
−1 × gtot GeV cm
(vo /220 km s )
(vo /220 km s−1 )
P
(−10)
Here, gtot ≡ 1010 gtot (GeV)3 , and gtot = A (fA /mA ) σA φsA , where fA is the mass fraction of
element A in the Sun, and φsA is the surface value of the capture function on the element of mass
number A in the Sun [102].
The scattering rate of neutralinos in the outer layers of the Sun (which causes the fast halo
neutralinos to lose enough energy to enter bound orbits close to the Earth’s orbit) is proportional
to σA φsA , which can be calculated once the parameters of the SUSY neutralino in question are fixed.
(For the elemental abundances in the Sun, we use the compilation in [106].)
(−10)
The values of gtot can in some cases approach unity. The spread is very large, however, and
some models give orders of magnitude smaller values. As would be expected, the models with the
(−10)
highest values of gtot
are the same models which give high scattering rates in direct detection
experiments. As mentioned, the integrated effect of the new population in direct experiments is not
very prominent (see refs. [101, 102]). On the other hand, they can imply a large effect on indirect
detection neutrino rates.
The total capture rate is computed according to the formulas in [77], which take into account
that the annihilation rates from the earth will, in general depend on time in a different way than
the simple result in Eq. (19.7).
Due to this nonlinear nature of the capture rate, there is no simple scaling of the computed
detection rates with the local halo density. Therefore, it is advisable that the user rescales the local
halo density (see section 15.1.1) before calculating the rates in neutrino telescopes.
The new population can cause an increase of the detection rates by as much as a factor of 100
when the neutralino mass is less than around 150 GeV.
δE =

19.1.9

Effects of WIMP diffusion in the solar system

As the Earth has a rather low escape velocity, the Earth will only be able to capture WIMPs that
have a rather low velocity with respect to the Earth. However, WIMPs from the halo have gained
speed in the gravitaional potential from the Sun and will essentially be impossible to capture by the
Earth. Hence, the Earth will only capture WIMPs that have diffused around in the solar system (by
gravitational interactions with the other planets). Gould showed [187] that effectively this diffusion
will lead to the same phase space distribution at the Earth as if the Earth was in free space (i.e.
neglecting the solar potential). However, numerical simulations of asteroids showed that they are
thrown into the Sun due to perturbations of the orbits by other planets, see e.g. [188]. These
analyses led to worried that maybe the population of WIMPs diffusing around in the solar system
is not as big as thought [189]. In [186], Lundberg and Edsjö investigated this issue with detailed
numerical simulations of WIMP orbits in the solar system, showing that the annihilation rate in
the Earth is typically reduced by up to two orders of magnitude. In DarkSUSY, we include these
results for the neutrino rates from the Earth by using the velocity distribution at the Earth (as
obtained in [186]). This velocity distribution is then used as input for our numerical capture rate
routines instead of the usual approximation of using the halo velocity distribution directly. Using
these new velocity distributions for the Earth is the default in DarkSUSY.

19.2

Neutrinos from Sun and Earth – routines

COMMENT #10: NOTE: This section is not up-to date with the current DarkSUSY release.
This set of routines contain routines to calculate the neutrino-induced muon flux from the Earth
and the Sun in various models. It also includes routines that calculate the neutrino-induced muon
flux from other sources, like the Sun’s atmosphere, the Earth’s atmosphere .
COMMENT #11:
(include these???)

206CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
There are three different methods of calculation available (determined by ntcalcmet in dsntcom.h).
Method 1 uses the approximate formulae for the capture rates in the Earth/Sun from the Jungman,
Kamionkowski and Griest review [3]. Method 2, uses the same expression for the Sun, but the full
expression from Gould [169] for capture in the Earth (this is the default). Method 3, finally, is
the same as 2, but it also includes capture in the Earth from the Damour-Krauss population of
WIMPs that have scattered in the outscirts of the Sun. The easiest way to select method is by
calling dsntset, with the argument ’jkg’ for method 1, ’gould’ or ’default’ for method 2 and ’dk’
for method 3. A call to dsntset(’default’) is made in dsinit, but can be changed by the user
by calling dsntset after dsinit.
To calculate the neutrino-induced muon flux from the Earth, you call
subroutine dsntrates(emuth,thmax,rtype,rateea,ratesu,istat)
Calculate the rate of neutrinos or neutrino-induced muons in a neutrino telescope from neutralino annihilation in the Earth and the Sun.

Purpose:
Input:
emuth r8
thmax r8

rtype

i

Output:
rateea r8
ratesu r8
istat
i

The neutrino or muon energy threshold in GeV.
The half-aperture opening angle (in degrees) towards the center of the Sun or
the Earth (i.e. the flux will be summed in a cone towards the center of the Sun
or the Earth, where the top-angle of the cone is 2*thmax).
Type of flux to calculate:
=1: muon neutrino-flux (neutrino and anti-neutrino summed) in units of km−2
yr−1 .
=2: neutrino-to-muon conversion rate (muons and anti-muons summed) in units
of km−3 yr−1 .
=3: muon flux (muons and anti-muons summed) in units of km−2 yr−1 .
The rate from neutralino annihilation in the Earth in the above units.
The rate from neutralino annihilation in the Sun in the above units.
=0: Everything went OK.
6= 0: Some of the tables of neutrino or muon yields had to be used outside their
tabulated regions. Extrapolations have been used.

subroutine dsntdiffrates(emu,theta,rtype,rateea,ratesu,istat)
Calculate the differential rate of neutrinos or neutrino-induced muons in a neutrino telescope from neutralino annihilation in the Earth and the Sun.

Purpose:
Input:
emu
theta
rtype

r8
r8
i

Output:
rateea r8
ratesu r8
istat
i

The neutrino or muon energy in GeV.
The angle (in degrees) from the center of the Sun or the Earth.
Type of flux to calculate:
=1: muon neutrino-flux (neutrino and anti-neutrino summed) in units of km−2
yr−1 GeV−1 degrees−1 .
=2: neutrino-to-muon conversion rate (muons and anti-muons summed) in units
of km−3 yr−1 GeV−1 degrees−1.
=3: muon flux (muons and anti-muons summed) in units of km−2 yr−1 GeV−1
degrees−1 .
The rate from neutralino annihilation in the Earth in the above units.
The rate from neutralino annihilation in the Sun in the above units.
=0: Everything went OK.
6= 0: Some of the tables of neutrino or muon yields had to be used outside their
tabulated regions. Extrapolations have been used.

19.3. ROUTINE HEADERS – FORTRAN FILES

19.3

Routine headers – fortran files

dsai.f

c
c

real*8 function dsai(x)
dsairy function
lb 990224

dsaip.f

c
c

real*8 function dsaip(x)
dsairy function derivative
lb 990224

dsatm mu.f
real*8 function dsatm_mu(e_mu,c_th,flt)
c ***********************************************************************
c
gives muon flux from atmospheric neutrinos. uses dshonda.f and
c
dsgauss1.f.
c
based on the approximation in gaisser and stanev prd30 (1984) 985.
c
variables:
c
e_mu muon energy in gev
c
c_th cosine of zenith angle
c
fltype - 1 flux of muons in units of cm^-2 s^-1 sr^-1 gev^-1
c
2 cont. event rates in units of cm^-3 s^-1 sr^-1 gev^-1
c
c
output is dn/de_mu in muons per cm**2(3) per sec per sr per gev
c
l. bergstrom 1996-09-02
c
modified by j. edsjo (edsjo@physto.se)
c
date: jun-03-98
c
c ***********************************************************************

dsbi.f

c
c

real*8 function dsbi(x)
dsairy function
lb 990224

dsbip.f

c
c

real*8 function dsbip(x)
dsairy function derivative
lb 990224

207

208CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH

dsff.f
real*8 function dsff(x)
No header found.

dsff2.f
real*8 function dsff2(x)
No header found.

dsff3.f
real*8 function dsff3(x)
No header found.

dsfff2.f
real*8 function dsfff2(x)
No header found.

dsfff3.f
real*8 function dsfff3(x)
No header found.

dsgauss1.f
subroutine dsgauss1(f,a,b,result,eps,lambda)

dshiprecint.f
subroutine dshiprecint(fun,foveru,lowlim,upplim,result)

dshiprecint2.f
subroutine dshiprecint2(fun,foveru,lowlim,upplim,result)

dshonda.f
c ***********************************************************************
real*8 function dshonda(nu_type,e_nu,c_th)
c ***********************************************************************
c
c
gives atmospheric neutrino flux according to m. dshonda et al.,
c
phys. rev. d52 (1995) 4985, by interpolating their tables iv
c
and v in log(e_nu) and cos_theta.
c
c
variables:
c
nu_type - type of neutrino:
c
c
nu_type=1 muon neutrino

19.3. ROUTINE HEADERS – FORTRAN FILES
c
nu_type=2 muon antineutrino
c
nu_type=3 electron antineutrino (not yet implemented)
c
nu_type=4 electron antineutrino (not yet implemented)
c
c
c
e_nu - neutrino energy in gev
c
c_th - cosine of zenith angle
c
output: dshonda returns neutrino differential flux dn_nu/de in units
c
of cm^(-2)sec^(-1)sr^(-1)gev^(-1).
c
c
allowed energy range: 1 gev to 3.9 tev (above 3.1 tev extrapolation
c
is made)
c
c
lars bergstrom 1996-09-02
c
c
c ***********************************************************************

dslnff.f
real*8 function dslnff(x)
No header found.

dsntannrate.f
subroutine dsntannrate(mx,sigsip,sigsdp,sigma_v,arateea,
& aratesu)
c_______________________________________________________________________
c
c
wimp annihilation rate in the sun and in the earth
c
in units of 10^24 annihilations per year
c
c
also gives the capture rate and the annih/capt equilibration time
c
c
november, 1995
c
uses routines by p. gondolo and j. edsjo
c
modified by l. bergstrom and j. edsjo and p. gondolo
c
capture rate routines are written by l. bergstrom
c
input: mx
- wimp mass
c
sigsip - spin-indep wimp-proton cross section in cm^2
c
sigsdp - spin-dep wimp-proton cross section in cm^2
c
sigma_v - wimp self-annihilation cross section in cm^3/s
c
rescale - rescale factor for local density
c
output: arateea - 10^24 annihilations per year, earth
c
aratesu - 10^24 annihilations per year, sun
c
slightly modified by j. edsjo.
c
modified by j. edsjo 97-05-15 to match new inv. rate convention
c
modified by j. edsjo 97-12-03 to match muflux3.21 routines.
c
modified by p. gondolo 98-03-04 to detach it from susy routines.
c
c=======================================================================

209

210CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH

dsntcapcom.f
No header found.

dsntcapearth.f
***********************************************************************
*** note. this routine assumes a maxwell-boltzmann velocity
*** distribution and uses approximations in the jkg review,
*** Jungman, Kamionkowski and Griest, Phys. Rep. 267 (1996) 195.
*** In particular, it is assumed that the Sun’s velocity is
*** sqrt(2/3)*vd_3d.
*** for more accurate results, use dsntcapearthfull instead.
*** for an arbitrary velocity distribution, use dsntcapearthnumi instead.
***********************************************************************
real*8 function dsntcapearth(mx,sigsi)
c---------------------------------------------------------------------c
capture rate in the earth
c
based on jungman, kamionkowski, griest review
c
mx: neutralino mass
c
sigsi: spin independent cross section in units of cm^2
c
vobs: average halo velocity
c
lars bergstrom 1995-12-14
c----------------------------------------------------------------------

dsntcapearth2.f
***********************************************************************
*** note. this routine uses the full expressions for the capture
*** rate in the earth from gould, apj 521 (1987) 571.
*** this routine replaces dsntcapearth which use the approximations
*** given in the jkg review.
***********************************************************************

real*8 function dsntcapearth2(mx,sigsi)
c---------------------------------------------------------------------c
capture rate in the earth
c
uses the full routines instead of jkg (as in dsntcapearth).
c *** full: use formulas by gould as reported in jkg
c
c
mx: neutralino mass
c
sigsi: spin independent cross section in units of cm^2
c
vbar: 3D WIMP velocity dispersion in the halo
c
vstar: Sun’s velocity through the halo
c
lars bergstrom 1998-09-15
c----------------------------------------------------------------------

dsntcapearthfull.f
***********************************************************************
*** full capture rate routines for the earth.

19.3. ROUTINE HEADERS – FORTRAN FILES
*** this set of routines use the full expressions for the capture rate
*** in the earth as given in gould, apj 321 (1987) 571.
*** dsntcapearthfull thus replaces dsntcapearth which use the approximations
*** given in the jkg review. these routines assume a maxwell*** boltmann velocity distribution. for the damour-krauss population
*** of wimps, the routine dsntcapearthnumi should be used instead.
***********************************************************************
real*8 function dsntcapearthfull(mx,sigsi,v_star,v_bar,rho_x)
c---------------------------------------------------------------------c
capture rate in the earth
c *** full: use formulas by gould ap.j. 321 (1987) 571
c
mass fractions and phi_i from jkg review
c
mx: neutralino mass
c
sigsi: spin independent cross section in units of cm^2
c
v_star: solar system velocity through halo (220 km/s in standard case)
c
v_bar: 3D velocity dispersion of wimps (270 km/s in standard case)
c
rho_x: local wimp density (units of gev/cm**3)
c
lars bergstrom 1998-09-21
c
Modified by J. Edsjo, 2003-11-22
c References: gould: Gould ApJ 321 (1987) 571
c----------------------------------------------------------------------

dsntcapearthnum.f
***********************************************************************
*** dsntcapearthnum calculates the capture rate at present.
*** Intead of using the assumptions of Gould (i.e. capture as in
*** free space), a tabulted velocity distribution based on detailed
*** numerical simulations of Johan Lundberg is used.
*** A numerical intregration has to be performed instead of the
*** convenient expressions in jkg.
*** Input: mx = neutralino mass in GeV
***
sigsi = spin-independent scattering cross section in cm^2
***
type = type of velocity distribution
***
1 = best estimate of distribution at Earth form numerical sims
***
2 = conservative estimate, only including free orbits and
***
jupiter-crossing orbits
***
3 = ultraconservative estimate, only including free orbits
***
4 = as if Earth was in free space, i.e. with a Gaussian
***
(Gaussian provided by dsntsdfoveru)
***
5 = as if Earth was in free space, i.e. with a Gaussian
***
(Gaussian provided by dsntdkfoverugauss)
***
6 = Damour-Krauss population (this is per gtot10), i.e.
***
multiply with gtot10 to get the full capture rate
***
Note: 1 is the best estimate of the distribution at Earth
***
and should be used as a default
*** author: joakim edsjo (edsjo@physto.se)
*** date: July 10, 2003
***********************************************************************
real*8 function dsntcapearthnum(mx,sigsi)

211

212CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH

dsntcapearthnumi.f
c dsntcapearthnumi.f:
***********************************************************************
*** dsntcapearthnumi gives the capture rate of neutralinos in the earth
*** given a specified velocity distribution. the integrations over
*** the earth’s radius and over the velocity distribution are
*** performed numerically
*** input: mx [ gev ]
***
sigsi [ cm^2 ]
***
foveru [ cm^-3 (cm s^-1)^-2 ] external function f(u)/u with
***
velocity u [ km s^-1 ] as argument.
***
vt (velocity type): 1=general type, 2=DK-type (i.e. only
***
include non-zero parts )
*** output: capture rate [ s^-1 ]
*** l.b. and j.e. 1999-04-06
*** Modified by Joakim Edsjo 2003-07-10 to allow for arbitrary external
*** velocity distributions foveru.
***********************************************************************
real*8 function dsntcapearthnumi(mx,sigsi,foveru,vt)

dsntcapearthtab.f
***********************************************************************
*** This routine calculates the capture rates in the Earth.
*** It does the same thing as dsntcapearthnum (i.e. dsntcapearthnumi),
*** except that it uses tabulted versions of the results intead
*** of performing a numerical integration every time.
*** Inputs: mx - neutralino mass in GeV
***
sigsi - spin-independent capture rate in cm^2
***
type - type of distribution (same as in dsntcapearthnum)
*** Author: Joakim Edsjo
*** Date: 2003-11-27
***********************************************************************
real*8 function dsntcapearthtab(mx,sigsi)

dsntcapsun.f
real*8 function dsntcapsun(mx,sigsi,sigsd)
c---------------------------------------------------------------------c
capture rate in the sun
c
based on jungman, kamionkowski, griest review
c
mx: neutralino mass
c
sigsi: spin independent cross section in units of cm^2
c
sigsd: spin dependent cross section in units of cm^2
c
vobs: average halo velocity
c
output:
c
capture rate in s^-1
c
lars bergstrom 1995-12-12

19.3. ROUTINE HEADERS – FORTRAN FILES
c----------------------------------------------------------------------

dsntcapsunnum.f
***********************************************************************
*** dsntcapsunnum calculates the capture rate at present.
*** Instead of using the approximations in jkg, i.e. a gaussian
*** velocity distribution and approximating all elements as being
*** at their typical radius, we here integrate numerically over
*** the actual velocity distribution and over the Sun’s radius.
*** The velocity distribution used is the one set up by the
*** option veldf in dshmcom.h (see src/hm/dshmudf.f for details)
*** Input: mx = neutralino mass in GeV
***
sigsi = spin-independent scattering cross section (cm^2)
***
sgisd = spin-dependent scattering cross section on protons (cm^2)
*** author: joakim edsjo (edsjo@physto.se)
*** date: 2003-11-26
***********************************************************************
real*8 function dsntcapsunnum(mx,sigsi,sigsd)

dsntcapsunnumi.f
c dsntcapsunnumi.f:
***********************************************************************
*** dsntcapsunnumi gives the capture rate of neutralinos in the sun
*** given a specified velocity distribution. the integrations over
*** the sun’s radius and over the velocity distribution are
*** performed numerically
*** input: mx [ gev ]
***
sigsi [ cm^2 ]
***
sgisd [ cm^2 ]
***
foveru [ cm^-3 (cm s^-1)^-2 ] external function f(u)/u with
***
velocity u [ km s^-1 ] as argument.
*** Author: Joakim Edsjo
*** Date: 2003-11-26
***********************************************************************
real*8 function dsntcapsunnumi(mx,sigsi,sigsd,foveru)

dsntcapsuntab.f
***********************************************************************
*** This routine calculates the capture rates in the Sun.
*** It does the same thing as dsntcapsunnum (i.e. dsntcapsunnumi),
*** except that it uses tabulted versions of the results intead
*** of performing a numerical integration every time.
*** Inputs: mx - neutralino mass in GeV
***
sigsi - spin-independent capture rate in cm^2
***
type - type of distribution (same as in dsntcapsunnum)
*** Author: Joakim Edsjo
*** Date: 2003-11-27
***********************************************************************

213

214CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH

real*8 function dsntcapsuntab(mx,sigsi,sigsd)

dsntceint.f
***********************************************************************
*** l.b. and j.e. 1999-04-06
*** auxiliary function for r-integration
*** input: radius in centimeters
*** output: integrand in cm^-1 s^-1
***********************************************************************
real*8 function dsntceint(r,foveru)

dsntceint2.f
c...
c...auxiliary function for inner integrand
c...input: velocity relaitve to earth in km/s
c...output: integrand in cm^-4
c...We here follow the analysis in Gould, ApJ 321 (1987) 571 and more
c...specifically the more general expressions in appendix A.
real*8 function dsntceint2(u,foveru)

dsntcsint.f
***********************************************************************
*** l.b. and j.e. 1999-04-06
*** auxiliary function for r-integration
*** input: radius in centimeters
*** output: integrand in cm^-1 s^-1
*** Adapted for the Sun by J. Edsjo, 2003-11-26
***********************************************************************
real*8 function dsntcsint(r,foveru)

dsntcsint2.f
c...
c...auxiliary function for inner integrand
c...input: velocity relaitve to sun in km/s
c...output: integrand in cm^-4
c...We here follow the analysis in Gould, ApJ 321 (1987) 571 and more
c...specifically the more general expressions in appendix A.
real*8 function dsntcsint2(u,foveru)

dsntctabcreate.f
subroutine dsntctabcreate(wh,i)

19.3. ROUTINE HEADERS – FORTRAN FILES
***********************************************************************
*** Creates tabulated capture rates (apart from cross section)
*** Input: wh = ’su’ or ’ea’ for sun or earth
***
i = table number to store the results in
*** Author: Joakim Edsjo
*** Date: 2003-11-27
***********************************************************************

dsntctabget.f
real*8 function dsntctabget(wh,st,mx)
***********************************************************************
*** Interpolates in capture rate tables and returns the capture
*** rate (apart from the cross section)
*** Input: wh (’su’ or ’ea’ for sun or earth)
***
st, spin-type (1:spin-independent, 2:spin-dependent)
***
mx neutralino mass in GeV
*** Hidden input: velocity distribution model as given in
*** veldf (for the Sun) and veldfearth (for the Earth)
*** Author: Joakim Edsjo
*** Date: 2003-11-27
***********************************************************************

dsntctabread.f
subroutine dsntctabread(wh,i,file)
***********************************************************************
*** Reads in tabulated capture rates (apart from cross section)
*** Input: wh = ’su’ or ’ea’ for sun or earth
***
i = table number to read
***
file = file name to read
*** Author: Joakim Edsjo
*** Date: 2003-11-27
*** Modified: 2004-02-01
***********************************************************************

dsntctabwrite.f
subroutine dsntctabwrite(wh,i,file)
***********************************************************************
*** Writes out tabulated capture rates (apart from cross section)
*** Input: wh = ’su’ or ’ea’ for sun or earth
***
i = table number to write
***
file = file to write to
*** Author: Joakim Edsjo
*** Date: 2003-11-27

215

216CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
*** Modified: 2004-02-01
***********************************************************************

dsntdiffrates.f
subroutine dsntdiffrates(emu,theta,rtype,rateea,
& ratesu,istat)
c_______________________________________________________________________
c
c
n e u t r a l i n o
b r a n c h i n g
r a t i o s
c
a n d c a p t u r e r a t e i n t h e
s u n
c
m u o n
f l u x c a l c u l a t e d
c
november, 1995
c
uses routines by p. gondolo and j. edsjo
c
modified by l. bergstrom and j. edsjo
c
capture rate routines are written by l. bergstrom
c
input: emu
- muon (neutrino) energy in gev
c
theta - muon (neutrino) angle from the center of the earth/sun
c
in degrees
c
rtype
- 1 = neutrino flux, km^-2 yr^-1 gev^-1 degree^-1
c
2 = contained events km^-3 yr^-1 gev^-1 degree^-1
c
3 = through-going events km^-2 yr^-1 gev^-1 degree^-1
c
hidden input: ntcalcmet - 1 use jkg approximations
c
2 use jkg for sun, full gould for earth
c
3 use jkg for sun, full gould+dk for earth
c
4 use full numerical calculations for Sun, Earth
c
output: rateea - events from earth ann. km^-2(-3) yr^-1 gev^-1 deg^-1
c
ratesu - events from sun ann. per km^-2(-3) yr^-1 gev^-1 deg^-1
c
slightly modified by j. edsjo.
c
modified by j. edsjo 97-05-15 to match new inv. rate convention
c
modified by j. edsjo 97-12-03 to match muflux3.21 routines.
c
modified by p. gondolo 98-03-04 to detach dsntannrate from susy
c
routines.
c
modified by j. edsjo 98-09-07 to fix istat bug.
c
modified by j. edsjo 98-09-23 to use damour-krauss distributions
c
and full earth formulas.
c
modified by j. edsjo 99-03-17 to include better damour-krauss
c
velocity distributions and numerical capture rate integrations
c
for these non-gaussian distributions
c
c=======================================================================

dsntdkannrate.f
subroutine dsntdkannrate(m_x,sigsip,sigsdp,sigma_v,arateea,
& aratesu)
c_______________________________________________________________________
c
c
wimp annihilation rate in the sun and in the earth
c
in units of 10^24 annihilations per year
c

19.3. ROUTINE HEADERS – FORTRAN FILES
c
also gives the capture rate and the annih/capt equilibration time
c
c
november, 1995
c
uses routines by p. gondolo and j. edsjo
c
modified by l. bergstrom and j. edsjo and p. gondolo
c
capture rate routines are written by l. bergstrom
c
input: m_x
- wimp mass
c
sigsip - spin-indep wimp-proton cross section in cm^2
c
sigsdp - spin-dep wimp-proton cross section in cm^2
c
sigma_v - wimp self-annihilation cross section in cm^3/s
c
rescale - rescale factor for local density
c
output: arateea - 10^24 annihilations per year, earth
c
aratesu - 10^24 annihilations per year, sun
c
aratedk - 10^24 annihilations per year, earth including dk
c
slightly modified by j. edsjo.
c
modified by j. edsjo 97-05-15 to match new inv. rate convention
c
modified by j. edsjo 97-12-03 to match muflux3.21 routines.
c
modified by p. gondolo 98-03-04 to detach it from susy routines.
c
added damour-krauss population l.bergstrom 98-09-15
c
added better damour-krauss velocity distribution and numerical
c
integration of the capture rate for these non-gaussian
c
distributions. j. edsjo 99-03-17.
c=======================================================================

dsntdkcapea.f
real*8 function dsntdkcapea(mx,sigsi,sigsd)
c---------------------------------------------------------------------c
capture rate in the earth
c
low-velocity population described by damour and krauss (1998)
c *** simple version: only change vobs -> v_dk \sim 3*v_esc_earth
c *** in a factor (9.22) in jkg
c
based on jungman, kamionkowski, griest review
c
mx: neutralino mass
c
sigsi: spin independent cross section in units of cm^2
c
vobs: average halo velocity
c
lars bergstrom 1998-09-15
c----------------------------------------------------------------------

dsntdkcapeafull.f
real*8 function dsntdkcapeafull(mx,sigsi,sigsd)
c---------------------------------------------------------------------c
capture rate in the earth
c
low-velocity population described by damour and krauss (1998)
c *** full: use formulas by gould as reported in jkg
c
c
mx: neutralino mass
c
sigsi: spin independent cross section in units of cm^2
c
vobs: average halo velocity
c
lars bergstrom 1998-09-15
c----------------------------------------------------------------------

217

218CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH

dsntdkcapearth.f
***********************************************************************
*** dsntdkcapearth calculates the capture rate at present from the
*** damour-krauss distribution of wimps. a numerical integration
*** has to be performed instead of the convenient expressions in jkg.
*** author: joakim edsjo (edsjo@physto.se)
*** date: march 18, 1999
***********************************************************************
real*8 function dsntdkcapearth(mx,sigsi,sigsd)

dsntdkcom.f
No header found.

dsntdkfbigu.f
**********************************************************************
*** dsntdkfbigu is the velocity distribution in terms of big u=(u/v_e)^2.
c damour’s velocity distribution
c l. bergstrom 99-03-12
c u = (u/v_e)^2
c lambda = j_z^{now}/j_z^0
**********************************************************************
real*8 function dsntdkfbigu(bigu)

dsntdkfoveru.f
***********************************************************************
*** dsntdkfoveru is the velocity distribution for the damour-krauss
*** distribution of wimps divided by u, i.e. f(u)/u.
*** the normalization is such that int_0^infinity f(u) du = 1/gtot10
*** where gtot10 is a normalization factor that depends on how effectively
*** the WIMPs scatter off the Sun into these orbits.
*** Multiplying by (rhox/mx) and gtot10 gives the full f(u)/u.
*** The first factor is added in dsntfoveru.f and the second in
*** dsntdkcapearth.f
*** author: j. edsjo (edsjo@physto.se)
*** input: velocity relative to earth [ km s^-1 ]
*** output: f(u) / u [ (km/s)^2 ]
*** date: april 6, 1999
*** modified: 2004-01-30, gtot10 normalization taken out
***********************************************************************
real*8 function dsntdkfoveru(u)

dsntdkgtot10.f
real*8 function dsntdkgtot10(mx,sigsi,sigsd)
c----------------------------------------------------------------------

19.3. ROUTINE HEADERS – FORTRAN FILES
c
gtot used in damour-krauss calculation
c
units of 10**(-10) gev**(-2)
c
mx: neutralino mass
c
sigsi: spin-indep cross section in cm**2
c
sigsd: spin-dep
cross section in cm**2
c
lars bergstrom 1998-09-15
c----------------------------------------------------------------------

dsntdkka.f
real*8 function dsntdkka(aa,mx)
c-------------------------------------------------------------------------c
solar fringe capture rate constant k_a^s for given mass number aa
c
for low-velocity population described by damour and krauss (1998)
c
c
lars bergstrom 1995-12-12
c--------------------------------------------------------------------------

dsntdkyf.f
real*8 function dsntdkyf(xi,xf)
c y_f according to damour (gamma^{tot}_a = \half\alpha y_f^2 )
c lb 1998-02-24

dsntdqagse.f
*
*
*
*
*

======================================================================
nist guide to available math software.
fullsource for module dqagse from package cmlib.
retrieved from camsun on wed oct 8 08:26:30 1997.
======================================================================
subroutine dsntdqagse(f,foveru,
&
a,b,epsabs,epsrel,limit,result,abserr,neval,
1
ier,alist,blist,rlist,elist,iord,last)
c***begin prologue dqagse
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a1
c***keywords (end point) singularities,automatic integrator,
c
extrapolation,general-purpose,globally adaptive
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose the routine calculates an approximation result to a given
c
definite integral i = integral of f over (a,b),
c
hopefully satisfying following claim for accuracy
c
abs(i-result).le.max(epsabs,epsrel*abs(i)).
c***description
c
c
computation of a definite integral
c
standard fortran subroutine

219

220CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

real*8 version
parameters
on entry
f
- real*8
function subprogram defining the integrand
function f(x). the actual name for f needs to be
declared e x t e r n a l in the driver program.
a

- real*8
lower limit of integration

b

- real*8
upper limit of integration

epsabs - real*8
absolute accuracy requested
epsrel - real*8
relative accuracy requested
if epsabs.le.0
and epsrel.lt.max(50*rel.mach.acc.,0.5d-28),
the routine will end with ier = 6.
limit

- integer
gives an upperbound on the number of subintervals
in the partition of (a,b)

on return
result - real*8
approximation to the integral
abserr - real*8
estimate of the modulus of the absolute error,
which should equal or exceed abs(i-result)
neval

ier

- integer
number of integrand evaluations

- integer
ier = 0 normal and reliable termination of the
routine. it is assumed that the requested
accuracy has been achieved.
ier.gt.0 abnormal termination of the routine
the estimates for integral and error are
less reliable. it is assumed that the
requested accuracy has not been achieved.
error messages
= 1 maximum number of subdivisions allowed
has been achieved. one can allow more subdivisions by increasing the value of limit
(and taking the according dimension
adjustments into account). however, if

19.3. ROUTINE HEADERS – FORTRAN FILES
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

= 2

= 3

= 4

= 5

= 6

this yields no improvement it is advised
to analyze the integrand in order to
determine the integration difficulties. if
the position of a local difficulty can be
determined (e.g. singularity,
discontinuity within the interval) one
will probably gain from splitting up the
interval at this point and calling the
integrator on the subranges. if possible,
an appropriate special-purpose integrator
should be used, which is designed for
handling the type of difficulty involved.
the occurrence of roundoff error is detected, which prevents the requested
tolerance from being achieved.
the error may be under-estimated.
extremely bad integrand behaviour
occurs at some points of the integration
interval.
the algorithm does not converge.
roundoff error is detected in the
extrapolation table.
it is presumed that the requested
tolerance cannot be achieved, and that the
returned result is the best which can be
obtained.
the integral is probably divergent, or
slowly convergent. it must be noted that
divergence can occur with any other value
of ier.
the input is invalid, because
epsabs.le.0 and
epsrel.lt.max(50*rel.mach.acc.,0.5d-28).
result, abserr, neval, last, rlist(1),
iord(1) and elist(1) are set to zero.
alist(1) and blist(1) are set to a and b
respectively.

alist

- real*8
vector of dimension at least limit, the first
last elements of which are the left end points
of the subintervals in the partition of the
given integration range (a,b)

blist

- real*8
vector of dimension at least limit, the first
last elements of which are the right end points
of the subintervals in the partition of the given
integration range (a,b)

rlist

- real*8
vector of dimension at least limit, the first

221

222CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
c
last elements of which are the integral
c
approximations on the subintervals
c
c
elist - real*8
c
vector of dimension at least limit, the first
c
last elements of which are the moduli of the
c
absolute error estimates on the subintervals
c
c
iord
- integer
c
vector of dimension at least limit, the first k
c
elements of which are pointers to the
c
error estimates over the subintervals,
c
such that elist(iord(1)), ..., elist(iord(k))
c
form a decreasing sequence, with k = last
c
if last.le.(limit/2+2), and k = limit+1-last
c
otherwise
c
c
last
- integer
c
number of subintervals actually produced in the
c
subdivision process
c***references (none)
c***routines called d1mach,dqelg,dqk21,dqpsrt
c***end prologue dqagse
c

dsntdqagseb.f
*
*
*
*
*

======================================================================
nist guide to available math software.
fullsource for module dqagse from package cmlib.
retrieved from camsun on wed oct 8 08:26:30 1997.
======================================================================
subroutine dsntdqagseb(f,foveru,
&
a,b,epsabs,epsrel,limit,result,abserr,neval,
1
ier,alist,blist,rlist,elist,iord,last)
c***begin prologue dqagse
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a1
c***keywords (end point) singularities,automatic integrator,
c
extrapolation,general-purpose,globally adaptive
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose the routine calculates an approximation result to a given
c
definite integral i = integral of f over (a,b),
c
hopefully satisfying following claim for accuracy
c
abs(i-result).le.max(epsabs,epsrel*abs(i)).
c***description
c
c
computation of a definite integral

19.3. ROUTINE HEADERS – FORTRAN FILES
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

standard fortran subroutine
real*8 version
parameters
on entry
f
- real*8
function subprogram defining the integrand
function f(x). the actual name for f needs to be
declared e x t e r n a l in the driver program.
a

- real*8
lower limit of integration

b

- real*8
upper limit of integration

epsabs - real*8
absolute accuracy requested
epsrel - real*8
relative accuracy requested
if epsabs.le.0
and epsrel.lt.max(50*rel.mach.acc.,0.5d-28),
the routine will end with ier = 6.
limit

- integer
gives an upperbound on the number of subintervals
in the partition of (a,b)

on return
result - real*8
approximation to the integral
abserr - real*8
estimate of the modulus of the absolute error,
which should equal or exceed abs(i-result)
neval

ier

- integer
number of integrand evaluations

- integer
ier = 0 normal and reliable termination of the
routine. it is assumed that the requested
accuracy has been achieved.
ier.gt.0 abnormal termination of the routine
the estimates for integral and error are
less reliable. it is assumed that the
requested accuracy has not been achieved.
error messages
= 1 maximum number of subdivisions allowed
has been achieved. one can allow more subdivisions by increasing the value of limit
(and taking the according dimension

223

224CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

= 2

= 3

= 4

= 5

= 6

adjustments into account). however, if
this yields no improvement it is advised
to analyze the integrand in order to
determine the integration difficulties. if
the position of a local difficulty can be
determined (e.g. singularity,
discontinuity within the interval) one
will probably gain from splitting up the
interval at this point and calling the
integrator on the subranges. if possible,
an appropriate special-purpose integrator
should be used, which is designed for
handling the type of difficulty involved.
the occurrence of roundoff error is detected, which prevents the requested
tolerance from being achieved.
the error may be under-estimated.
extremely bad integrand behaviour
occurs at some points of the integration
interval.
the algorithm does not converge.
roundoff error is detected in the
extrapolation table.
it is presumed that the requested
tolerance cannot be achieved, and that the
returned result is the best which can be
obtained.
the integral is probably divergent, or
slowly convergent. it must be noted that
divergence can occur with any other value
of ier.
the input is invalid, because
epsabs.le.0 and
epsrel.lt.max(50*rel.mach.acc.,0.5d-28).
result, abserr, neval, last, rlist(1),
iord(1) and elist(1) are set to zero.
alist(1) and blist(1) are set to a and b
respectively.

alist

- real*8
vector of dimension at least limit, the first
last elements of which are the left end points
of the subintervals in the partition of the
given integration range (a,b)

blist

- real*8
vector of dimension at least limit, the first
last elements of which are the right end points
of the subintervals in the partition of the given
integration range (a,b)

rlist

- real*8

19.3. ROUTINE HEADERS – FORTRAN FILES
c
vector of dimension at least limit, the first
c
last elements of which are the integral
c
approximations on the subintervals
c
c
elist - real*8
c
vector of dimension at least limit, the first
c
last elements of which are the moduli of the
c
absolute error estimates on the subintervals
c
c
iord
- integer
c
vector of dimension at least limit, the first k
c
elements of which are pointers to the
c
error estimates over the subintervals,
c
such that elist(iord(1)), ..., elist(iord(k))
c
form a decreasing sequence, with k = last
c
if last.le.(limit/2+2), and k = limit+1-last
c
otherwise
c
c
last
- integer
c
number of subintervals actually produced in the
c
subdivision process
c***references (none)
c***routines called d1mach,dqelg,dqk21,dqpsrt
c***end prologue dqagse
c

dsntdqk21.f
subroutine dsntdqk21(f,foveru,a,b,result,abserr,resabs,resasc)
c***begin prologue dqk21
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a2
c***keywords 21-point gauss-kronrod rules
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose to compute i = integral of f over (a,b), with error
c
estimate
c
j = integral of abs(f) over (a,b)
c***description
c
c
integration rules
c
standard fortran subroutine
c
real*8 version
c
c
parameters
c
on entry
c
f
- real*8
c
function subprogram defining the integrand
c
function f(x). the actual name for f needs to be

225

226CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
c
declared e x t e r n a l in the driver program.
c
c
a
- real*8
c
lower limit of integration
c
c
b
- real*8
c
upper limit of integration
c
c
on return
c
result - real*8
c
approximation to the integral i
c
result is computed by applying the 21-point
c
kronrod rule (resk) obtained by optimal addition
c
of abscissae to the 10-point gauss rule (resg).
c
c
abserr - real*8
c
estimate of the modulus of the absolute error,
c
which should not exceed abs(i-result)
c
c
resabs - real*8
c
approximation to the integral j
c
c
resasc - real*8
c
approximation to the integral of abs(f-i/(b-a))
c
over (a,b)
c***references (none)
c***routines called d1mach
c***end prologue dqk21
c

dsntdqk21b.f
subroutine dsntdqk21b(f,foveru,a,b,result,abserr,resabs,resasc)
c***begin prologue dqk21
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a2
c***keywords 21-point gauss-kronrod rules
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose to compute i = integral of f over (a,b), with error
c
estimate
c
j = integral of abs(f) over (a,b)
c***description
c
c
integration rules
c
standard fortran subroutine
c
real*8 version
c
c
parameters

19.3. ROUTINE HEADERS – FORTRAN FILES
c
on entry
c
f
- real*8
c
function subprogram defining the integrand
c
function f(x). the actual name for f needs to be
c
declared e x t e r n a l in the driver program.
c
c
a
- real*8
c
lower limit of integration
c
c
b
- real*8
c
upper limit of integration
c
c
on return
c
result - real*8
c
approximation to the integral i
c
result is computed by applying the 21-point
c
kronrod rule (resk) obtained by optimal addition
c
of abscissae to the 10-point gauss rule (resg).
c
c
abserr - real*8
c
estimate of the modulus of the absolute error,
c
which should not exceed abs(i-result)
c
c
resabs - real*8
c
approximation to the integral j
c
c
resasc - real*8
c
approximation to the integral of abs(f-i/(b-a))
c
over (a,b)
c***references (none)
c***routines called d1mach
c***end prologue dqk21
c

dsntearthdens.f
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

program test
implicit none
integer i
real*8 radius,dsntearthdens,dsntearthmassint,dsntearthmass,
& dsntearthpotint,dsntearthpot,tmp,dsntearthvesc,
& dsntearthdenscomp
real*8 depth(42)
data depth/0.0d0,3.0d0,15.0d0,24.0d0,80.0d0,
& 219.99d0,220.0d0,399.99d0,400.0d0,500.0d0,
& 600.0d0,669.99d0,670.0d0,770.0d0,1000.0d0,
& 1250.0d0,1500.0d0,1750.0d0,2000.0d0,2250.0d0,
& 2500.0d0,2750.0d0,2899.99d0,2900.0d0,3000.0d0,
& 3250.0d0,3500.0d0,3750.0d0,4000.0d0,4250.0d0,
& 4500.0d0,4750.0d0,5000.0d0,5149.99d0,5150.0d0,
& 5250.0d0,5500.0d0,5750.0d0,6000.0d0,6250.0d0,
& 6371.0d0,6379.0d0/
! in km

227

228CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
c
cc
cc
cc
cc
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

do i=42,1,-1
radius=max((6378.140-depth(i))*1.0d3,0.0d0)
write(*,*) radius,dsntearthpotint(radius)
enddo
do i=0,1100
radius=dble(i)/dble(1000.0d0)*6378.14d0*1.0d3
write(*,’(10(x,e12.6))’) radius,dsntearthdens(radius),
&
dsntearthmassint(radius)/1.0d24,
&
dsntearthmass(radius)/1.0d24,
&
dsntearthpotint(radius),dsntearthpot(radius),
&
dsntearthvesc(radius)

&
&
&
&

write(*,’(10(x,e12.6))’) radius,
dsntearthdenscomp(radius,16),
dsntearthdenscomp(radius,24),
dsntearthdenscomp(radius,28),
dsntearthdenscomp(radius,56)
enddo
end

***********************************************************************
*** dsntearthdens gives the density in the earth as a function of radius
*** the radius should be given in m and the density is returned in
*** g/cm^3
*** author: joakim edsjo
*** date: march 19, 1999
***********************************************************************
real*8 function dsntearthdens(r)

dsntearthdenscomp.f

***********************************************************************
*** dsntearthdenscomp gives the number density of nucleons of mass
*** number a per cm^3
*** input: radius - in meters
***
mass number - 16 for o
***
24 for mg
***
28 for si
***
56 for fe JE UPDATE!
*** the radius should be given in m and the density is returned in
*** g/cm^3
*** author: joakim edsjo
*** date: april 6, 1999
*** Updated with new values by J. Edsjo, 2003-11-21

19.3. ROUTINE HEADERS – FORTRAN FILES
***********************************************************************
real*8 function dsntearthdenscomp(r,a)

dsntearthmass.f

**********************************************************************
*** dsntearthmass gives the mass of the earth in units of kg within
*** a sphere with of radius r meters.
*** author: joakim edsjo (edsjo@physto.se)
*** date: april 1, 1999
**********************************************************************
real*8 function dsntearthmass(r)

dsntearthmassint.f
**********************************************************************
*** dsntearthmassint gives the mass of the earth in units of kg within
*** a sphere with of radius r meters.
*** in this routine, the actual integration is performed. for speed,
*** use dsntearthmass instead which uses a tabulation of this result.
*** author: joakim edsjo (edsjo@physto.se)
*** date: april 1, 1999
**********************************************************************
real*8 function dsntearthmassint(r)

dsntearthne.f
***********************************************************************
*** dsntearthne gives the number density of electrons as a function
*** of the Earth’s radius.
*** Input: Earth radius [m]
*** Output: n_e [cm^-3]
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2006-04-21
***********************************************************************
real*8 function dsntearthne(r)

dsntearthpot.f

**********************************************************************
*** dsntearthpot gives the gravitational potential inside and outside
*** of the earth as a function of the radius r (in meters).

229

230CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
*** input: radius in meters
*** output units: s^-1
*** author: joakim edsjo (edsjo@physto.se)
*** date: april 1, 1999
**********************************************************************
real*8 function dsntearthpot(r)

dsntearthpotint.f
**********************************************************************
*** dsntearthpotint gives the gravitational potential inside and outside
*** of the earth as a function of the radius r (in meters).
*** in this routine, the actual integration is performed. for speed,
*** use dsntearthpot instead which uses a tabulation of this result.
*** author: joakim edsjo (edsjo@physto.se)
*** date: april 1, 1999
**********************************************************************
real*8 function dsntearthpotint(r)

dsntearthvesc.f
**********************************************************************
*** dsntearthvesc gives the escape velocity in km/s as a function of
*** the radius r (in meters) from the earth’s core.
*** author: joakim edsjo (edsjo@physto.se)
*** input: radius in m
*** output escape velocity in km/s
*** date: april 1, 1999
**********************************************************************
real*8 function dsntearthvesc(r)

dsntedfunc.f
*************************
real*8 function dsntedfunc(r)

dsntepfunc.f
*************************
real*8 function dsntepfunc(r)

dsntfoveru.f
***********************************************************************
*** input: velocity relative to Sun [ km s^-1 ]
*** output: f(u) / u [ cm^-3 (cm/s)^(-2) ]
*** Date: 2004-01-28

19.3. ROUTINE HEADERS – FORTRAN FILES
***********************************************************************
real*8 function dsntfoveru(u)

dsntfoveruearth.f
***********************************************************************
*** input: velocity relative to Earth [ km s^-1 ]
*** output: f(u) / u [ cm^-3 (cm/s)^(-2) ]
*** Date: 2004-01-28
***********************************************************************
real*8 function dsntfoveruearth(u)

dsntismbkg.f
***********************************************************************
*** dsntismbkg calculats the differential background of muons cosmic
*** ray interactions with the interstellar medium.
*** the muon neutrino fluxes are from
*** g. ingelman and m. thunman, hep-ph/9604286.
***
input:
***
emu - muon energy in gev
***
fltype = 1 - flux of muons
***
2 - contained event rate
***
rdelta = column density in units of nucleons / cm^2 kpc/cm
***
output:
***
muon flux in units of gev^-1 km^-2(3) yr^-1 sr^-1
*** partly based on routines by l. bergstrom.
*** author: j. edsjo (edsjo@physto.se)
*** date: 1998-09-20
***********************************************************************
real*8 function dsntismbkg(emu,flt,rdelta)

dsntismrd.f
***********************************************************************
*** function dsntismrd gives the column density of interstellar matter
*** along the line of sight. the model is from ingelman & thunman with
*** rho=rho_0 exp(z/z_0) with rho_0=1.0 nucleon/cm^3 and z_0=0.26 kpc
*** input: b
= galactic latitude (degrees)
***
psi = angle (in the plane) from the galactic centre (degrees)
*** output: column density in units of nucleons / cm^2 kpc/cm.
*** author: joakim edsjo (edsjo@physto.se)
*** date: 1998-09-20
**********************************************************************
real*8 function dsntismrd(b,psi)

dsntlitlf e.f
real*8 function dsntlitlf_e(mx,vbar)

231

232CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
c_______________________________________________________________________
c
c
dsntlitlf_e is used by capearth to calculate the capture rate
c
in the earth.
c
mx is the neutralino mass in gev
c
written by l. bergstrom 1995-12-12
c
c=======================================================================

dsntlitlf s.f
real*8 function dsntlitlf_s(mx,vbar)
c---------------------------------------------------------------------c
dsntlitlf_s used by capsun
c
mx: neutralino mass
c
lars bergstrom 1995-12-12
c----------------------------------------------------------------------

dsntmoderf.f
c
c
c
c
c
c
c

real*8 function dsntmoderf(x)
=================================================================
error function
modified by l. bergstrom 98-09-15
modified by p. gondolo 2000-07-19
see test output below
used for damour-krauss calculations
=================================================================

dsntmuonyield.f
*****************************************************************************
*** function dsntmuonyield gives the total yield of muons above threshold for
*** a given neutralino mass or the differential muon yield for a given
*** energy and a given angle. put yieldk=3 for integrated yield above
*** given thresholds and put yieldk=103 for differntial yield.
*** the annihilation branching ratios and
*** higgs parameters are extracted from susy.h and by calling dsandwdcosnn
*** wh=’su’ corresponds to annihilation in the sun and wh=’ea’ corresponds
*** to annihilation in the earth. if istat=1 upon return,
*** some inaccesible parts the differential muon spectra has been wanted,
*** and the returned yield should then be treated as a lower bound.
*** if istat=2 energetically forbidden annihilation channels have been
*** wanted. if istat=3 both of these things has happened.
*** units: 1.0e-30 m**-2 (annihilation)**-1 for integrated yield.
***
1.0e-30 m**-2 gev**-1 (degree)^-1 (annihilation)**-1 for
***
differential yield.
*** author: joakim edsjo edsjo@physto.se
*** date: 96-03-19
*** modified: 96-09-03 to include new index order
*** modified: 97-12-03 to include new muyield routines (v3.21)

19.3. ROUTINE HEADERS – FORTRAN FILES
*****************************************************************************
real*8 function dsntmuonyield(emuth0,thmax,wh,yieldk,istat)

dsntnuism.f
c...
c...

real*8 function dsntnuism(enu)
with enu in gev, the flux is returned in units o
gev^-1 cm^-2 s^-1 sr^-1

dsntnusun.f
real*8 function dsntnusun(enu)
c... with enu in gev, the flux is returned in units of gev^-1 cm^-2 s^-1

dsntrates.f
subroutine dsntrates(emuth0,thmax0,rtype,rateea,
& ratesu,istat)
c_______________________________________________________________________
c
c
n e u t r a l i n o
b r a n c h i n g
r a t i o s
c
a n d c a p t u r e r a t e i n t h e
s u n
c
m u o n
f l u x c a l c u l a t e d
c
november, 1995
c
uses routines by p. gondolo and j. edsjo
c
modified by l. bergstrom and j. edsjo
c
capture rate routines are written by l. bergstrom
c
input: emuth0 - muon energy threshold in gev
c
thmax0 - muon angel cut in degrees
c
rtype
- 2 = contained events km^-3 yr^-1
c
3 = through-going events km^-2 yr^-1
c
hidden input: ntcalcmet - 1 use jkg approximations
c
2 use jkg for sun, full gould for earth
c
3 use jkg for sun, full gould+dk for earth
c
4 use full numerical calculations for Sun, Earth
c
output: rateea - events from earth ann. per km^2(3) per yr
c
ratesu - events from sun ann. per km^2(3) per yr
c
slightly modified by j. edsjo.
c
modified by j. edsjo 97-05-15 to match new inv. rate convention
c
modified by j. edsjo 97-12-03 to match muflux3.21 routines.
c
modified by p. gondolo 98-03-04 to detach dsntannrate from susy
c
routines.
c
modified by j. edsjo 98-09-07 to fix istat bug.
c
modified by j. edsjo 98-09-23 to use damour-krauss distributions
c
and full earth formulas.
c
modified by j. edsjo 99-03-17 to include better damour-krauss
c
velocity distributions and numerical capture rate integrations
c
for these non-gaussian distributions
c
c=======================================================================

233

234CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH

dsntse.f
real*8 function dsntse(x,vbar)
c---------------------------------------------------------------------c
dsntse
c
x: mx/m(i)
c
vbar: three-dimensional velocity dispersion of WIMPs in the halo
c
lars bergstrom 1995-12-12
c----------------------------------------------------------------------

dsntsefull.f
real*8 function dsntsefull(mx,m_a,v_star,v_bar,phi)
c-------------------------------------------------------------------------c the gould function for capture in the earth, as given by the expression
c (a10) in gould ap.j. 321 (1987) 571
c mx: neutralino mass in gev
c m_a: nuclear mass
c v_star: velocity of earth with respect to wimps
c v_bar: velocity dispersion of wimps
c output in natural units (power of gev)
c l. bergstrom 1998-09-21
c Modified by J. Edsjo, 2003-11-22
c References:
c
dk: Damour and Krauss, Phys. Rev. D59 (1999) 063509.
c
jkg: Jungman, Kamionkowski and Griest, Phys. Rep. 267 (1996) 195.
c gould: Gould, ApJ 321 (1987) 571.
c--------------------------------------------------------------------------

dsntset.f
subroutine dsntset(c)
c...set parameters for neutrino telescope routines
c... c - character string specifying choice to be made
c...author: joakim edsjo, 2000-08-16

dsntspfunc.f
*************************
real*8 function dsntspfunc(r)

dsntss.f
real*8 function dsntss(x,vbar)
c---------------------------------------------------------------------c
dsntss used by capsun and litlf_s
c
x=mx/m(i)
c
lars bergstrom 1995-12-12
c----------------------------------------------------------------------

19.3. ROUTINE HEADERS – FORTRAN FILES

dsntsunbkg.f
***********************************************************************
*** dsntsunbkg calculats the differential background of muons cosmic
*** ray interactions in the sun’s corona. the muon neutrino fluxes are from
*** g. ingelman and m. thunman, prd 54 (1996) 4385.
***
input:
***
emu - muon energy in gev
***
fltype = 1 - flux of muons
***
2 - contained event rate
***
output:
***
muon flux in units of gev^-1 km^-2(3) yr^-1
*** partly based on routines by l. bergstrom.
*** author: j. edsjo (edsjo@physto.se)
*** date: 1998-06-03
***********************************************************************
real*8 function dsntsunbkg(emu,flt)

dsntsuncdens.f
***********************************************************************
*** This routine uses a derived column density from the BP2000 model
*** The data in sdcens() is calculated by dsntsunread.f.
***********************************************************************
***********************************************************************
*** dsntsuncdens gives the column density in the Sun from the
*** centre out the tha given radius r (in meters).
*** The radius should be given in m and the column density is returned in
*** g/cm^2
*** if type = ’N’, the total column density (up to that r) is calculated
***
= ’p’, the column density on protons is calculated
***
= ’n’, the column density on neutrons is calculated
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2005-11-25
***********************************************************************
real*8 function dsntsuncdens(r,type)

dsntsuncdensint.f
**********************************************************************
*** dsntsuncdensint gives the column density in the Sun from the
*** centre out the tha given radius r (in meters)
*** if type = ’N’, the total column density (up to that r) is calculated
***
= ’p’, the column density on protons is calculated
***
= ’n’, the column density on neutrons is calculated
*** in this routine, the actual integration is performed. for speed,
*** use dsntsuncdens instead which uses a tabulation of this result.
*** Author: joakim edsjo (edsjo@physto.se)
*** Date: November 24, 2005

235

236CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
**********************************************************************
real*8 function dsntsuncdensint(r,type)

dsntsuncdfunc.f
***********************************************************************
*** dsntsuncdfunc returns the density of protons, neutrons or the total
*** density depending on the common block variable cdt. If
***
cdt=’N’: the total density is returned
***
cdt=’p’: the density in protons is returned
***
cdt=’n’: the density in neutrons is returned
*** the radius should be given in m and the density is returned in
*** g/cm^3.
*** This routine is used by dsntsuncdensint to calculate the column
*** density in the Sun.
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2005-11-24
***********************************************************************
real*8 function dsntsuncdfunc(r)

dsntsundens.f
***********************************************************************
*** dsntsundens gives the density in the Sun as a function of radius
*** the radius should be given in m and the density is returned in
*** g/cm^3
*** Density and element mass fractions up to O16 are from the standard
*** solar model BP2000 of Bahcall, Pinsonneault and Basu,
*** ApJ 555 (2001) 990.
*** The mass fractions for heavier elements are from N. Grevesse and
*** A.J. Sauval, Space Science Reviews 85 (1998) 161 normalized such that
*** their total mass fractions matches that of the heavier elements in
*** the BP2000 model.
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2003-11-25
***********************************************************************
real*8 function dsntsundens(r)

dsntsundenscomp.f
***********************************************************************
*** dsntsundenscomp gives the number density of nucleons of atomic
*** number Z per cm^3
*** input: radius - in meters
***
itype: internal element number (def. in dsntsunread.f)
*** Author: joakim edsjo
*** Date: 2003-11-26
*** Modified: 2006-03-21 (atomic mass unit fix (was off by 6%)) JE

19.3. ROUTINE HEADERS – FORTRAN FILES
***********************************************************************
real*8 function dsntsundenscomp(r,itype)

dsntsunmass.f
***********************************************************************
*** dsntsunmass gives the mass of the Sun as a function of radius
*** the radius should be given in m and the mass is given in kg
*** up to the specified radius.
*** Density and element mass fractions up to O16 are from the standard
*** solar model BP2000 of Bahcall, Pinsonneault and Basu,
*** ApJ 555 (2001) 990.
*** The mass fractions for heavier elements are from N. Grevesse and
*** A.J. Sauval, Space Science Reviews 85 (1998) 161 normalized such that
*** their total mass fractions matches that of the heavier elements in
*** the BP2000 model.
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2003-11-25
***********************************************************************
real*8 function dsntsunmass(r)

dsntsunmfrac.f
***********************************************************************
*** dsntsunmfrac gives the mass fraction of element i (see dsntsunread.f
*** for definition of i) as a function of the solar radius r.
*** the radius should be given in m and returned is the mass fraction.
***
*** Element mass fractions up to O16 are from the standard
*** solar model BP2000 of Bahcall, Pinsonneault and Basu,
*** ApJ 555 (2001) 990.
*** The mass fractions for heavier elements are from N. Grevesse and
*** A.J. Sauval, Space Science Reviews 85 (1998) 161 normalized such that
*** their total mass fractions matches that of the heavier elements in
*** the BP2000 model.
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2003-11-26
***********************************************************************
real*8 function dsntsunmfrac(r,itype)

dsntsunne.f
***********************************************************************
*** dsntsunne gives the number density of electrons as a function
*** of the Sun’s radius.
*** Input: solar radius [m]
*** Output: n_e [cm^-3]
*** See dsntsunread for information about which solar model is used.

237

238CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2006-03-27
***********************************************************************
real*8 function dsntsunne(r)

dsntsunne2x.f
***********************************************************************
*** dsntsunne2x takes an input number density of electrons and
*** converts this to a fractional solar radius, x.
*** Input: n_e [cm^-3]
*** Output: x = r/r_sun [0,1]
*** See dsntsunread for information about which solar model is used.
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2006-03-27
***********************************************************************
real*8 function dsntsunne2x(ne)

dsntsunpot.f
***********************************************************************
*** This routine uses a derived potential from the BP2000 model
*** The data in sdphi() is calculated by dsntsunread.f.
***********************************************************************
***********************************************************************
*** dsntsunpot gives the potential in the Sun as a function of radius
*** the radius should be given in m and the potential is returned in
*** m^2 s^-2
*** Density and element mass fractions up to O16 are from the standard
*** solar model BP2000 of Bahcall, Pinsonneault and Basu,
*** ApJ 555 (2001) 990.
*** The mass fractions for heavier elements are from N. Grevesse and
*** A.J. Sauval, Space Science Reviews 85 (1998) 161 normalized such that
*** their total mass fractions matches that of the heavier elements in
*** the BP2000 model.
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2003-11-26
***********************************************************************
real*8 function dsntsunpot(r)

dsntsunpotint.f
**********************************************************************
*** dsntsunpotint gives the gravitational potential inside and outside
*** of the sun as a function of the radius r (in meters).
*** in this routine, the actual integration is performed. for speed,
*** use dsntsunpot instead which uses a tabulation of this result.

19.3. ROUTINE HEADERS – FORTRAN FILES
*** author: joakim edsjo (edsjo@physto.se)
*** date: april 1, 1999
**********************************************************************
real*8 function dsntsunpotint(r)

dsntsunread.f
subroutine dsntsunread
***********************************************************************
*** Reads in data about the solar model used and stores it in a
*** common block (as described in dssun.h).
*** Author: Joakim Edsjo
*** Date: 2003-11-25
*** Modified: 2004-01-28 (calculates potential instead of reading file)
***********************************************************************

dsntsunvesc.f
**********************************************************************
*** dsntsunvesc gives the escape velocity in km/s as a function of
*** the radius r (in meters) from the sun’s core.
*** author: joakim edsjo (edsjo@physto.se)
*** input: radius in m
*** output escape velocity in km/s
*** date: 2003-11-26
**********************************************************************
real*8 function dsntsunvesc(r)

dsntsunx2z.f
***********************************************************************
*** The Sun routines uses different variables to describe position
*** in the Sun:
***
r: radius (in meters)
[0,r_sun]
***
x: radius in units of r_sun [0,1]
***
z: fraction of total column density traversed [0,1]
***
the column density is either of p or n or the total
***
and the totals are stored in cd_sun
***
*** This routine converts from x to z (in p, n or total)
***
*** Inputs
***
x = radius in units of r_sun [0,1]
***
type = ’N’, the total column density (up to that r) is calculated
***
= ’p’, the column density on protons is calculated
***
= ’n’, the column density on neutrons is calculated
***

239

240CHAPTER 19. NT: NEUTRINO AND MUON RATES FROM ANNIHILATION IN THE SUN/EARTH
*** Outputs
***
z = fraction of total column density (for chosen type) that
***
has been traversed from the centre of the Sun out to x.
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2005-11-25
***********************************************************************
real*8 function dsntsunx2z(x,type)

dsntsunz2x.f
***********************************************************************
*** The Sun routines uses different variables to describe position
*** in the Sun:
***
r: radius (in meters)
[0,r_sun]
***
x: radius in units of r_sun [0,1]
***
z: fraction of total column density traversed [0,1]
***
the column density is either of p or n or the total
***
and the totals are stored in cd_sun
***
*** This routine converts from z (in p, n or total) to x
***
*** Inputs
***
z = = fraction of total column density (for chosen type) that
***
has been traversed from the centre of the Sun
***
type = ’N’, the total column density (up to that r) is calculated
***
= ’p’, the column density on protons is calculated
***
= ’n’, the column density on neutrons is calculated
***
*** Outputs
***
x = radius in units of r_sun [0,1] that corresponds to the
***
supplied z value
***
*** Author: Joakim Edsjo, edsjo@physto.se
*** Date: 2005-11-25
***********************************************************************
real*8 function dsntsunz2x(z,type)

Chapter 20

src/pb:
Antiproton fluxes from the halo
20.1

Antiprotons – theory

Neutralinos can annihilate each other in the halo producing leptons, quarks, gluons, gauge bosons
and Higgs bosons. The quarks, gauge bosons and Higgs bosons will decay and/or form jets that will
give rise to antiprotons (and antineutrons which decay shortly to antiprotons). Since antiprotons are
not very abundant in the Universe, this could in principle be a good signature for supersymmetric
dark matter. However, the cosmic rays (mainly protons) may produce secondary antiprotons in
collisions with the interstellar medium, giving an important background. It was hoped that the
difference in kinematics between such secondary antiprotons and the primary ones generated in
neutralino annihilations would give an unambiguous signature at low antiproton energy. However,
recent calculations indicate that other effects spoil this picture to a large degree [108, 109]. It still
remains true, however, that present measurements and upper limits to the antiproton flux may be
used as a constraint to rule out some MSSM configurations with large rates.
Unfortunately, there is a larger uncertainty in limits thus obtained than, for example, for the
signal from neutrinos from the Earth and Sun. This is due to the severe astrophysical uncertainties
about the phase space structure of the dark matter halo, in particular the density profile towards
the Galactic center. This uncertainty will plague all indirect detection signals from the halo: antiprotons, positrons and gamma-rays. Therefore, the limits that can be put generally involve a
combination of MSSM and halo model parameters, and are therefore of limited use constraining
the MSSM alone.
At tree level the relevant final states for p̄ production are q q̄, ℓℓ̄, W + W − , Z 0 Z 0 , W + H − , ZH10 ,
ZH20 , H10 H30 and H20 H30 . We have included in DarkSUSY all the heavier quarks (c, b and t), gauge
bosons and Higgs boson final states. In addition, we have included the Zγ ([110]) and the 2 gluon
([111]; [112]) final states which occur at one loop-level.
The hadronization and/or decay of all final states (including) gluons is simulated with Pythia
as described in section ??. A word of caution should be raised, however, that antiproton data is
not very abundant, in particular not at the lowest antiproton lab energies which tend to dominate
the signal. Therefore an uncertainty in normalization, probably of the order of a factor 2, cannot
be excluded at least in the low energy region.
241

242

20.1.1

CHAPTER 20. PB: ANTIPROTON FLUXES FROM THE HALO

The Antiproton Source Function

The source function Qχp̄ gives the number of antiprotons per unit time, energy and volume element
produced in annihilation of neutralinos locally in space. It is given by
2

ρχ (~x ) X dN f f
χ
Qp̄ (T, ~x ) = (σann v)
B
(20.1)
mχ
dT
f

where T is the p̄ kinetic energy. For a given annihilation channel f , B f and dN f /dT are, respectively,
the branching ratio and the fragmentation function, and (σann v) is the annihilation rate at v = 0
(which is very good approximation since the velocity of the neutralinos in the halo is so low). As
dark matter neutralinos annihilate in pairs, the source function is proportional to the square of the
neutralino number density nχ = ρχ /mχ . Assuming that most of the dark matter in the Galaxy is
made up of neutralinos and that these are smoothly distributed in the halo, one can directly relate
the neutralino number density to the dark matter density profile in the galactic halo ρ. Although
what is implemented is a smooth distribution of dark matter particles in the halo, an extension to
a clumpy distribution is potentially interesting as well ([114]; [115]).

20.1.2

Propagation model

In the absence of a well established theory to describe the interactions of charged particles with
the magnetic field of the Galaxy and the interstellar medium, the propagation of cosmic rays has
generally been treated by postulating a semiempirical model and fitting the necessary set of unknown
parameters to available data. A common approach is to use a diffusion approximation defined by
a transport equation and an appropriate choice of boundary conditions (see e.g. [116]; [117] and
references therein).
We have chosen to compute the propagation of cosmic rays in the Galaxy by means of a transport
equation of the diffusion type (see [116]; [117]). In the case of a stationary solution, the number
density N of a stable cosmic ray species whose distribution of sources is defined by the function of
energy and space Q(E, ~x), is given by:
∂N (E, ~x)
= 0 = ∇ · (D(R, ~x) ∇N (E, ~x)) − ∇ · (~u(~x) N (E, ~x)) − p(E, ~x) N (E, ~x) + Q(E, ~x) . (20.2)
∂t
On the right hand side of Eq. (20.2) the first term implements the diffusion approximation for
a given diffusion coefficient D, generally assumed to be a function of rigidity R, while the second
term describes a large-scale convective motion of velocity ~u. The third term is added to take into
account losses due to to collisions with the interstellar matter. It is a very good approximation to
include in this term only the interactions with interstellar hydrogen, in this case p is given by:
in
p(E, ~x) = nH (~x) v(E) σcr
p (E)

(20.3)

where nH is the hydrogen number density in the Galaxy, v is the velocity of the cosmic ray particle
in
considered ‘cr’, while σcr
p is the inelastic cross section for cr-proton collisions.
The propagation region is assumed to have a cylindrical symmetry: the Galaxy is split into two
parts, a disk of radius Rh and height 2 · hg , where most of the interstellar gas is confined, and a
halo of height 2 · hh and the same radius. We assume that the diffusion coefficient is isotropic with
possibly two different values in the disk and in the halo, reflecting the fact that in the disk there
may be a larger random component of the magnetic fields. The spatial dependence is then:
D(~x) = D(z) = Dg θ(hg − |z|) + Dh θ(|z| − hg ) .

(20.4)

Regarding the rigidity dependence, we consider the same functional form as in [118] and [119]:
0.6

R
Dl (R) = Dl0 1 +
(20.5)
R0

20.1. ANTIPROTONS – THEORY

243

where l = g, h.
The convective term has been introduced in Eq. (20.2) to describe the effect of particle motion
against the wind of cosmic rays leaving the disk, assuming a galactic wind of velocity
~u(~x) = (0, 0, u(z))

(20.6)

u(z) = sign(z) uh θ(|z| − hg ) .

(20.7)

where
An analytic solution is possible also in the case of a linearly increasing wind ([115]). The distribution
of gas in the Galaxy is for convenience assumed to have the very simple z dependence
H
nH (~x) = nH (z) = nH
g θ(hg − |z|) + nh θ(|z| − hg )

(20.8)

where nh ≪ ng (in practice, nh = 0 is taken) and an average in the radial direction is performed.
As boundary condition, it is usually assumed that cosmic rays can escape freely at the border
of the propagation region, i.e.
N (Rh , z) = N (r, hh ) = N (r, −hh ) = 0

(20.9)

as the density of cosmic rays is assumed to be negligibly small in the intergalactic space.
The cylindrical symmetry and the free escape at the boundaries makes it possible to solve in
DarkSUSY the transport equation expanding the number density distribution N in a Fourier-Bessel
series:

 h
∞ X
∞
i
X
r
N (r, z, θ) =
Jk νsk
· Msk (z) cos(kθ) + M̃sk (z) sin(kθ)
(20.10)
Rh
s=1
k=0

which automatically satisfies the boundary condition at r = Rh , νsk being the s-th zero of Jk (the
Bessel function of the first kind and of order k). In the same way the source function can be
expanded as:
 h

∞ X
∞
i
X
r
· Qks (z) cos(kθ) + Q̃ks (z) sin(kθ)
(20.11)
Q(r, z, θ) =
Jk νsk
Rh
s=1
k=0

where
Qks (z)



ZRh
Zπ
′
1
k r
′ ′
dr r Jk νs
=
dθ′ cos(kθ′ ) Q(r′ , z, θ′ ) .
Rh αk π
Rh 2 Jk+1 2 (νsk )
2

(20.12)

−π

0

The equation relevant for the propagation in the z direction is [108]:
∂
∂
D(z) Msk (z) − D(z)
∂z
∂z



νsk
Rh

2

Msk (z) −

For −hg ≤ z ≤ hg the solution is given by:
Msk (z)

=

Msk (0) cosh(λks
g z)


∂
u(z) Msk (z) − p(z)Msk (z) + Qks (z) = 0 . (20.13)
∂z

1
−
Dg λks
g

Zz
0

 k ′
′
dz ′ sinh λks
g (z − z ) Qs (z )

(20.14)

where
Msk (0)

=

)
(

Dh IGS 
IH
1
ks
ks
+
γh + λh coth λh (hh − hg ) + IGC
cosh(λks
Dg λks
sinh λks
g hg )
g
h (hh − hg )

−1

ks
ks
ks
× Dg λks
(20.15)
g tanh λg hg + Dh γh + Dh λh coth λh (hh − hg )

244

CHAPTER 20. PB: ANTIPROTON FLUXES FROM THE HALO

with
λks
g

=

s

νsk
Rh

2

in
nH
g vσcr p
,
+
Dg

λks
h

=

s


νsk
Rh

2

+

in
nH
h vσcr p
+ γh 2 ,
Dh

γh =

uh
2 Dh

(20.16)

and
IH

=

Zhh

hg

IGS

=

Zhg
0

IGC

=

Zhg
0


Qks (z ′ ) + Qks (−z ′ )
′
′
dz ′ sinh λks
h (hh − z ) exp (γh (hg − z )) ·
2
 Qks (z ′ ) + Qks (−z ′ )
′
dz ′ sinh λks
g (hg − z ) ·
2
 Qks (z ′ ) + Qks (−z ′ )
′
dz ′ cosh λks
.
g (hg − z ) ·
2

(20.17)

In DarkSUSY we have also as an option included the propagation models by Chardonnay et al.
[166] and Bottino et al. [167].

20.1.3

Solar Modulation

A complication when comparing predictions of a theoretical model with data on cosmic rays taken
at Earth is given by the solar modulation effect. During their propagation from the interstellar
medium through the solar system, charged particles are affected by the solar wind and tend to lose
energy. The net result of the modulation is a shift in energy between the interstellar spectrum and
the spectrum at the Earth and a substantial depletion of particles with non-relativistic energies.
The simplest way to describe the phenomenon is the analytical force-field approximation by
Gleeson & Axford [160] for a spherically symmetric model. The prescription of this effective treatment is that, given an interstellar flux at the heliospheric boundary, dΦb /dTb , the flux at the Earth
is related to this by
p2 dΦb
dΦ⊕
(T⊕ ) = ⊕
(Tb )
(20.18)
dT⊕
p2b dTb
where the energy at the heliospheric boundary is given by
Eb = E⊕ + |Ze|φF

(20.19)

and p⊗ and pb are the momenta at the Earth and the heliospheric boundary respectively. Here e
is the absolute value of the electron charge and Z the particle charge in units of e (e.g. Z = −1 for
antiprotons).
An alternative approach is to solve numerically the propagation equation of the spherically
symmetric model ([120]): the solar modulation parameter one has to introduce with this method
roughly corresponds to φF as given above. When computing solar modulated antiproton fluxes,
the two treatments seem not to be completely equivalent in the low energy regime. Keeping this in
mind, we have anyway implemented the force field approximation in DarkSUSY avoiding the CPU
time-consuming problem of having to solve a partial differential equation for each supersymmetric
model.

20.2
................

Antiprotons from the halo – routines

20.3. ROUTINE HEADERS – FORTRAN FILES

20.3

Routine headers – fortran files

dspbaddterm.f
**********************************************************************
*** auxiliary function needed in dspbtd15beucl
***
*** diffusion constant in units of 10^27 cm^2 s^-1
*** axec in mb*10^10 cm s^-1
*** lambdag, lambdah in 10^-21 cm^-1
*** addterm in 1/(10^27 cm^2 s^-1 * 10^-21 cm^-1)
***
= 1/10^6 s/cm
**********************************************************************
real*8 function dspbaddterm(k,nusk,Jklocal,Jkplus1squared)

dspbbeupargc.f
**********************************************************************
*** function called in dspbbeuparm
*** it is integrated in the cylindrical coordinate z from 0 to
*** pbhg/pbhh (linear change of variables such that z=1 => z=pbhh
*** (half height of the diffusion box)) - part associated with cosh
*** version valid in case of constant galactic wind in the z direction
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
*** modified: 04-01-22 (pu)
**********************************************************************
real*8 function dspbbeupargc(z)

dspbbeupargs.f
**********************************************************************
*** function called in dspbbeuparm
*** it is integrated in the cylindrical coordinate z from 0 to
*** pbhg/pbhh (linear change of variables such that z=1 => z=pbhh
*** (half height of the diffusion box)) - part associated with sinh
*** version valid in case of constant galactic wind in the z direction
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
*** modified: 04-01-22 (pu)
**********************************************************************
real*8 function dspbbeupargs(z)

dspbbeuparh.f
**********************************************************************
*** function called in dspbbeuparm
*** it is integrated in the cylindrical coordinate z from

245

246

CHAPTER 20. PB: ANTIPROTON FLUXES FROM THE HALO

*** pbhg/pbhh to 1 (linear change of variables such that z=1 => z=pbhh
*** (half height of the diffusion box))
*** version valid in case of constant galactic wind in the z direction
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
*** modified: 04-01-22 (pu)
**********************************************************************
real*8 function dspbbeuparh(z)

dspbbeuparm.f
**********************************************************************
*** function called in dspbtd15beum
*** it is integrated in the cylindrical coordinate r from 0 to 1
*** (linear change of variables such that r=1 corresponds to r=pbrh
*** (radial extent of the diffusion box))
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
*** modified: 04-01-22 (pu)
**********************************************************************
real*8 function dspbbeuparm(r)

dspbcharpar1.f
**********************************************************************
*** function called in dspbtd15char
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
**********************************************************************
real*8 function dspbcharpar1(x)

dspbcharpar2.f
**********************************************************************
*** function called in dspbcharpar1
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
**********************************************************************
real*8 function dspbcharpar2(y)

dspbgalpropdiff.f
**********************************************************************
*** function dspbgalpropdiff calculates the differential flux of

20.3. ROUTINE HEADERS – FORTRAN FILES
*** antiprotons for the energy egev as a result of
*** neutralino annihilation in the halo.
*** units: gev^-1 cm^-2 sec^-1 sr^-1
*** author: edward baltz (eabaltz@alum.mit.edu), joakim edsjo
*** date: 4/28/2006
**********************************************************************
real*8 function dspbgalpropdiff(egev)

dspbgalpropig.f
real*8 function dspbgalpropig(eep)
No header found.

dspbgalpropig2.f
real*8 function dspbgalpropig2(eep)
No header found.

dspbkdiff.f
**********************************************************************
*** diffusion constant in units of 10^27 cm^2 s^-1
*** n=1 value in the halo, n=2 value in the gas disk
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
**********************************************************************
real*8 function dspbkdiff(rig,n)

dspbkdiffm.f
**********************************************************************
*** diffusion constant in units of 10^27 cm^2 s^-1
*** n=1 value in the halo, n=2 value in the gas disk
*** form needed for routine dspbtd15beum
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
**********************************************************************
real*8 function dspbkdiffm(beta,rig,n)

dspbset.f
subroutine dspbset(c)
c...set parameters for antiproton routines
c... c - character string specifying choice to be made
c...author: paolo gondolo 1999-07-14

247

248

CHAPTER 20. PB: ANTIPROTON FLUXES FROM THE HALO

dspbsigmavpbar.f
real*8 function dspbsigmavpbar(en)
c total inelastic cross section pbar + h
c tan and ng, j.phys.g 9 (1983) 227. formula 3.7

dspbtd15.f
real*8 function dspbtd15(tp,howinp)
**********************************************************************
*** function dspbtd15 is the containment time in 10^15 sec
***
input:
***
tp - antiproton kinetic energy in gev
***
how - 1 calculate t_diff only for requested momentum
***
2 tabulate t_diff for first call and use table for
***
subsequent calls
***
3 as 2, but also write the table to disk as
***
pbtd--.dat
***
4 read table from disk on first call, and use that for
***
subsequent calls
***
output:
***
t_diff in units of 10^15 sec
*** calls dspbtd15x for the actual calculation.
*** author: joakim edsjo (edsjo@physto.se)
*** uses piero ullios propagation routines.
*** date: dec 16, 1998
*** modified: 98-07-13 paolo gondolo
**********************************************************************

dspbtd15beu.f
**********************************************************************
*** function called in dspbtd15x
*** it gives the antiproton diffusion time in units of 10^15 sec
*** it assumes the diffusion model in:
***
bergstrom, edsjo & ullio, ajp 526 (1999) 215
*** inputs:
***
tp - antiproton kinetic energy (gev)
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
*** modified: 04-01-22 (pu)
**********************************************************************
real*8 function dspbtd15beu(tp)

dspbtd15beucl.f
**********************************************************************
*** function that gives the antiproton diffusion time per unit volume

20.3. ROUTINE HEADERS – FORTRAN FILES
*** (units of 10^15 sec kpc^-3) for an antiproton point source located
*** at rcl, zcl, thetacl (in the cylidrical framework with the sun
*** located at r=r_0, z=0 theta=0) and some small "angular width"
*** deltathetacl which makes the routine converge much faster
*** rcl, zcl, thetacl and deltathetacl are in the dspbcom.h common
*** blocks and must be before calling this routine. rcl and zcl are in
*** kpc, thetacl and deltathetacl in rad.
*** numerical convergence gets slower for rcl->0 or zcl->0
***
*** it assumes the diffusion model in:
***
bergstrom, edsjo & ullio, ajp 526 (1999) 215
*** inputs:
***
tp - antiproton kinetic energy (gev)
***
*** the conversion from this source function to the local antiproton flux
*** is the same as for dspbtd15beu(tp), except that dspbtd15beucl(tp)
*** must be multiplied by:
***
int dV (rho_cl(\vec{x}_cl)/rho0)**2
***
where the integral is over the volume of the clump,
***
rho_cl(\vec{x}_cl) is the density profile in the clump
***
and the local halo density rho0 is the normalization scale used
***
everywhere
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************
real*8 function dspbtd15beucl(tp)

dspbtd15beuclsp.f
**********************************************************************
*** function which makes a tabulation of dspbtd15beucl as function
*** the distance between source and observer L, and neglecting the
*** weak dependence of dspbtd15beucl over the vertical coordinate for
*** the source zcl
***
*** for every tp dspbtd15beuclsp is tabulated on first call in L, with
*** L between:
***
Lmin=0.9d0*(r_0-pbrcy) and
***
Lmax=1.1d0*dsqrt((r_0+pbrcy)**2+pbzcy**2)
*** and stored in spline tables.
***
*** pbrcy and pbzcy in kpc are passed through a common block in
*** dspbcom.h and should be set before the calling this routine.
***
*** there is no internal check to verify whether between to consecutive
*** calls, with the same tp, pbrcy and pbzcy, or halo parameters, or
*** propagation parameters are changed. If this is done make sure,
*** before calling this function, to reinitialize to zero the integer
*** parameter clspset in the common block:
***

249

250

CHAPTER 20. PB: ANTIPROTON FLUXES FROM THE HALO

***
real*8 tpsetup
***
integer clspset
***
common/clspsetcom/tpsetup,clspset
***
*** input: L in kpc, tp in GeV
*** output in 10^15 s kpc^-3
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************

real*8 function dspbtd15beuclsp(L,tp)

dspbtd15beum.f
**********************************************************************
*** function called in dspbtd15x
*** it gives the antiproton diffusion time in units of 10^15 sec
*** it assumes the diffusion model in:
***
bergstrom, edsjo & ullio, ajp 526 (1999) 215
***
but with the DC-like setup as in moskalenko et al.
***
ApJ 565 (2002) 280
*** inputs:
***
tp - antiproton kinetic energy (gev)
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
**********************************************************************
real*8 function dspbtd15beum(tp)

dspbtd15char.f
**********************************************************************
*** function called in dspbtd15x
*** it gives the antiproton diffusion time in units of 10^15 sec
*** it assumes the diffusion model in:
***
chardonnet et al., phys. lett. b384 (1996) 161
***
bottino et al., phys. rev. d58 (1998) 123503
*** inputs:
***
tp - antiproton kinetic energy (gev)
***
*** author: piero ullio (piero@tapir.caltech.edu)
*** date: 00-07-13
**********************************************************************
real*8 function dspbtd15char(tp)

dspbtd15comp.f
**********************************************************************

20.3. ROUTINE HEADERS – FORTRAN FILES
*** function which computes the pbar diffusion time term corresponding
*** to the axisymmetric diffuse source within a cylinder of radius
*** pbrcy and height 2* pbzcy.
*** This routine assumes also that the Green function of
*** the diffusion equation dspbtd15beuclsp(L,tp) does depend just
*** on kintic energy tp and distance from the observer L, neglecting
*** a weak dependence on the cylindrical coordinate z.
*** For every tp, dspbtd15beuclsp is tabulated on first call in L and
*** stored in spline tables.
*** In this function and in dspbtd15beuclsp, pbrcy and pbzcy in kpc are
*** passed through a common block in dspbcom.h. There is no check
*** in dspbtd15beuclsp on whether, pbrcy and pbzcy which define the
*** interval of tabulation are changed. Check header dspbtd15beuclsp
*** for more details on this and other warnings, and how to get the
*** right implementation is such parameters are changed while running
*** our own code
*** After the tabulation, the following integral is performed:
***
*** 2 int_0^{pbzcy} int_0^{pbrcy} dr r int_0^{2\pi} dphi
***
(dshmaxirho(r,zint)/rho0)^2 * dspbtd15beuclsp(L(z,r,theta),tp)
***
*** The triple integral is splitted into a double integral on r and
*** theta, this result is tabulated in z and then this integral is
*** performed. The tabulation in z has at least 100 points on a
*** regular grid between 0 and pbzcy (this is set by the parameter
*** incompnpoints in the dspbcompint1 function), however points are
*** added as long as the values of the function in two nearest
*** neighbour points differs more than 10% (this is set by the
*** parameter reratio in the dspbcompint1 function)
***
*** input: scale in kpc, tp in GeV
*** output in 10^15 s
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************
real*8 function dspbtd15comp(tp)

dspbtd15point.f
**********************************************************************
*** function which approximates the function dspbtd15comp by
*** estimating that diffusion time term supposing to have a point
*** source located at the galactic center but then weighting it with
*** the emission over a whole cylinder of radius scale and
*** height 2*scale, i.e. rho2int (to be given in kpc^3).
*** The goodness of the approximation should be checked by comparing
***
dspbtd15point(rho2int,tp) with
***
dspbtd15comp(tp) for different value of tp and scale,
*** and depending on the halo profile chosen and level of precision
*** required. The comparison has to be performed but setting

251

252

CHAPTER 20. PB: ANTIPROTON FLUXES FROM THE HALO

*** rho2int=dshmrho2cylint(scale,scale) and each
*** pbrcy and pbzcy pair equal to scalebefore calling dspbtd15comp,
*** possibly resetting the parameter clspset as well, see the header
*** of the function dspbtd15beuclsp
***
*** input: rho2int=dshmrho2cylint(scale,scale) in kpc^3, tp in GeV
*** output in 10^15 s
***
*** author: piero ullio (ullio@sissa.it)
*** date: 04-01-22
**********************************************************************
real*8 function dspbtd15point(rho2int,tp)

dspbtd15x.f
real*8 function dspbtd15x(tp)
**********************************************************************
*** antiproton propagation according to various models
*** dspbtd15x is containment time in 10^15 sec
*** inputs:
***
tp - antiproton kinetic energy (gev)
*** from common blocks
***
pbpropmodel - 0 leaky box with energy dependent esc. time
***
1 chardonnet et al diffusion
***
2 bergstrom,edsjo,ullio diffusion
***
3 bergstrom,edsjo,ullio diffusion
***
but with the DC-like setup as in moskalenko
***
et al. ApJ 565 (2002) 280
*** author: paolo gondolo 99-07-13
*** modified: piero ullio 00-07-13
*** modified: piero ullio 04-01-22
**********************************************************************

dspbtpb.f
**********************************************************************
*** function dspbtpb gives the antiproton kinetic energy at the helio*** sphere as a function of the kinetic energy at the earth.
***
input:
***
tp - antiproton kinetic energy in gev
*** date: 98-02-10
**********************************************************************
real*8 function dspbtpb(tp)

Chapter 21

src/rd:
Relic density routines (general)
21.1

Relic density – theoretical background

21.1.1

The Boltzmann equation and thermal averaging

Griest and Seckel [171] have worked out the Boltzmann equation when coannihilations are included.
We start by reviewing their expressions and then continue by rewriting them into a more convenient
form that resembles the familiar case without coannihilations. This allows us to use similar expressions for calculating thermal averages and solving the Boltzmann equation whether coannihilations
are included or not. The implementation in DarkSUSY is based upon the work done in [35]. We
will later in this chapter, for the sake of clarification, assume that we work with supersymmetric
dark matter with the lightest neutralino being the LSP. The routines here are completely general
though and the interface between supersymmetry and the relic density routines is handled by the
routines in src/rn.

21.1.2

Review of the Boltzmann equation with coannihilations

Consider annihilation of N supersymmetric particles χi (i = 1, . . . , N ) with masses mi and internal
degrees of freedom (statistical weights) gi . Also assume that m1 ≤ m2 ≤ · · · ≤ mN −1 ≤ mN and
that R-parity is conserved. Note that for the mass of the lightest neutralino we will use the notation
mχ and m1 interchangeably.
The evolution of the number density ni of particle i is
dni
dt

= −3Hni −
−
−

X
j6=i

X
j6=i

N
X
j=1

eq
hσij vij i ni nj − neq
i nj

′
hσXij
vij i (ni nX



eq
eq eq
′
− neq
i nX ) − hσXji vij i nj nX − nj nX

eq
Γij (ni − neq
i ) − Γji nj − nj



.



(21.1)

The first term on the right-hand side is the dilution due to the expansion of the Universe. H is the
Hubble parameter. The second term describes χi χj annihilations, whose total annihilation cross
section is
X
σij =
σ(χi χj → X).
(21.2)
X

253

254

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

The third term describes χi → χj conversions by scattering off the cosmic thermal background,
X
′
σXij
=
σ(χi X → χj Y )
(21.3)
Y

being the inclusive scattering cross section. The last term accounts for χi decays, with inclusive
decay rates
X
Γij =
Γ(χi → χj X).
(21.4)
X

In the previous expressions, X and Y are (sets of) standard model particles involved in the interactions, vij is the ‘relative velocity’ defined by
q
(pi · pj )2 − m2i m2j
vij =
(21.5)
Ei Ej
with pi and Ei being the four-momentum and energy of particle i, and finally neq
i is the equilibrium
number density of particle χi ,
Z
gi
d3 pi fi
(21.6)
neq
=
i
(2π)3

where pi is the three-momentum of particle i, and fi is its equilibrium distribution function. In the
Maxwell-Boltzmann approximation it is given by
fi = e−Ei /T .
The thermal average hσij vij i is defined with equilibrium distributions and is given by
R 3
d pi d3 pj fi fj σij vij
R
hσij vij i =
d3 pi d3 pj fi fj

(21.7)

(21.8)

Normally, the decay rate of supersymmetric particles χi other than the lightest which is stable
is much faster than the age of the universe. Since we have assumed R-parity conservation, all of
these particles decay into the lightest one. So its final abundance is simply described by the sum
of the density of all supersymmetric particles,
n=

N
X

ni .

(21.9)

i=1

For n we get the following evolution equation
N
X
dn
eq 
hσij vij i ni nj − neq
= −3Hn −
i nj
dt
i,j=1

(21.10)

where the terms on the second and third lines in Eq. (21.1) cancel in the sum.
The scattering rate of supersymmetric particles off particles in the thermal background is much
′
faster than their annihilation rate, because the scattering cross sections σXij
are of the same order
of magnitude as the annihilation cross sections σij but the background particle density nX is much
larger than each of the supersymmetric particle densities ni when the former are relativistic and the
latter are non-relativistic, and so suppressed by a Boltzmann factor. In this case, the χi distributions
remain in thermal equilibrium, and in particular their ratios are equal to the equilibrium values,
ni
neq
≃ ieq .
n
n

(21.11)

21.1. RELIC DENSITY – THEORETICAL BACKGROUND
We then get

where


dn
= −3Hn − hσeff vi n2 − n2eq
dt
hσeff vi =

21.1.3

255

X
ij

(21.12)

eq

hσij vij i

nj
neq
i
.
neq neq

(21.13)

Thermal averaging

So far the reviewing. Now let’s continue by reformulating the thermal averages into more convenient
expressions.
We rewrite Eq. (21.13) as
P
eq eq
A
ij hσij vij ini nj
hσeff vi =
= 2 .
(21.14)
2
neq
neq
For the denominator we obtain, using Boltzmann statistics for fi ,
m 
X eq X gi Z
T X
i
2
3
−Ei /T
neq =
ni =
g
m
K
d
p
e
=
i i 2
i
3
2
(2π)
2π
T
i
i
i

where K2 is the modified Bessel function of the second kind of order 2.
The numerator is the total annihilation rate per unit volume at temperature T ,
X gi gj Z
X
eq
A=
hσij vij ineq
n
=
d3 pi d3 pj fi fj σij vij
i
j
6
(2π)
ij
ij
It is convenient to cast it in a covariant form,
XZ
gi fi d3 pi gj fj d3 pj
.
A=
Wij
(2π)3 2Ei (2π)3 2Ej
ij

(21.15)

(21.16)

(21.17)

Wij is the (unpolarized) annihilation rate per unit volume corresponding to the covariant normalization of 2E colliding particles per unit volume. Wij is a dimensionless Lorentz invariant, related
to the (unpolarized) cross section through∗
q
√
Wij = 4pij sσij = 4σij (pi · pj )2 − m2i m2j = 4Ei Ej σij vij .
(21.18)

Here


1/2 
1/2
s − (mi + mj )2
s − (mi − mj )2
√
pij =
2 s

(21.19)

is the momentum of particle χi (or χj ) in the center-of-mass frame of the pair χi χj .
Averaging over initial and summing over final internal states, the contribution to Wij of a general
n-body final state is
Z
X
Y d3 pf
P
1
2
n−body
Wij
=
,
(21.20)
|M| (2π)4 δ 4 (pi + pj − f pf )
g i g j Sf
(2π)3 2Ef
internal d.o.f.

f

where Sf is a symmetry factor accounting for identical final state particles (if there are K sets of
Q
Nk identical particles, k = 1, . . . , K, then Sf = K
k=1 Nk !). In particular, the contribution of a
two-body final state can be written as
Z
X
pkl
2
2−body
√
|M(ij → kl)| dΩ,
(21.21)
Wij→kl
=
16π 2 gi gj Skl s
internal d.o.f.

∗ The

quantity wij in Ref. [65] is Wij /4.

256

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

where pkl is the final center-of-mass momentum, Skl is a symmetry factor equal to 2 for identical
final particles and to 1 otherwise, and the integration is over the outgoing directions of one of the
final particles. As usual, an average over initial internal degrees of freedom is performed.
We now reduce the integral in the covariant expression for A, Eq. (21.17), from 6 dimensions to
1. Using Boltzmann statistics for fi (a good approximation for T <
∼ m)
Z
X
d3 pj
d3 pi
,
(21.22)
A=
gi gj Wij e−Ei /T e−Ej /T
(2π)3 2Ei (2π)3 2Ej
ij
where pi and pj are the three-momenta and Ei and Ej are the energies of the colliding particles.
Following the procedure in Ref. [68] we then rewrite the momentum volume element as
d3 pi d3 pj = 4π|pi |Ei dEi 4π|pj |Ej dEj
where θ is the angle between pi
E+ , E− and s, given by

 E+
E−

s

1
d cos θ
2

(21.23)

and pj . Then we change integration variables from Ei , Ej , θ to
= Ei + Ej
= Ei − Ej
= m2i + m2j + 2Ei Ej − 2|pi ||pj | cos θ,

(21.24)

whence the volume element becomes
d3 pi
d3 pj
1 dE+ dE− ds
=
,
(2π)3 2Ei (2π)3 2Ej
(2π)4
8

(21.25)

and the integration region {Ei ≥ mi , Ej ≥ mj , | cos θ| ≤ 1} transforms into
s ≥ (mi + mj )2 ,
√
E+ ≥ s,

m2j − m2i
≤ 2pij
E− − E+
s

r

(21.26)
(21.27)
2 −s
E+
.
s

(21.28)

Notice now that the product of the equilibrium distribution functions depends only on E+ and
not E− due to the Maxwell-Boltzmann approximation, and that the invariant rate Wij depends
only on s due to the neglect of final state statistical factors. Hence we can immediately integrate
over E− ,
r
Z
2 −s
E+
dE− = 4pij
.
(21.29)
s
The volume element is now
r
2 −s
d3 pj
1 pij E+
d3 pi
=
dE+ ds
(21.30)
(2π)3 2Ei (2π)3 2Ej
(2π)4 2
s
We now perform the E+ integration. We obtain
√ 
Z
s
T X ∞
A=
dsgi gj pij Wij K1
4
32π ij (mi +mj )2
T

(21.31)

where K1 is the modified Bessel function of the second kind of order 1.
We can take the sum inside the integral and define an effective annihilation rate Weff through
X
gi gj pij Wij = g12 peff Weff
(21.32)
ij

21.1. RELIC DENSITY – THEORETICAL BACKGROUND
with
peff = p11
In other words
Weff

X pij gi gj
X
=
Wij =
2
p11 g1
ij
ij

s

1
=
2

q
s − 4m21 .

[s − (mi − mj )2 ][s − (mi + mj )2 ] gi gj
Wij .
s(s − 4m21 )
g12

257

(21.33)

(21.34)

Because Wij (s) = 0 for s ≤ (mi + mj )2 , the radicand is never negative.
In terms of cross sections, this is equivalent to the definition
σeff =
Eq. (21.31) then reads
g2T
A= 1 4
32π

Z

X p2ij gi gj
σij .
p211 g12
ij

(21.35)

√ 
s
dspeff Weff K1
2
T
4m1
∞

(21.36)

This can be written in a form more suitable for numerical integration by using peff instead of s as
integration variable. From Eq. (21.33), we have ds = 8peff dpeff , and
g2T
A= 14
4π

Z

∞
0

dpeff p2eff Weff K1

√ 
s
T

(21.37)

with
s = 4p2eff + 4m21

(21.38)

So we have succeeded in rewriting A as a 1-dimensional integral.
From Eqs. (21.37) and (21.15), the thermal average of the effective cross section results
√ 
R∞
s
2
dp
p
W
K
eff eff eff 1
T
0
(21.39)
hσeff vi =
hP
i2 .
gi m2i
mi
m41 T
K
2
2
i g1 m
T
1

This expression is very similar to the case without coannihilations, the differences being the denominator and the replacement of the annihilation rate with the effective annihilation rate. In
the absence of coannihilations, this expression correctly reduces to the formula in Gondolo and
Gelmini [68].
The definition of an effective annihilation rate independent of temperature is a remarkable
calculational advantage. As in the case without coannihilations, the effective annihilation rate can
in fact be tabulated in advance, before taking the thermal average and solving the Boltzmann
equation.
√
In the effective annihilation rate, coannihilations appear as thresholds at s equal to the sum of
the masses of the coannihilating particles. We show an example in Fig. 21.1 where it is clearly seen
that the coannihilation thresholds appear in the effective invariant rate just as final state thresholds
do. For the same example, Fig. 21.2 shows the differential annihilation rate per unit volume
dA/dpeff , the integrand in Eq. (21.37), as a function of peff . We have chosen a temperature T =
mχ /20, a typical freeze-out temperature. The Boltzmann suppression contained in the exponential
decay of K1 at high peff is clearly visible. At higher temperatures the peak shifts to the right
and at lower temperatures to the left. For the particular model shown in Figs. 21.1–21.2, the relic
density results Ωχ h2 = 0.030 when coannihilations are included and Ωχ h2 = 0.18 when they are
not. Coannihilations have lowered Ωχ h2 by a factor of 6.

258

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

100
10-1
10-2

0 +
0 0
+ - χ2 χ1 χ2 χ2
χ
χ
1
1
χ01 χ02

Weff

10-3

χ01 χ+1

-4

10

10-5
W+ W- final state

10-6

mχ0 = 76.3 GeV
1

mχ0 = 96.3 GeV

10-7

2

mχ+ = 89.2 GeV
1

10-8

0

10

20

30

40

50

60

70

80

90

100

peff [GeV]

Figure 21.1: The effective invariant annihiliation rate Weff as a function of peff for an example
model. The final state threshold for annihilation into W + W − and the coannihilation thresholds,
as given by Eq. (21.34), are indicated. The χ02 χ02 coannihilation threshold is too small to be seen.

1046
1045

T = mχ/20

dA/dpeff [cm-3 s-1 GeV-1]

1044

χ01 χ02

1043

χ+1 χ-1

χ01 χ+1

1042

χ02 χ+1

1041

χ02 χ02

W+ W- final state

1040
1039

mχ0 = 76.3 GeV
1

mχ0 = 96.3 GeV

1038

2

mχ+ = 89.2 GeV
1

1037

0

10

20

30

40

50

60

70

80

90

100

peff [GeV]

Figure 21.2: Total differential annihilation rate per unit volume dA/dpeff for the same model as
in Fig. 21.1, evaluated at a temperature T = mχ /20, typical of freeze-out. Notice the Boltzmann
suppression at high peff .

21.1. RELIC DENSITY – THEORETICAL BACKGROUND

21.1.4

259

Internal degrees of freedom

If we look at Eqs. (21.34) and (21.39) we see that we have a freedom on how to treat particles
degenerate in mass, e.g. a chargino can be treated either
−
a) as two separate species χ+
i and χi , each with internal degrees of freedom gχ+ = gχ− = 2, or,

b) as a single species χ±
i with gχ± = 4 internal degrees of freedom.
i

Of course the two views are equivalent, we just have to be careful including the gi ’s consistently
whichever view we take. In a), we have the advantage that all the Wij that enter into Eq. (21.34)
enter as they are, i.e. without any correction factors for the degrees of freedom. On the other hand
we get many terms in the sum that are identical and we need some book-keeping machinery to
avoid calculating identical terms more than once. On the other hand, with option b), the sum over
Wij in Eq. (21.34) is much simpler only containing terms that are not identical (except for the
trivial identity Wij = Wji which is easily taken care of). However, the individual Wij will be some
linear combinations of the more basic Wij entering in option a), where the coefficients have to be
calculated for each specific type of initial condition.
Below we will perform this calculation to show how the Wij look like in option b) for different
initial states. We will use a prime on the Wij when they refer to these combined states to indicate
the difference.
Neutralino-chargino annihilation
The starting point is Eq. (21.34) which we will use to define the Wij in option b) such that Weff
is the same as in option a). Eq. (21.39) is then guaranteed to be the same in both cases since the
sum in the denominator is linear in gi .
−
Now consider annihilation between χ0i and χ+
c or χc . The corresponding terms in Eq. (21.34)
does for option a) read
Weff

=

=



X pij gi gj
pic 2 · 2
Wχ0 χ+
+ Wχ0 χ−
+ Wχ+
Wij =
0 + Wχ− χ0
c χ
c
i c
i c
p11 g12
p11 22
| {z }i | {z }i
ij
2



Wχ0 χ+
i



c

Wχ0 χ−
i

pic
pic
=4
Wχ0 χ+
+ Wχ0 χ−
Wχ0 χ+
i c
i c
i c
p11
p
11
| {z }
Wχ0 χ+
i

c

(21.40)

c

For option b), we instead get
Weff =



X pij gi gj
pic ′
pic 2 · 4
′
′
=4
W
+
W
W
=
Wχ0 χ±
ij
0
2
2
χ0i χ±
χ±
c
c χi
i c
p
g
p
2
p
11
11
11
1
| {z }
ij

(21.41)

W′0

±
χ χc
i

Comparing Eq. (21.41) and Eq. (21.40) we see that they are indentical if we make the identification
Wχ′ 0 χ± ≡ Wχ0 χ+
c
i

c

i

(21.42)

Chargino-chargino annihilation
First consider the case where we include the terms in the sum for which we have annihilation
+
−
−
between χ+
c or χc and χd or χd with c 6= d.

260

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

In option a), the corresponding terms in Eq. (21.34) reads
X pij gi gj
Weff =
Wij
p11 g12
ij

pcd 2 · 2
+ + W + − + W − + + W − −
Wχ+
=
χc χd
χc χd
χc χd
c χd
p11 22

+ Wχ+ χ+
+ Wχ+ χ−
+ Wχ− χ+
+ Wχ− χ−
d c
d c
d c
d c
| {z
} | {z
} | {z
} | {z
}
Wχ+ χ+
c

=

=



d

Wχ− χ+
c

d

Wχ+ χ−
c

Wχ− χ−
c

d

d

pcd
+ + W + − + W − + +W − −
Wχ+
2
χc χd
χc χ
χc χ
c χd
p11
| {z d} | {z d}


pcd
+ + W + −
Wχ+
4
χc χd
c χd
p11

Wχ+ χ−



c

Wχ+ χ+
c

d



d

(21.43)

In option b), the corresponding terms would instead read


X pij gi gj
pcd ′
pcd 4 · 4
′
′
′
Weff =
=8
W
+
W
W
=
W ± ±
±
±
±
±
ij
2
χ
χ
χ
χ
2
c
c
d
d
p11 g1
p11 2
p11 χc χd
}
| {z
ij
W′±

χc χ

(21.44)

±
d

Comparing Eq. (21.43) and Eq. (21.44) we see that they are identical if we make the following
identifcation


1
′
+ + W + −
Wχ± χ± ≡
(21.45)
Wχ+
χc χd
c χd
c
d
2
For clarity, let’s also consider the case where c = d. In option a), the terms in Weff are


X pij gi gj
pcc 2 · 2
+
+
+
−
−
+
−
−
Weff =
W
+
W
W
=
+
W
+
W
ij
χc χc
χc χc
χc χc
χc χc
p11 g12
p11 22
} | {z
}
| {z
ij
=



pcc
+ + W + −
2
Wχ+
χc χc
c χc
p11

Wχ+ χ−
c

c

Wχ+ χ+
c

c

(21.46)

In option b), the corresponding term would instead read
Weff =

X pij gi gj
pcc 4 · 4 ′
pcc ′
′
Wχ± χ± + = 4
Wχ± χ±
2 Wij = p
2
c
c
c
c
p
g
2
p
11
11
11
1
ij

(21.47)

Comparing Eq. (21.46) and Eq. (21.47) we see that they are identical if we make the following
identifcation


1
Wχ′ ± χ± ≡
(21.48)
Wχ+
+ + W + −
χc χc
c χc
c
c
2
i.e. the same identification as in the case c 6= d.

Neutralino-sfermion annihilation
For each sfermion we have in total four different states, f˜1 , f˜2 , f˜1∗ and f˜2∗ . Of these, the f˜1
and f˜2 in general have different masses and have to be treated separately. Considering only one
mass eigenstate f˜k , option a) then means that we treat f˜k and f˜k∗ as two separate species with
gi = 1 degree of freedom each, whereas option b) means that we treat them as one species f˜k′ with

21.1. RELIC DENSITY – THEORETICAL BACKGROUND

261

gi = 2 degrees of freedom. As before, the prime indicates that we mean both the particle and the
antiparticle state.
Note, that for squarks we also have the number of colours Nc = 3 to take into account. In
option a) we should choose to treat even colour state differently, i.e. gi = 1, whereas gi = 6 in
case b). The expressions would be the same as above except that both the expression in a) and b)
would be multiplied by the colour factor Nc = 3. The expression relating case a) and case b) is
thus unaffected by this colour factor. Note however, that in option b) we take the average over the
squark colours (or in this case calculate it only for one colour. See sections 21.1.4 and 21.1.4 below
for more details.
For option a), Eq. (21.34) then reads


X pij gi gj
pik 2 · 1
Weff =
+
W
W
+
W
W
=
+
W
0
0
0
∗
∗
0
˜
˜
ij
fk χ
χi f˜k
χi f˜k
fk χi
p11 g12
p11 22
| {z }i | {z
}
ij
Wχ0 f˜

=

i k



pik
pik
Wχ0 f˜k + Wχ0 f˜∗ = 2
Wχ0 f˜k
i
i k
i
p11
p
11
| {z }

Wχ0 f˜∗
i k

(21.49)

Wχ0 f˜

i k

whereas for option b), Eq. (21.34) reads
Weff



X pij gi gj
pik ′
pik 2 · 2
′
′
′
=
Wχ0 f˜′ + Wf˜′ χ0 = 2
Wχ0 f˜′
2 Wij = p
2
k
k
k
i
i
i
p
g
2
p
11
11
11
1
| {z }
ij

(21.50)

W′0

χ f˜′ k
i

Comparing Eq. (21.50) and Eq. (21.49) we see that they are indentical if we make the identification
Wχ′ 0 f˜′ ≡ Wχ0 f˜k

(21.51)

i

k

i

For clarity, for squarks the corresponding expression would be
3

Wχ′ 0 q˜′
k
i

1X
W 0 a
≡
3 a=1 χi q̃k

(21.52)

where a is a colour index.
Chargino-sfermion annihilation
In option a) the chargino has gi = 2 and the sfermion has gi = 1 degrees of freedom, whereas in
option b), the chargino has gi = 4 and the sfermion has gi = 2 degrees of freedom
For option a), Eq. (21.34) then reads
X pij gi gj
Wij
Weff =
p11 g12
ij

pck 2 · 1
=
Wχ+
˜ + Wχ+
˜∗ + Wχ−
˜ + Wχ−
˜∗
c fk
c fk
c fk
c fk
p11 22

+ Wf˜∗ χ+
+ Wf˜∗ χ−
+ Wf˜k χ−
+ Wf˜k χ+
c
k c
k c
| {z c} | {z
} | {z } | {z
}
Wχ+ f˜

=

c

k

Wχ+ f˜∗
c

k

Wχ− f˜
c

Wχ− f˜∗

k

c

k




pck
pck
Wχ+
Wχ+
=2
˜ + Wχ+
˜ + Wχ+
˜∗ + Wχ−
˜∗
f˜ + Wχ− f˜∗
c fk
c fk
c fk
c fk
p11
p11
| {zc k} | {zc k}


Wχ+ f˜∗
c

k

Wχ+ f˜
c

k

(21.53)

262

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

In option b), Eq. (21.34) reads
Weff

=



X pij gi gj
pck 4 · 2
pck ′
′
′
′
W
+
W
W
=
W ±
=4
±
±
˜′
˜′ χc
ij
2
2
χ
f
f
c
k
p11 g1
p11 2
p11 χc f˜′ k
| {zk }
ij

(21.54)

W′±

χc f˜′ k

Comparing Eq. (21.54) and Eq. (21.53) we see that they are indentical if we make the identification


1
′
Wχ± f˜′ ≡
(21.55)
Wχ+
˜ + Wχ+
˜∗
c fk
c fk
c
k
2
For clarity, for squarks the corresponding expression would be
Wχ′ ± q˜′ ≡
c

k


3 
11X
+ a∗
Wχ+
+
W
a
χc q̃k
c q̃k
2 3 a=1

(21.56)

where a is a colour index.
Sfermion-sfermion annihilation
First consider the case where we have annihilation between sfmerions of different types, i.e. annihilation between f˜k or f˜k∗ and f˜l or f˜l∗ .
For option a), Eq. (21.34) then reads
Weff

=
=

X pij gi gj
Wij
p11 g12
ij

pkl 1 · 1
Wf˜k f˜l + Wf˜k f˜∗ + Wf˜∗ f˜l + Wf˜∗ f˜∗
l
k
k l
p11 22

+ Wf˜l f˜k + Wf˜l f˜∗ + Wf˜∗ f˜k + Wf˜∗ f˜∗
l k
| {z } | {z k} | {zl } | {z
}
Wf˜

˜
k fl

=

Wf˜∗ f˜

k l

Wf˜

Wf˜∗ f˜∗

˜∗
k fl

k l




1 pkl
pkl
Wf˜k f˜l + Wf˜k f˜∗ + Wf˜∗ f˜l + Wf˜∗ f˜∗ =
Wf˜k f˜l + Wf˜k f˜∗
l
l
2 p11
p11
| {zk } | {zk l}


Wf˜

(21.57)

Wf˜

˜∗
k fl

˜
k fl

In option b) we would get
Weff

=
=

X pij gi gj
′
2 Wij
p
g
11
1
ij




pkl 2 · 2
pkl
′
′
′
Wf˜′ f˜′ + Wf˜′ f˜′
Wf˜′ f˜′
=2
l
k
k
l
p11 22
p11
| {zl k}

(21.58)

W ′˜′

f k f˜′ l

Comparing Eq. (21.58) and Eq. (21.57) we see that they are indentical if we make the identification
Wf′˜′

˜′
kf l

≡



1
Wf˜k f˜l + Wf˜k f˜∗
l
2

It is easy to show that this relation holds true even if k = l.

(21.59)

21.1. RELIC DENSITY – THEORETICAL BACKGROUND

263

Squark-squark annihilation
Even though we treated sfermion-sfermion annihilation in the previous subsection, squarks have
colour which can complicate things, so let’s for clarity consider squarks separately.
Let’s denote the squarks q̃ka where a is now a colour index. In option a) we will let each colour
be a seprate species, which means that gi = 1 in this case. In option b) we will instead have gi = 6.
In option a) we would have
Weff

=

=

X pij gi gj
Wij
p11 g12
ij

3 
pkl 1 · 1 X
Wq̃a q̃b + Wq̃a q̃b∗ + Wq̃a∗ q̃b + Wq̃a∗ q̃b∗
k l
k l
k
l
k
l
p11 22
a,b=1

+ Wq̃a q̃b + Wq̃a q̃b∗ + Wq̃a∗ q̃b + Wq̃a∗ q̃b∗
l k
l
k
l
k
| {zl k} | {z
} | {z
} | {z
}
Wq̃a q̃b
k l

=

1 pkl
2 p11

3
X

a,b=1

Wq̃a∗ q̃b
k



l

Wq̃a q̃b∗
k l

Wq̃a∗ q̃b∗
l

k



3 
pkl X
(21.60)
Wq̃a f˜b + Wq̃a f˜b∗ + Wq̃a∗ q̃b + Wq̃a∗ q̃b∗ =
Wq̃a q̃b + Wq̃a q̃b∗
k
k l
k l
k
l
k l
k l
p11
| {z
}l | {z
}
a,b=1
Wq̃a q̃b∗

Wq̃a q̃b

k l

k l

In option b) we would get
Weff

X pij gi gj
′
2 Wij
p
g
11
1
ij




pkl
pkl 6 · 6
′
′
′
= 18
=
Wq˜′ q˜′ + Wq˜′ q˜′
Wq˜′ q˜′
k l
k l
p11 22
p11
| {zl k}

=

(21.61)

W ′˜′

q k q˜′ l

Comparing Eq. (21.61) and Eq. (21.60) we see that they are indentical if we make the identification

Wq˜′′

˜′
kq l

≡


3 
11 X
Wq̃a q̃b + Wq̃a q̃b∗
k l
k l
29

(21.62)

a,b=1

i.e. we get the same relation as for other sfermions, the only difference being that we in option b)
should also take the average over the colour states.

Sfermion-squark annihilation
For clarity, if we have annihilation between a non-coloured sfermion and a squark, we would in the
same way as in the previous subsection get

Wf′˜′ q˜′
k l


3 
11X
≡
Wf˜k q̃b + Wf˜k q̃b∗
l
l
23
b=1

(21.63)

264

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

Summary of degrees of freedom
We have found above the following relations between option b) and option a),

Wχ′ 0 χ± ≡ Wχ0 χ+ = Wχ0 χ− , ∀ i = 1, . . . , 4, j = 1, 2


i j
i j

i
i
hi j
h


1
1
′


+ + + W + −
− − + W − +
W
=
, ∀ i = 1, 2, j = 1, 2
W
W
≡
±
±

χi χj
χi χj
χi χj
χi χj
2
2
χ χ


 W′i j ≡ W

, ∀i = 1, . . . 4, k = 1, 2
 χ0 f˜′
χ0 f˜
k
i
hi k
i

+ ˜∗
+
W
, ∀c = 1, 2, k = 1, 2
Wχ′ ± f˜′
≡ 12 Wχ+
˜

f
χc fk

c
k
h c k
i




Wf′˜′ f˜′ ≡ 12 Wf˜k f˜l + Wf˜k f˜∗
, ∀k = 1, 2, l = 1, 2


l
k
l

i
h

P

3
1
1
 W′
, ∀k = 1, 2, l = 1, 2
W
a q̃ b + Wq̃ a q̃ b∗
≡
q̃
′
′
˜
˜
a,b=1
2
9
q q
k

l

k l

(21.64)

k l

We don’t list all the possible cases with squarks explicitly, the principle being that we in option
b) should take the average over the squark colour states (see the squark-squark entry in the list
above).
We will choose option b) and the code (dsandwdcoscn, dsandwdcoscn, dsasdwdcossfsf and dsasdwdcossfchi) should thus return W ′ as defined above. Note again that squarks are assumed to have
gi = 6 degrees of freedom in this convention and the summing over colours should also be taken
into account in the code.

21.1.5

Reformulation of the Boltzmann equation

We now follow Gondolo and Gelmini [68] to put Eq. (21.12) in a more convenient form by considering
the ratio of the number density to the entropy density,
Y =
Consider

n
.
s

(21.65)

d  n  ṅ
n
dY
= − 2 ṡ
=
dt
dt s
s
s

(21.66)

Ṙ
ṡ = −3 s = −3Hs
R

(21.67)

where dot means time derivative. In absence of entropy production, S = R3 s is constant (R is the
scale factor). Differentiating with respect to time we see that

which yields
Ẏ =

n
ṅ
+ 3H .
s
s

(21.68)

Hence we can rewrite Eq. (21.12) as

2
.
Ẏ = −shσeff vi Y 2 − Yeq

(21.69)

The right-hand side depends only on temperature, and it is therefore convenient to use temperature T instead of time t as independent variable. Defining x = m1 /T we have

where we have used


m1 1 ds
dY
2
.
=− 2
hσeff vi Y 2 − Yeq
dx
x 3H dT
1
1 ds
1 ds
=
=−
ṡ dT
3Hs dT
Ṫ

(21.70)

(21.71)

21.2. RELIC DENSITY – NUMERICAL INTEGRATION OF THE DENSITY EQUATION 265
which follows from Eq. (21.67). With the Friedmann equation in a radiation dominated universe
H2 =

8πGρ
,
3

(21.72)

where G is the gravitational constant, and the usual parameterization of the energy and entropy
densities in terms of the effective degrees of freedom geff and heff ,
ρ = geff (T )

π2 4
T ,
30

s = heff (T )

2π 2 3
T ,
45

(21.73)

we can cast Eq. (21.70) into the form [68]
dY
=−
dx

r

where Yeq can be written as
Yeq

1/2


π g ∗ m1
2
hσeff vi Y 2 − Yeq
45G x2

X
45x2
neq
gi
= 4
=
s
4π heff (T ) i

using Eqs. (21.15), (21.65) and (21.73).
1/2
The parameter g∗ is defined as
1/2
g∗

heff
= √
geff



mi
m1

2



mi
,
K2 x
m1



T dheff
1+
3heff dT

(21.74)

(21.75)

(21.76)

1/2

For geff , heff and g∗ we use the values in Ref. [68] with a QCD phase-transition temperature
TQCD = 150 MeV. Our results are insensitive to the value of TQCD , because due to a lower limit
on the neutralino mass the neutralino freeze-out temperature is always much larger than TQCD .
To obtain the relic density we integrate Eq. (21.79) from x = 0 to x0 = mχ /T0 where T0 is the
photon temperature of the Universe today. The relic density today in units of the critical density
is then given by
Ωχ = ρ0χ /ρcrit = mχ s0 Y0 /ρcrit
(21.77)
where ρcrit = 3H 2 /8πG is the critical density, s0 is the entropy density today and Y0 is the result
of the integration of Eq. (21.79). With a background radiation temperature of T0 = 2.726 K we
finally obtain
mχ
Y0 .
(21.78)
Ωχ h2 = 2.755 × 108
GeV

21.2

Relic density – numerical integration of the density
equation

Let us write the evolution equation for the density,
r
1/2

dY
π g ∗ m1
2
hσeff vi Y 2 − Yeq
=−
dx
45G x2

as

(21.79)

dY
= λ(Y 2 − q 2 ),
(21.80)
dx
where λ contains the annihilation rate and q represents the thermal-equilibrium density.
This equation is stiff and an explicit method, like Euler or Runge-Kutta, fails to converge. To
obtain a numerical solution, we use an adaptive implicit trapezoidal method which we explain in the

266

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

following. Basically we discretize the equation first with a trapezoidal then with an Euler method,
and adapt the step size according to the difference in the updated function values.
For simplicity we denote the right hand wide of eq. (21.80) as f (x). We further write fi = f (xi )
and similarly for the other functions λ(x) and q(x). Given Yi = Y (xi ) we find Yi+1 = Y (xi+1 ) with
xi+1 = xi + h as follows.
First we discretize the evolution equation as
Yi+1 − Yi = h

fi + fi+1
.
2

(21.81)

We insert
fi
fi+1

=
=


λi Yi2 − qi2 ,

2
λi+1 Yi+1

−

2
qi+1

and solve the resulting quadratic equation for Yi+1 to obtain
Yi+1 =

1+



(21.82)
,

c
√
,
1 + uc

(21.83)

(21.84)

where
c
u

 2

= 2Yi + u (qi+1
+ ρqi2 ) − ρYi2 ,
= hλi+1 ,

(21.85)
(21.86)

ρ

= λi /λi+1 .

(21.87)

In the expression for c we have explicitly indicated the order of evaluation which we found avoids
round-off errors. If in eq. (21.84) 1 + uc is negative, we simply reduce the step h to h/2 and try
again.
Secondly we discretize the evolution equation as
Yi+1 − Yi = hfi+1 .

(21.88)

We insert the expression for fi+1 and solve the quadratic equation for Yi+1 to obtain
′
Yi+1
=

where

c′
1
√
,
2 1 + 1 + uc′


2
c′ = 4 Yi + uqi+1
.

(21.89)

(21.90)

Again if in eq. (21.89) 1 + uc′ < 0, we reduce the step h to h/2 and try again.
′
We then adapt the step size according to the relative difference of Yi+1 and Yi+1
,
d=

′
Yi+1 − Yi+1
.
Yi+1

(21.91)

√
If the difference is larger than a prefixed ǫ, set at 0.01, we reduce the step size h to hs/ ǫ but never
to √
less than h/10. s is a safety factor set to 0.9. If d < ǫ, we increase the step size by a factor
s/ ǫ but never by more than a factor of 5. We do not allow the step size to become smaller than
hmin = 10−9 . Error code 5 is reported if this happens. Error code 4 occurs when xi+1 is numerically
equal to xi because of round-off. Error code 6 occurs when the number of steps exceeds a maximum
of 100000. Finally the initial step size is taken to be 0.01.

21.3. RELIC DENSITY – ROUTINES

21.3

267

Relic density – routines

In src/rd, the general relic density routines are found. These routines can be used for any dark
matter candidate and the interface to neutralino dark matter is in src/rn. We will first discuss how
the routines for neutralino relic density are used and then how the general routines work.

21.3.1

Neutralino relic density

function dsrdomega(coann,fast,xf,ierr,iwar,nfc)
r8
Purpose:
Calculate the relic density of the lightest neutralino, possibly including coannihilations between different neutralinos, neutralinos and charginos and between
charginos.
Input:
coann
i =1: include coannihilations between neutralino–neutralino, neutralino–chargino
and chargino–chargino.
=2: do not include coannihilations.
fast
i =1: Do a faster calculation, with slightly less accuracy in the numerical integrations and only including coannihilations (if coann=1) with other particles up to
1.3 times heavier than the lightest neutralino.
=2: Do a more accurate calculation, with higher accuracy in the numerical integrations and including coannihilations (if coann=1) with other particles up to
2.1 times heavier than the lightest neutralino.
Output:
xf
r8 x is defined as x = mχ /T and xf is the x at which freeze-out occurs (defined as
the temperature at which the number density is a factor of two higher than the
equilibrium density). COMMENT #12: Check!
ierr
i =0: Calculation went OK.
6= 0: Somethig went wrong. COMMENT #13: Describe!
iwar
i =0: Calculation went OK.
6= 0: A slight inaccuracy may have occured at a resonance or threshold for
numerical reasons. Usually, this doesn’t affect the result, but one should keep
it in mind in case the returned relic density seems strange.
nfc
i The number of points (in peff ) at which the cross section was evaluated.
subroutine dsrdwrate(unit1,unit2,ich)
Purpose:
Writes a table of the partial annihilation rates WF (p, cos θ) into each final channel F as a function of the center-of-mass momentum p and at cos θ = 0.1 to
unit2.
Inputs:
unit1
i What is this?
unit2
i Unit number to write output to.
ich
i What initial state channel to use:
=1: neutralino–neutralino annihilation
=2: neutralino–chargino coannihilation
=3: chargino–chargino coannihilations.
Comment:
Only annihilation between the lightest neutralinos and charginos are included.

21.3.2

General relic density routines

The routine that performs the actual relic density calculation is
subroutines dsrdens(wx,ncoann,mcoann,dof,nrs,rm,rw,nt,tm,oh2,tf,ierr,iwar)
Purpose:
Calculate the relic density of a dark matter candidte.
Input:

268

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)
wx

r8

ncoann i
mcoann r8
dof
r8
nrs
i
rm
r8
rw
r8
nt
i
tm
r8
Output:
oh2
r8
tf

r8

ierr

i

iwar

i

User-defined function that returns the effective invariant annihilation rate, Weff ,
as a function of the effective momentum peff . The function has to be declared
external in the calling routine.
Number of particles that coannihilate.
An array with the masses (in GeV) that can coannihilate.
Number of internal degrees of freedom for the coannihilating particles.
Number of resonances.
An array with the masses of the resonances (in GeV).
An array with the widths of the resonances (in GeV).
Number of thresholds.
√
An array with the s (in GeV) at which the thresholds occur.
The relic density, Ωh2 where h is the Hubble constant in units of 100 km s−1
Mpc−1 .
The temperature (in GeV) at which the freeze-out occured. Freeze-out is defined
to occur when the number density is 2 times the equlibrium density.
=0: Calculation went OK.
6= 0: Somethig went wrong. COMMENT #14: Describe!
=0: Calculation went OK.
6= 0: A slight inaccuracy may have occured at a resonance or threshold for
numerical reasons. Usually, this doesn’t affect the result, but one should keep
it in mind in case the returned relic density seems strange.

It is up to the user to prepare the input function and arrays accordingly before calling the routine.
All internal settings of the relic density routines are set in common blocks in dsrdcom.h. The
most important parameters that can be changed by the user are
Important parameters in dsrdcom.h
Purpose:
Provide a set of parameters, with which the internal behaviour of the relic
density routines can be changed.
Parameters
tharsi
i Size of the coannihilation, resonance and threshold arrays (default=50). Increase this size if you have more than 50 coannihilating particles, more than 50
resonances or more than 50 thresholds.
rdluerr i Logical unit number where error messages are printed.
rdtag c*12 Idtag that is printed in case of errors.
cosmin r8 . . .
waccd r8 . . .
dpminr r8 . . .
dpthr r8 . . .
wdiffr r8 . . .
wdifft r8 . . .
hstep r8 . . .
When the relic density has been calculated, the integer variable copart in dsandwcom.h is set to
indicate which coannihilating particles that have been included in the calculation. In Table 21.1,
the meaning if this variable is shown.

21.3.3

Brief description of the internal routines

Below, the remaining routines related to the relic density calculation are briefly mentioned. For
more details, we refer to the routines themselves.
Routine
Purpose
dsrdaddpt
To add one point in the Weff -peff table.

21.3. RELIC DENSITY – ROUTINES

Bit set
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

copart
Octal value Decimal value
1
1
2
2
4
4
10
8
20
16
40
32
100
64
200
128
400
256
1 000
512
2 000
1 024
4 000
2 048
10 000
4 096
20 000
8 192
40 000
16 384
100 000
32 768
200 000
65 536
400 000
131 072
1 000 000
262 144
2 000 000
524 288
4 000 000
1 048 576
10 000 000
2 097 152
20 000 000
4 197 304
40 000 000
8 388 608
100 000 000
16 777 216
200 000 000
33 554 432
400 000 000
67 108 864

269
PAW variables
cop1 bit cop2 bit
0
–
1
–
2
–
3
–
4
–
5
–
6
–
7
–
8
–
9
–
10
–
11
–
12
–
13
–
14
–
–
0
–
1
–
2
–
3
–
4
–
5
–
6
–
7
–
8
–
9
–
10
–
11

Particle
χ̃01
χ̃02
χ̃03
χ̃04
χ̃±
1
χ̃±
2
ẽ1
µ̃1
τ̃1
ẽ2
µ̃2
τ̃2
ν̃e
ν̃µ
ν̃τ
ũ1
c̃1
t̃1
ũ2
c̃2
t̃2
d˜1
s̃1
b̃1
d˜2
s̃2
b̃2

Table 21.1: The bits of copart are set to indicate which initial states that are included in the
coannihilation calculation. In the output file *.omegaco, the value of copart is written in octal
format. In PAW cop1 and cop2 are available. Check if a bit is set with btest(cop1,bit).

dsrdcom

dsrddof150
dsrddpmin

dsrdeqn
dsrdfunc
dsrdfuncs
dsrdlny
dsrdnormlz
dsrdqad

To initialize parameters in the common blocks in dsrdcom.h. If you want to
change these parameters yourself, include dsrdcom.h in your code and change
the parameters you want.
To prepare a table of the degrees of freedom as a function of the temperature
in the early Universe.
To return the allowed minimal distance in peff between two points in the Weff peff plane. The returned value depends on if there is a resonance present or not
at the given peff .
To solve the relic density equation by means of an implicit trapezoidal method
with adaptive stepsize and termination.
To return the invariant annihilation rate times the thermal distribution.
To provide dsrdfunc in a form suitable for numerical integration.
To return ln(Weff for a given peff .
To return a unit vector in a given direction.
To calculate the relic density with a quick-and-dirty method. It uses the ap-

270

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

dsrdqrkck
dsrdrhs
dsrdspline
dsrdstart
dsrdtab
dsrdthav
dsrdthclose
dsrdthlim
dsrdthtest
dsrdwdwdcos
dsrdwfunc
dsrdwintp
dsrdwintpch
dsrdwintrp
dsrdwres

proximative expressions in Kolb & Turner with the cross section expaned in
v.
To numerically integrate a function with a Runge-Kutta method
To calculate terms on the right-hand side in the Boltzmann equation.
To set up the table Weff -peff for spline interpolation.
To sort and store information about coannihilations, resonances and thresholds
in common blocks.
To set up the table Weff -peff .
To calculate the thermally averaged annihilation cross section at a given temperature.
???COMMENT #15: What does this function do?
To determine the end-points for the thermal average integration.
To check if a given entry in the Weff -peff table is at a threshold.
To write out a table of dWeff /d cos θ as a function of cos θ for a given peff .
To write out dsrdfunc for a given x = mχ /T .
To return the invariant rate Weff for any given peff by performing a spline
interpolation in the Weff -peff table.
To check the spline interpolation in the Weff -peff table and compare with a linear
interpolation.
To write out a table of the invariant rate Weff and some internal integration
variables and expressions.
To write out the table Weff -peff .

Below are brief descriptions of routines in src/rn not mentioned above
Routine
dsrdres
dsrdthr

21.4

Purpose
To prepare the array of resonances needed before the call to dsrdens.
To prepare the array of thresholds needed before the call to dsrdens.

Routine headers – fortran files

dsrdaddpt.f
subroutine dsrdaddpt(wrate,pres,deltap)
c_______________________________________________________________________
c add a point in rdrate table
c input:
c
wrate - invariant annihilation rate (real, external)
c
pres - momentum of the point to add
c
deltap - scaling factor used in dsrdtab
c
pmax - maximum p used in dsrdtab (from common block)
c common:
c
’dsrdcom.h’ - included common blocks
c used by dsrdtab
c author: joakim edsjo (edsjo@physto.se)
c modified: 01-01-31 paolo gondolo (paolo@mamma-mia.phys.cwru.edu)
c=======================================================================

21.4. ROUTINE HEADERS – FORTRAN FILES

dsrdcom.f
No header found.

dsrddof150.f
subroutine dsrddof150
c_______________________________________________________________________
c
table of effective degrees of freedom in the early universe
c
c
t [gev]
g_{\star}^{1/2}
g_{entropy}
for t_{qcd} = 150 mev
c
c
common:
c
’dsrdcom.h’ - included common blocks
c
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dsrddpmin.f
real*8 function dsrddpmin(p,dpmin)
c_______________________________________________________________________
c routine to determine if there is a narrow resonance present which
c jusifies changing dpmin to some fraction of lambda
c author: joakim edsjo, edsjo@physto.se
c date: april 30, 1998
c modified: april 30, 1998.
c=======================================================================

dsrdens.f
subroutine dsrdens(wrate,npart,mgev,dof,nrs,rm,rw,
& nt,tm,oh2,tf,ierr,iwar)
c_______________________________________________________________________
c present density in units of the critical density times the
c
hubble constant squared.
c input:
c
wrate - invariant annihilation rate (real, external)
c
npart - number of particles coannihilating
c
mgev - relic and coannihilating mass in gev
c
dof
- internal degrees of freedom of the particles
c
nrs
- number of resonances to take special care of
c
rm
- mass of resonances in gev
c
rw
- width of resonances in gev
c
nt
- number of thresholds to take special care of
c
do not include coannihilation thresholds (that’s automatic)
c
tm
- sqrt(s) of the thresholds in gev
c output:
c
oh2
- relic density parameter times h**2 (real*8)
c
tf
- freeze-out temperature in gev (real*8)
c
ierr - error code (integer)
c
dsbit 0 (1) = array capacity exceeded. increase nrmax in dsrdcom.h
c
1 (2) = a zero vector is given to dsrdnormlz.

271

272

CHAPTER 21. RD: RELIC DENSITY ROUTINES (GENERAL)

c
2 (4) = step size underflow in dsrdeqn
c
3 (8) = stepsize smaller than minimum hmin in dsrdeqn
c
4 (16) = too many steps in dsrdeqn
c
5 (32) = step size underflow in dsrdqrkck
c
6 (64) = step size smaller than miminum in dsrdqrkck
c
7 (128) = too many steps in dsrdqrkck
c
8 (256) = gpindp integration failed in dsrdthav
c
9 (512) = threshold array too small. increase tharsi in dsrdcom.h
c
iwar - warning code (integer)
c
dsbit 0 (1) = a difference of >5waccd in the ratio of w_spline
c
and w_linear is obtained due to delta_p10waccd in the ratio of w_spline
c
and w_linear is obtained due to delta_p15waccd in the ratio of w_spline
c
and w_linear is obtained due to delta_p10
c
5 Z1SS NOT LSP
c
7 XT EWSB IS BAD
c
8 MHL^2<0
c
9 if in our check any Higgs mass is NaN
c The following are not set, but can be set by uncommenting

22.2. ROUTINE HEADERS – FORTRAN FILES
c the appropriate lines in dsisasugra_check.f
c 10-14 dsisasugra_check has reported a possible error in the interface
c
while checking that chargino, neutralino and sfermion mass
c
matrices are diagonlized by isasugra
c Updated to ISAJET 7.74 by J. Edsjo and E.A. Baltz, 2006-02-20
c=======================================================================

dssusy isasugra.f
subroutine dssusy_isasugra(unphys,valid)
c-------------------------------------------------------------------c
replacement for dssusy for using ISASUGRA RGE evolution
c
author: E.A. Baltz, 2001 eabaltz@alum.mit.edu
c====================================================================

283

284

CHAPTER 22. RGE: MSUGRA INTERFACE (ISASUGRA) TO DARKSUSY

Chapter 23

src/rn:
Relic density of neutralinos
(wrapper for rd routines)
23.1

Relic density of neutralinos

The relic density routines in src/rd solve the Boltzmann equation for any cold dark matter particle
and it is up to us to tell it what kind of particles that can participate in coannihilations and what
the effective annihilation rate is. This set-up for neutralino dark matter is done in dsrdomega.
This routine is therefor the main routine the user should call, when the relic density of neutralinos
is wanted.
What it does internally is the following:
• It determines which particles that can coannihilate (based on their mass differences) and puts
these particles into a common block for the annihlation rate routines (dsanwx) and an array
for the relic density routines. The relic density routines need to know their masses and internal
degrees of freedom.
• It checks where we have resonances and thresholds and adds these to an array, which is
passed to the relic density routines. The relic density routines then use this knowledge to
make sure the tabulation of the cross section and the integrations are performed correctly at
these difficult points.
• It then calls the relic density routines to calculate the relic density.
The returned value is Ωχ h2 .

23.2

Routine headers – fortran files

dsrdomega.f
real*8 function dsrdomega(omtype,fast,xf,ierr,iwar,nfc)
**********************************************************************
*** function dsrdomega calculates omega h^2 for the mssm neutralino
*** uses the mssm routines and the relic density routines
*** input:
285

286CHAPTER 23. RN: RELIC DENSITY OF NEUTRALINOS (WRAPPER FOR RD ROUTINES)
***
omtype = 0 - no coann
***
1 - include all relevant coannihilations (charginos,
***
neutralinos and sleptons)
***
2 - include only coannihilations betweeen charginos
***
and neutralinos
***
3 - include only coannihilations between sfermions
***
and the lightest neutralino
***
fast =
0 - standard accurate calculation (accuracy better than 1%)
***
1 - faster calculation: (recommended unless extreme accuracy
***
is needed).
***
* requires less accuracy in tabulation of w_eff
***
2 - quick and dirty method, i.e. expand the annihilation
***
cross section in x (not recommended)
*** output:
***
ierr = error from dsrdens or dsrdqad
*** authors: joakim edsjo, paolo gondolo
*** date: 98-03-03
*** modified: 98-03-03
***
99-07-30 pg
***
02-02-27 joakim edsjo: including sfermion coanns
***
06-02-22 paolo gondolo: streamlined inclusion of coanns
**********************************************************************

dsrdres.f
***********************************************************************
*** subroutine dsrdres sets up the resonances before calling
*** dsrdens.
*** author: joakim edsjo, (edsjo@physto.se)
*** date: 98-03-03
***********************************************************************
subroutine dsrdres(npart,mgev,nres,rgev,rwid)

dsrdthr.f
***********************************************************************
*** subroutine dsrdthr sets up the thresholds before calling
*** dsrdens.
*** author: joakim edsjo, (edsjo@physto.se)
*** date: 98-03-03
***********************************************************************
subroutine dsrdthr(npart,mgev,nth,thgev)

dsrdwrate.f
************************************************************************
subroutine dsrdwrate(unit1,unit2,ich)
c_______________________________________________________________________
c write out a table of
c
initial cm momentum p

23.2. ROUTINE HEADERS – FORTRAN FILES
c
invariant annihilation rate w
c input:
c
unit1 - logical unit to write total rate to (integer)
c
unit2 - logical unit to write partial differ. rates to (integer)
c
ich
- what initial channel to look at:
c
ich=1 nn-ann. ich=2 cn-ann. ich=3 cc-ann
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c changes by je to include prtial in partials and coannihilation routines
c=======================================================================

287

288CHAPTER 23. RN: RELIC DENSITY OF NEUTRALINOS (WRAPPER FOR RD ROUTINES)

Chapter 24

src/su:
General SUSY model setup:
masses, vertices etc
24.1

Supersymmetric model

We will here review the definition of the MSSM as given in [1].

24.1.1

Parameters

In our notation, the superpotential and the soft supersymmetry-breaking scalar potential minimal
supersymmetric standard model (MSSM) with R-parity conservation [4] read respectively


(24.1)
W = ǫij −ê∗R hE l̂iL Ĥ1j − d̂∗R hD q̂iL Ĥ1j + û∗R hU q̂iL Ĥ2j − µĤ1i Ĥ2j ,

Vsoft = ǫij −ẽ∗R AE hE l̃iL H1j − d̃∗R AD hD q̃iL H1j + ũ∗R AU hU q̃iL H2j − BµH1i H2j
+h.c.)

+H1i∗ m21 H1i + H2i∗ m22 H2i
2 i
i∗
2 i
∗
2
∗
2
∗
2
+q̃i∗
L MQ q̃L + l̃L ML l̃L + ũR MU ũR + d̃R MD d̃R + ẽR ME ẽR .

(24.2)

Here i and j are SU(2) indices (ǫ12 = +1), h’s, A’s and M’s are 3 × 3 matrices in generation space,
and the other boldface letters are vectors in generation space.
The current version of DarkSUSY uses only a restricted set of parameters. Namely the number
of free parameters (a grand total of 124 [9]) is reduced by setting the off-diagonal elements of the
A’s and M’s to zero and imposing CP conservation (except in the CKM matrix).

24.1.2

Mass spectrum

For easy reference, we now give the particle mass matrices, together with our convention for the
mixing matrices.
Concerning the Higgs sector, we choose as independent parameters tan β and the mass mA of
the CP-odd Higgs boson. The code provides six options for the calculation of the Higgs masses:
higloop=0: tree level formulas; higloop=1: the effective potential approach in [10, 11] (correcting
the sign of µ in eq. (4) of [11]); higloop=2: the effective potential approach in [12] with addition
289

290

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

Channel
i=
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

H10
j=1
cc̄
bb̄
tt̄
τ +τ −
W +W −
Z 0Z 0
–
H20 H20
H30 H30
H +H −
–
–
ZH30
W + H − /W − H +
µ+ µ−
ss̄
gg
γγ
Z 0γ
f˜f˜′

Higgs boson
H20
H30
j=2
j=3
cc̄
cc̄
bb̄
bb̄
tt̄
tt̄
τ +τ −
τ +τ −
W +W −
–
Z 0Z 0
–
H10 H10
–
–
–
H30 H30
–
H +H −
–
–
ZH10
–
ZH20
0
ZH3
–
W + H − /W − H + W + H − /W − H +
µ+ µ−
µ+ µ−
ss̄
ss̄
gg
gg
γγ
γγ
Z 0γ
Z 0γ
f˜f˜′
f˜f˜′

H+
j=4
ud¯
us̄
ub̄
cd¯
cs̄
cb̄
td¯
ts̄
tb̄
νe e+
νµ µ+
ντ τ +
W + H10
W + H20
W + H30
–
–
–
–
f˜f˜′

Table 24.1: Higgs partial widths hdwidth(i,j). Index i refers to the decay channel and index j to the
Higgs boson. All widths are given in GeV. Note that typically we have that mH2 < mH3 < mH + <
mH1 so many of these decay channels are not kinematically allowed, but included for completeness.
If the HDECAY interface is used, the channels where mH2 < mH3 < mH + < mH1 is not satisfied
are not included. Channels 16–19 are only included if HDECAY is used.

of D-terms and correction of some signs and numerical factors; higloop=3: the analytical approximations to the RGE-improved effective potential in [13]; higloop=4: the pole mass calculation in
[14]; higloop=5: FeynHiggs (requires FeynHiggs to be installed) [163]; higloop=6: FeynHiggsFast
(default) [164].
The masses of the Higgs bosons are obtained from
M2H

=



m2Z cos2 β + m2A sin2 β + ∆11
− sin β cos β(m2Z + m2A ) + ∆21

m2H ± = m2A + m2W + ∆± .

− sin β cos β(m2Z + m2A ) + ∆12
m2Z sin2 β + m2A cos2 β + ∆22



(24.3)
(24.4)

The quantities ∆ij and ∆± are the one-loop radiative corrections, calculated acording to the value
of higloop as described above. Diagonalization of M2H gives the two CP-even Higgs boson masses,
mH1,2 , and their mixing angle α (−π/2 < α < 0). For higloop=4, the pole masses are then obtained
2
solving m2pole
= m2Hi + Πii (m2pole
Hi
Hi ) − Πii (0), where Πii (p ) is Hi Hi the self-energy. In this case,
mH3 is the pole mass and mA is the running mass.
The Higgs widths are calculated at tree level, but with QCD corrections [165]. The decays to
supersymmetric particles are also included in the total width, so the sum of the partial widths in
Table 24.1 does not necessarily sum up to the total width given in width(k). The loop corrections
are also available via an interface to HDECAY.
The neutralinos χ̃0i are linear combinations of the neutral gauginos B̃, W̃3 and of the neutral

24.1. SUPERSYMMETRIC MODEL

291

higgsinos H̃10 , H̃20 . In this basis, we write their mass matrix as

Mχ̃01,2,3,4



M1
0

=
−mZ sW cβ
+mZ sW sβ

0
M2
+mZ cW cβ
−mZ cW sβ

−mZ sW cβ
+mZ cW cβ
δ33
−µ


+mZ sW sβ
−mZ cW sβ 
,
−µ
δ44

(24.5)

with cW = cos θW , sW = sin θW , cβ = cos β, and sβ = sin β. Here δ33 and δ44 are radiative
corrections important when two higgsinos are close in mass. Their explicit expressions are from
ref. [15]. To neglect these radiative corrections set neuloop=0 instead of neuloop=1 (default). The
neutralino mass eigenstates are written as
χ̃0i = Ni1 B̃ + Ni2 W̃ 3 + Ni3 H̃10 + Ni4 H̃20 .

(24.6)

The phases of Nij are chosen so that the neutralino masses mχ̃0i ≥ 0.
The charginos are linear combinations of the charged gauge bosons W̃ ± and of the charged
higgsinos H̃1− , H̃2+ . Their mass matrix,
√


2mW sin β
M2
Mχ̃± = √
,
(24.7)
2mW cos β
µ
is diagonalized by the following linear combinations
χ̃−
i
χ̃+
i

=
=

Ui1 W̃ − + Ui2 H̃1− ,

(24.8)

Vi2 H̃1+ .

(24.9)

Vi1 W̃

+

+

We choose det(U ) = 1 and U ∗ Mχ̃± V † = diag(mχ̃± , mχ̃± ) with non-negative chargino masses
1
2
mχ̃± ≥ 0.
i
When discussing the squark mass matrix including mixing, it is convenient to choose a basis
where the squarks are rotated in the same way as the corresponding quarks in the standard model.
We follow the conventions of the particle data group [32] and put the mixing in the left-handed
d-quark fields, so that the definition of the Cabibbo-Kobayashi-Maskawa matrix is K = V1 V†2 ,
where V1 (V2 ) rotates the interaction left-handed u-quark (d-quark) fields to mass eigenstates. For
sleptons we choose an analogous basis, but due to the masslessness of neutrinos no analog of the
CKM matrix appears.
˜
We then obtain the general 6 × 6 ũ- and d-squark
mass matrices:
 2

u
MQ + m†u mu + DLL
1
m†u (A†U − µ∗ cot β)
2
Mũ =
,
(24.10)
u
(AU − µ cot β)mu
M2U + mu m†u + DRR
1
 † 2

d
K MQ K + md m†d + DLL
1
m†d (A†D − µ∗ tan β)
2
Md̃ =
,
(24.11)
d
(AD − µ tan β)md
M2D + m†d md + DRR
1

and the general sneutrino and charged slepton mass matrices

Mẽ2 =
Here



ν
M2ν̃ = M2L + DLL
1
e
M2L + me m†e + DLL
1
(AE − µ tan β)me

m†e (A†E − µ∗ tan β)
e
1
M2E + m†e me + DRR

f
DLL
= m2Z cos 2β(T3f − ef sin2 θw ),
f
DRR
= m2Z cos 2βef sin2 θw .

(24.12)


.

(24.13)

(24.14)
(24.15)

In the chosen basis, mu = diag(mu , mc , mt ), md = diag(md , ms , mb ) and me = diag(me , mµ , mτ ).

292

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

Table 24.2: Particle codes (synonyms are separated by commas).
νe
e
νµ
µ
ντ
τ
u
d
c
s
b
t

knue,knu(1)
ke,kl(1)
knumu,knu(2)
kmu,kl(2)
knutau,knu(3)
ktau,kl(3)
ku,kqu(1)
kd,kqd(1)
kc,kqu(2)
ks,kqd(2)
kb,kqd(3)
kt,kqu(3)

γ
W±
Z0
g

kgamma
kw
kz
kgluon

H0
h0
A0
H±
G0
G±

kh1
kh2
kh3
khc
kgold0
kgoldc

χ̃0i
χ̃±
k
g̃
ν̃e
ẽ1
ẽ2
ν̃µ
µ̃1
µ̃2
ν̃τ
τ̃1
τ̃2

kn(i) i = 1 . . . 4
kcha(k) k = 1, 2
kgluin
ksnue,ksnu(1)
kse(1),ksl(1)
kse(2),ksl(4)
ksnumu,ksnu(2)
ksmu(1),ksl(2)
ksmu(2),ksl(5)
ksnuta,ksnu(3)
kstau(1),ksl(3)
kstau(2),ksl(6)

ũ1
ũ2
d˜1
d˜2
c̃1
c̃2
s̃1
s̃2
b̃1
b̃2
t̃1
t̃2

ksu(1),ksqu(1)
ksu(2),ksqu(4)
ksd(1),ksqd(1)
ksd(2),ksqd(4)
ksc(1),ksqu(2)
ksc(2),ksqu(5)
kss(1),ksqd(2)
kss(2),ksqd(5)
ksb(1),ksqd(3)
ksb(2),ksqd(6)
kst(1),ksqu(3)
kst(2),ksqu(6)

The slepton and squark mass eigenstates f˜k (ν̃k with k = 1, 2, 3 and ẽk , ũk and d˜k with k =
1, . . . , 6) diagonalize the previous mass matrices and are related to the current sfermion eigenstates
f̃L and f̃R via (a = 1, 2, 3)
f˜La
f˜Ra

=

=

6
X

k=1
6
X

f˜k Γ∗ka
FL ,

(24.16)

f˜k Γ∗ka
FR.

(24.17)

k=1

The squark and charged slepton mixing matrices ΓUL,R , ΓDL,R and ΓEL,R have dimension 6 × 3,
while the sneutrino mixing matrix ΓνL has dimension 3 × 3.
This version of DarkSUSY allows only for diagonal matrices AU , AD , AE , MQ , MU , MD , ME ,
and ML . This ansatz, while not being the most general one, implies the absence of tree-level flavor
changing neutral currents in all sectors of the model. In this case, the squark mass matrices can
be diagonalized analytically. For example, for the top squark one has, in terms of the top squark
mixing angle θt̃ ,
t̃2 t̃
1 t̃
2 t̃
1 t̃
Γt̃UL
= sin θt̃ .
(24.18)
= −Γt̃UR
= cos θt̃ ,
ΓUL
= Γt̃UR
Special values of the sfermion masses can be set with the parameters msquarks, and msleptons.
If msquarks=msleptons=0, the sfermion masses are obtained with the diagonalization described
above. If msquarks>0 (or msleptons>0), all squark masses are set to msquarks (or all slepton
masses to msleptons). Finally, if msquarks<0 (or msleptons<0), the squark (or slepton) masses are
set equal to the neutralino mass but never less than |msquarks| (or |msleptons|). This is to provide
the lightest possible sfermions compatible with a neutralino LSP. In all of these cases, there is no
mixing between sfermions.
The particle masses are available in an array mass(p), where p is the particle code from table
24.1.2. Similarly, particle decay width are available as width(p), but currently only the width of the
Higgs bosons are calculated, the other particles having fictitious widths of 1 or 5 GeV (for the sole
purpose of regularizing annihilation amplitudes close to poles).

24.1.3

Three-particle vertices

L
R
We define three-particle vertices gl(i,j,k)= gijk
and gr(i,j,k)= gijk
as follows. We adopt the convention that the order of the particles in the indices is the order in which they appear in the

24.1. SUPERSYMMETRIC MODEL

293

corresponding lagrangian term, so the last particle is always entering. If there are charged particles
in the vertex, they are both assumed positively charged, and the particle that exits the vertex is
indexed before the particle that enters.
• Three scalar bosons:

Lint = gφi φj φk mW φi φj φk

(24.19)

where φi is a Higgs or a Goldstone boson. In this case, gl=gr=g. Available vertices are φi φj φk
= Hi0 Hj0 Hk0 , Hi0 H − H + , Hi0 A0 A0 , Hi0 G0 G0 , Hi0 G− G+ , Hi0 G− H + , Hi0 G− G+ , A0 G− H + ,
A0 G0 Hi0 , and permutations.
• Two scalar and one vector bosons:

↔

Lint = gV φ1 φ2 V µ φ1 i ∂ µ φ2 .

(24.20)

Available vertices are V φ1 φ2 = Z 0 Hi0 A0 , Z 0 H − H + , γH − H + , W − H + A0 , W − H + Hi0 , and
permutations.
• One scalar and two vector bosons:
Lint = gφV1 V2 mW gµν φV1µ V2ν

(24.21)

Available vertices are φV1 V2 = Hi0 W − W + , Hi0 Z 0 Z 0 .
• Three vector bosons:
igV1 V2 V3 [(k1 − k3 )ν gµλ + (k3 − k2 )µ gλν + (k2 − k1 )gµν ]

(24.22)

with all momenta incoming and assigned as V1µ (k1 ), V2ν (k2 ) and V3λ (k3 ). Available vertices
are Z 0 W − W + and γW − W + .
• One scalar boson and two Dirac fermions:
R
L
P )ψ2
P + gφψ
Lint = φψ 1 (gφψ
1 ψ2 R
1 ψ2 L

(24.23)

Available vertices are φψ1 ψ2 =
• One vector boson and two Dirac fermions:
Lint = Vµ ψ 1 γ µ (gVL ψ1 ψ2 PL + gVRψ1 ψ2 PR )ψ2

(24.24)

Available vertices are V ψ1 ψ2 =
• One scalar boson, one Dirac and one Majorana fermion:
L
R
Lint = φψ(gφψχ
PL + gφψχ
PR )χ

(24.25)

Available vertices are φψχ =
• One vector boson, one Dirac and one Majorana fermion:
Lint = Vµ ψγ µ (gVL ψχ PL + gVRψχ PR )χ

(24.26)

Available vertices are V ψχ =
• One scalar boson and two Majorana fermions:
Lint =
Available vertices are. . .

(24.27)

294

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

• One vector boson and two Majorana fermions:
Lint =

(24.28)

Explicit expressions for the coupling constants gijk can be obtained in [4], with radiative corrections to trilinear scalar couplings in [33]. We have rederived from the superpotential all vertices
we have implemented.
Implemented vertices: those listed above plus Z 0 W ± W ∓ , Z 0 Hi0 Hi0 , W ± H ∓ A0 , W ± H ∓ Hi0 ,
0
Hi W ± W ∓ , Hi0 Z 0 Z 0 , Z 0 A0 H, Hi0 A0 A0 , A0 f f , Hi0 f f , Z 0 f f , Z 0 χ̃0 χ̃0 , Hi0 χ̃0 χ̃0 , Z 0 χ̃0 χ̃0 , W ∓ χ̃0 χ̃± ,
H ∓ χ̃0 χ̃± , q̃g̃q, f˜χ̃0 f , Hi0 χ̃± χ̃∓ , A0 χ̃± χ̃∓ , W ± f f ′ , H ± f f ′ , γW ± W ∓ , γH ± H ∓ , Z 0 χ̃± χ̃∓ , γ χ̃± χ̃∓ ,
γf f , GHH, GGH, G∓ χ˜0 χ̃± .
In appendix ??, most of the Feynman rules and the explicit expressions for the g’s are found.

24.1.4

Accelerator bounds

Accelerator bounds can be checked by a call to dsacbnd(p), where p=0 checks all implemented
bounds, p=1 leaves out the bound from b → sγ, and p=2 checks only b → sγ. The accelerator
bounds implemented in version 3.10.2 (July 1999) are listed in table 24.3. The branching ratio
BR(b → sγ) is calculated to 1-loop using the expressions in ref. [16], including or not including
1-loop QCD corrections according to the switch bsgqcd (=0 without, =1 with [default]).
Table 24.3: Accelerator bounds implemented in version 3.10.2 (July 1999) COMMENT #17:
Update? Include? Throw away?
Bound
mH ± > 59.5GeV
mh > [82.5 + 10.5 sin2 (β − α)]GeV
mχ̃+ > 91GeV if mχ̃01 − mχ̃+ > 4GeV
2
2
mχ̃+ > 64GeV if mχ̃01 > 43GeV and mχ̃+ > mχ̃02
2
2
mχ̃+ > 47GeV if mχ̃01 > 41GeV
2
mχ̃+ > 99GeV
1
mχ̃01 > 23GeV if tan β > 3
mχ̃01 > 20GeV if tan β > 2
mχ̃01 > 12.8GeV if mν̃ < 200GeV
mχ̃01 > 10.9GeV
mχ̃02 > 44GeV
mχ̃03 > 102GeV
mχ̃04 > 127GeV
mg̃ > 212GeV if mq̃k < mg̃
mg̃ > 162GeV
mq̃k > 90GeV if mg̃ < 410GeV
mq̃k > 176GeV if mg̃ < 300GeV
mq̃k > 224GeV if mg̃ > mg̃
mẽ > 78GeV if mχ̃01 < 73GeV
mµ̃ > 71GeV if mχ̃01 < 66GeV
mτ̃ > 65GeV if mχ̃01 < 55GeV
mν̃ > 44.4GeV
1 × 10−4 < BR(b → sγ) < 4 × 10−4
Γinv
Z < 502.4MeV

Ref.
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[23]
[24]
[25]
[26]
[26]
[23]
[27]
[28]
[29]
[27]
[30]
[31]
[31]
[31]
[32]
[32]
[32]

24.2. GENERAL SUPERSYMMETRY – ROUTINES

24.2

295

General supersymmetry – routines

Input parameters, options, results, etc. are contained in common blocks in the file dssusy.h, which
the user has to include. The input parameters are (a = 1, 2, 3)
ma= mA ,
tanbe= tan β,
mu= µ,
m1= M1 ,
m2= M2 ,
m3= M3 ,
asofte(a)= AEaa ,
asoftu(a)= AUaa ,
2
2
2
asoftd(a)= ADaa ,
mass2q(a)= MQaa
, mass2l(a)= MLaa
, mass2u(a)= MUaa
,
2
2
mass2d(a)= MDaa , mass2e(a)= MEaa .
The options are (see previous subsections for a description)
higloop choice of tree-level or radiatively corrected Higgs boson masses;
neuloop choice of tree-level or radiatively corrected neutralino masses;
msquarks,msleptons choice of squark and slepton masses.
To initialize DarkSUSY for a new model, you should call
subroutine dssusy(unphys,hwarning)
Purpose:
To calculate the particle spectrum, widths and couplings.
Output:
unphys i non-zero if the model is unphysical
hwarning i non-zero if the Higgs code has issued a warning.
which calculates couplings, masses and some basic cross sections.
The following subroutines specify the values of the model parameters, and read/write them to
a file. The user should create his own versions by editing a copy of them. Please call them with a
different name.
subroutine dsgive model(mu,m2,ma,tanbe,msq,atm,abm)
Purpose:
Set the MSSM parameters as specified by the arguments.
Inputs:
mu
r8 The µ parameter in GeV.
m2
r8 The M2 parameter in GeV.
ma
r8 The mass of the CP-odd Higgs boson, mA in GeV.
tanbe r8 tan β.
msq
r8 Sets MQ , etc. to a common mass scale m0 in GeV.
atm
r8 Sets At in units of m0 (range: -3 — 3).
abm
r8 Sets Ab in units of m0 (range: -3 — 3).
subroutine dsrndm model(mftyp)
Purpose:
Sets the susy parameters in a random way. Parameter ranges and probability
distributions are set inside.
Inputs:
mftyp
i =1: M1 is related to M2 through GUT relations.
=2: M1 and M2 are generated independently.
function rnduni(iseed,a,b)
r8
Purpose:
To give a random number uniformly distributed between a and b.
Inputs:
iseed
i Seed for the random number generator. Must be a negative number at the first
call and should not be changed from call to call.
a
r8 Lower limit of returned number.
b
r8 Upper limit of returned number.
function rndlog(iseed,a,b)
r8
Purpose:
To give a random number logarithmically distributed between a and b.
Inputs:
iseed
i Seed for the random number generator. Must be a negative number at the first
call and should not be changed from call to call.

296

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC
a
b

r8
r8

Lower limit of returned number.
Upper limit of returned number.

function rndsgn(iseed)
r8
Purpose:
Returns ±1 with equal probability.
Inputs:
iseed
i Seed for the random number generator. Must be a negative number at the first
call and should not be changed from call to call.
subroutine write model(lunit,mftyp)
Purpose:
Writes out the model parameters to the file opened as unit lunit (formatted).
Inputs:
lunit
i Unit number to write output to.
mftyp
i =1: Only M2 is written since M1 is related to M2 through GUT relations.
=2: Both M1 and M2 are written.
subroutine read model(lunit,nmodel,mftyp)
Purpose:
Reads in the model parameters from the file opened as unit unit (formatted).
Inputs:
lunit
i Unit number to read from.
nmodel i =0: The next model is read.
=n: Only the n:th model is read.
mftyp
i =1: Only M2 is read since M1 is related to M2 through GUT relations.
=2: Both M1 and M2 are read.
The following subroutines are useful in the analysis.
subroutine widtag(unit)
Purpose:
Write the model identification tag to unit unit.
Inputs:
unit
i Unit number to write to.
subroutine wspctm(unit)
Purpose:
Write the particle mass spectrum and mixing matrices to unit unit.
Inputs:
unit
i Unit number to write to.
subroutine wvertx(unit)
Purpose:
Write all non-vanishing three-particle vertices to unit unit.
Inputs:
unit
i Unit number to write to.
subroutine wunph(unit)
Purpose:
Write the reason for which the model is not physically acceptable (tachyons,
etc.) to unit unit.
Inputs:
unit
i Unit number to write to.
subroutine wexcl(unit)
Purpose:
Write the reason(s) for which the model is experimentally excluded to unit u
⁀ nit.
Inputs:
unit
i Unit number to write to.
subroutine dswhwar(unit)
Purpose:
Write the reason(s) for which the Higgs calculation issued warnings to unit unit.
Inputs:
unit
i Unit number to write to.

24.3. ROUTINE HEADERS – FORTRAN FILES

24.3

Routine headers – fortran files

dsb0loop.f
complex*16 function dsb0loop(q,m1,m2)
c_______________________________________________________________________
c the two-point function b0(q,m1,m1).
c
uses two-point function b_0 from m. drees, k. hagiwara and a.
c
yamada, phys. rev. d45 (1992) 1725.
c author: joakim edsjo (edsjo@physto.se) 97-02-11
c=======================================================================

dschasct.f
subroutine dschasct
c_______________________________________________________________________
c chargino masses and mixings.
c common:
c
’dssusy.h’ - file with susy common blocks
c called by susyin or mrkin.
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994,1995
c
940407 correction to chargino mixing
c
990724 drop v1,v2 (pg)
c=======================================================================

dsfeynhiggsfast.f
&
&
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

subroutine dsfeynhiggsfast(hwar,HM,mh,hc,halpha,drho,
ATop,ABot,inmt,inmb,my,M2,mqtl,mqtr,mqbl,mqbr,
mgluino,mh3,tanb)

----------------------------------------------------------------Implementation of FeynHiggsFast in DarkSUSY by J. Edsjo 2000-04-25
All names of subroutines and functions that clashed with the
full FeynHiggs names have _fast appended to them. In most cases,
they are probably the same routines though, but to be on the
safe side, the names were changed.
Output: mh is lighter scalar Higgs mass, HM is heavier Higgs mass
----------------------------------------------------------------FeynHiggsFast
=============
Calculation of the masses of the neutral CP-even
Higgs bosons in the MSSM
Author: Sven Heinemeyer
Based on hep-ph/9903404
by S. Heinemeyer, W. Hollik, G. Weiglein

297

298

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

c
In case of problems or questions,
c
contact Sven Heinemeyer :-)
c
email: Sven.Heinemeyer@desy.de
c
c
FeynHiggs homepage:
c
http://www-itp.physik.uni-karlsruhe.de/feynhiggs/
c
c -------------------------------------------------------------c
c Warnings implemented by J. Edsjo, 2000-04-25
c
c
Bit Value
c Bits of hwar:
0 - 1:
Potential numerical problems at 1-loop
c
1 - 2:
Potential numerical problems at 2-loop
c
2 - 4:
Error with not used H2 mass expression 1-loop
c
3 - 8:
Error with not used H2 mass expression 2-loop
c
4 - 16: Error with not used H2 mass expression 2-loop
c
5 - 32: 1-loop Higgs sector not OK
c
6 - 64: 2-loop Higgs sector not OK
c
7 - 128: Stop or sbottom masses not OK
c---------------------------------------------------------------

dsfindmtmt.f
subroutine dsfindmtmt
No header found.

dsg0loop.f
c

function dsg0loop(qsq,m1sq,m2sq)
a loop function

dsg4set.f
subroutine dsg4set(kp1,kp2,kp3,kp4,rvrtx,ivrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx=rcrtx+I*ivrtx
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4set12.f
subroutine dsg4set12(kp1,kp2,kp3,kp4,rvrtx,ivrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx=rcrtx+I*ivrtx
c case of two neutral particles (1 and 2)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

24.3. ROUTINE HEADERS – FORTRAN FILES

dsg4set1234.f
subroutine dsg4set1234(kp1,kp2,kp3,kp4,rvrtx,ivrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx=rcrtx+I*ivrtx
c case of four neutral particles
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4set13.f
subroutine dsg4set13(kp1,kp2,kp3,kp4,rvrtx,ivrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx=rcrtx+I*ivrtx
c case of two neutral particles (1 and 3)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4set23.f
subroutine dsg4set23(kp1,kp2,kp3,kp4,rvrtx,ivrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx=rcrtx+I*ivrtx
c case of two neutral particles (2 and 3)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4set34.f
subroutine dsg4set34(kp1,kp2,kp3,kp4,rvrtx,ivrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx=rcrtx+I*ivrtx
c case of two neutral particles (3 and 4)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4setc.f
subroutine dsg4setc(kp1,kp2,kp3,kp4,vrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4setc12.f
subroutine dsg4setc12(kp1,kp2,kp3,kp4,vrtx)

299

300

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx
c case of two neutral particles (1 and 2)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4setc1234.f
subroutine dsg4setc1234(kp1,kp2,kp3,kp4,vrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx
c case of four neutral particles
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4setc13.f
subroutine dsg4setc13(kp1,kp2,kp3,kp4,vrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx
c case of two neutral particles (1 and 3)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4setc23.f
subroutine dsg4setc23(kp1,kp2,kp3,kp4,vrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx
c case of two neutral particles (2 and 3)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsg4setc34.f
subroutine dsg4setc34(kp1,kp2,kp3,kp4,vrtx)
c_______________________________________________________________________
c auxiliary subroutine to dsvertx for quartic couplings
c set the value of the 4-particle vertex to vrtx
c case of two neutral particles (3 and 4)
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsgive model.f
subroutine dsgive_model(amu,am2,ama,atanbe,amsq,atm,abm)
c---------------------------------------------------------------------c

24.3. ROUTINE HEADERS – FORTRAN FILES
c
To specify the supersymmetric parameters of a model.
c
Inputs:
c
amu - mu parameter (GeV)
c
am2 - M2 parameter (GeV)
c
ama - Mass of the CP-odd Higgs boson A (or H3)
c
atanbe - ratio of Higgs vacuum expecation values, tan(beta)
c
amsq - common sfermion mass scale, M_sq_tilde (GeV)
c
atm - trilinear term in units of amsq, top sector
c
atb - trilinear term in units of amsq, bottom sector
c
Outputs:
c
The common blocks are set corresponding to the values above
c
Author: Paolo Gondolo, gondolo@mppmu.mpg.de
c
Date: 2000
c
Modified: Joakim Edsjo, edsjo@physto.se
c
2001-02-13 - setting of idtag taken away
c----------------------------------------------------------------------

dshgfu.f
&

subroutine dshgfu(ma,tanb,mq,mur,md,mtop,at,ab,mu,vh,
stop1,stop2,v,mz,alpha1,alpha2,alpha3z)

c
c carena, quiros, wagner gfun -- adapted to darksusy by gondolo
c

dshigferqcd.f
subroutine dshigferqcd
c_______________________________________________________________________
c THIS ROUTINE IS OBSOLETE. USE DSHIGWID INSTEAD.
c qcd corrections to the widths of the decays H^0_i --> c cbar, b bbar,
c t tbar and to the corresponding vertices
c
c
’dssusy.h’ - file with susy common blocks
c
c typed in from formulas in Djouadi, Spira and Zerwas, astro-ph/9511344
c and Spira, astro-ph/9705337
c
c author: piero ullio, ullio@sissa.it, 02-09-13
c=======================================================================

dshigsct.f
subroutine dshigsct(unphys,hwarning)
c_______________________________________________________________________
c higgs bosons masses and mixings
c common:
c
’dssusy.h’ - file with susy common blocks
c called by dssusy.
c needs dssfesct.
c higloop = 0 tree-level

301

302

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

c
1 brignole-ellis-ridolfi-zwirner eff. pot.
c
2 drees-nojiri eff. pot.
c
3 carena-espinosa-quiros-wagner rg-impr. eff. pot.
c
(uses subh.f.)
c
4 carena-quiros-wagner impr. eff. pot.
c
(uses subhpole2.f)
c
5 use FeynHiggs by Heinemeyer, Hollik and Weiglein
c
requires full FeynHiggs to be installed (see below)
c
6 use FeynHiggsFast by Heinemeyer, Hollik and Weiglein
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994,1995
c modified by: joakim edsjo, edsjo@physto.se, 2000-09-01
c modified by: paolo gondolo, 1999-2000
c=======================================================================

dshigwid.f
subroutine dshigwid
c_______________________________________________________________________
c common:
c
’dssusy.h’ - file with susy common blocks
c needs chasct, neusct, sfesct, higsct, vertx.
c merging of dshwidths and dshigferqcd
c author: Piero Ullio (ullio@sissa.it) 020917
c
partly based on dshwidth by P. Gondolo and J. Edsjo
c
formulas from higgs hunters guide,
c
Djouadi, Spira and Zerwas, hep-ph/9511344
c
and Spira, hep-ph/9705337
c=======================================================================

dshlf2.f
function dshlf2(x,y)
c paolo gondolo

dshlf3.f
function dshlf3(p2,y1,y2)
c paolo gondolo

dsmodelsetup.f
subroutine dsmodelsetup(unphys,hwarning)
c_______________________________________________________________________
c set up global variables for the supersymmetric model routines.
c If rate routines are going to be called afterwards, dsprep should
c be called after this routine, like it is done in dssusy.
c You should only call this routine directly yourself if you know
c what you are doing. If you are the least unsure, call dssusy instead.
c common:
c
’dssusy.h’ - file with susy common blocks
c uses sconst, sfesct, chasct, higsct,
c
neusct, vertx, hwidths.

24.3. ROUTINE HEADERS – FORTRAN FILES
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994,1995
c=======================================================================

dsmqpole1loop.f
real*8 function dsmqpole1loop(mqmq)
No header found.

dsneusct.f
subroutine dsneusct
c_______________________________________________________________________
c neutralino masses and mixings. base is b-ino, w3-ino, h1-ino, h2-ino.
c common:
c
’dssusy.h’ - file with susy common blocks
c uses quartic.
c called by susyin or mrkin.
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994,1995
c history:
c
940528 readability improvement (pg)
c
950316 order by increasing mass (pg)
c
951110 positive mass convention (pg)
c
970211 loop corrections via switch neuloop (joakim edsjo)
c
990724 drop v1,v2 and change mass scale to max(mz,m1,m2,mu) (pg)
c=======================================================================

dspole.f
&
&

subroutine dspole(mchi,ma,tanb,mq,mur,mdr,
mtop,at,ab,mu,mh,mhp,hm,hmp,amp,sa,ca,
v,mz,alpha1,alpha2,alpha3z,sint,lambda,prtlevel,ierr)

c
c carena, quiros, wagner -- adapted to darksusy by gondolo
c

dsprep.f
*****************************************************************************
***
subroutine dsprep calculates different frequently used cross
***
sections, annihilation branching ratios and sets different common
***
block variable when a new model has been defined. this routine
***
hasto be called before the relic density or any rates are
***
calculated and is called from dssusy.
***
*** author: joakim edsjo edsjo@physics.berkeley.edu
*** date: 98-02-27
*** modified: 99-02-23 pg, 00-08-09 je
*****************************************************************************
subroutine dsprep

303

304

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

dsqindx.f
function dsqindx(kp1,kp2,kp3,kp4)
c_______________________________________________________________________
c auxiliary function to dsvertx for quartic couplings
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

dsralph3.f
real*8 function dsralph3(mscale)
No header found.

dsralph31loop.f
real*8 function dsralph31loop(mscale)
No header found.

dsrghm.f
&
&

subroutine dsrghm(mchi,ma,tanb,mq,mur,md,mtop,au,ad,mu,
mhp,hmp,sa,ca,tanba,v,mz,alpha1,alpha2,alpha3z,
lambda,prtlevel)

c
c carena, quiros, wagner -- adapted to darksusy by gondolo
c

dsrmq.f
real*8 function dsrmq(mscale,kpart)
No header found.

dsrmq1loop.f
real*8 function dsrmq1loop(mscale,kpart)
No header found.

dssettopmass.f
subroutine dssettopmass(mtoppole)
No header found.

dssfesct.f
subroutine dssfesct(unphys)
c_______________________________________________________________________
c sfermion masses and mixings.
c options:
c
msquarks=0 : squark masses and mixing from mass matrix
c
msquarks>0 : all squark masses equal to msquarks, no mixing
c
msquarks<0 : all squark masses = max(lsp,-msquarks), no mixing
c
msleptons=0 : squark masses and mixing from mass matrix

24.3. ROUTINE HEADERS – FORTRAN FILES
c
msleptons>0 : all squark masses equal to msleptons, no mixing
c
msleptons<0 : all squark masses = max(lsp,-msleptons), no mixing
c common:
c
’dssusy.h’ - file with susy common blocks
c called by susyin.
c needs neusct.
c author: paolo gondolo 1994-1999
c
981000 correction to diagonalization of mass matrices
c
941100 addition of generation-mixing for squarks
c
950100 correction to charged slepton mass matrix
c
990715 pg options msquarks and msleptons added
c
990724 pg drop chankowski constants
c
020219 pg better reporting of unphys
c
020405 pg matrix diagonalization rewritten to handle degenerate case
c=======================================================================

dsspectrum.f
subroutine dsspectrum(unphys,hwarning)
c_______________________________________________________________________
c particle spectrum and mixing matrices
c common:
c
’dssusy.h’ - file with susy common blocks
c uses sconst, sfesct, chasct, higsct, neusct
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994-1999
c=======================================================================

dssuconst.f
subroutine dssuconst
c_______________________________________________________________________
c useful constants
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo 1994-1999
c modified: 031105 neutrino’s yukawa fixed (pg)
c=======================================================================

dssusy.f
subroutine dssusy(unphys,hwarning)
c_______________________________________________________________________
c set up global variables for the supersymmetric model routines
c and prepares the rate routines for a new model.
c author: Joakim Edsjo, edsjo@physto.se, 2001
c=======================================================================

dsvertx.f
subroutine dsvertx
c_______________________________________________________________________
c some couplings used in DarkSUSY

305

306

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994-c history:
c
951110 complex vertex constants
c
970213 joakim edsjo
c
990724 paolo gondolo trilinear higgs and goldstone couplings
c=======================================================================
c
c vertices included:
c
see individual routines dsvertx1 and dsvertx3
c

dsvertx1.f
subroutine dsvertx1
c_______________________________________________________________________
c some couplings used in neutralino-neutralino, neutralino-chargino
c and chargino-chargino annihilation.
c common:
c
’dssusy.h’ - file with susy common blocks
c called by susyin.
c needs neusct, chasct, sfesct, higsct.
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994-1999
c history:
c
951110 complex vertex constants
c
970213 joakim edsjo
c
990724 paolo gondolo trilinear higgs and goldstone couplings
c
020710 Joakim Edsjo, chargino-(up-squark)-(down-quark) sign-change
c
020903 Mia Schelke, Higgs-squark-squark, A-terms sign-change
c=======================================================================
c
c vertices included:
c
z-w-w, z-h-h, w-h-a, w-h-h, h-w-w, h-z-z, z-a-h, h-h-h, h-a-a,
c
h-h-h, a-f-f, h-f-f, z-f-f, a-n-n, h-n-n, z-n-n, w-n-c, h-n-c,
c
squark-gluino-quark, sf-n-f, h-c-c, a-c-c, squark-squark-higgs,
c
w-f-f’, h-f-f’, gamma-w-w, gamma-h-h, z-c-c, gamma-c-c
c
gamma-f-f
c
gld-h-h, gld-gld-h, gld-n-c
c
Z-f~-f~, gamma-f~-f~, gluon-f~-f~
c

dsvertx3.f
subroutine dsvertx3
c_______________________________________________________________________
c some couplings used in sfermion coannihilations
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c history:
c
0110XX-020618 paolo gondolo
c
020903 Mia Schelke, Higgs-sfermion-sfermion, A-terms sign-change
c=======================================================================

24.3. ROUTINE HEADERS – FORTRAN FILES
c
c
c
c
c
c
c
c
c
c
c

vertices included:
Z-f~-f~, gamma-f~-f~, gluon-f~-f~, W-f~-F~, h-f~-f~
quartic vertices included:
Z-Z-h-h, W-W-h-h, Z-W-h-h, W-W-f~-f~,
gamma-gamma-f~-f~, Z-Z-f~-f~, gamma-Z-f~-f~, gamma-W-f~-F~,
gluon-gluon-f~-f~, gluon-W-f~-F~, gluon-gamma-f~-f~, gluon-Z-f~-f~,
h-h-f~-f~, h-goldstone-f~-f~, goldstone-goldstone-f~-f~,
h-h-h-h, h-h-h-goldstone, h-h-goldstone-goldstone,
h-goldstone-goldstone-goldstone, 4 x goldstone

dswhwarn.f
subroutine dswhwarn(unit,hwarning)
c_______________________________________________________________________
c write reasons for unphys<>0 to specified unit.
c input:
c
unit - logical unit to write on (integer)
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dswspectrum.f
************************************************************************
subroutine dswspectrum(unit)
c_______________________________________________________________________
c write out a table of the mass spectrum.
c input:
c
unit - logical unit to write on (integer)
c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dswunph.f
subroutine dswunph(unit,unphys)
c_______________________________________________________________________
c write reasons for unphys<>0 to specified unit.
c input:
c
unit - logical unit to write on (integer)
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

dswvertx.f
************************************************************************
subroutine dswvertx(unit)
c_______________________________________________________________________
c write out a table of the vertices constants.
c input:
c
unit - logical unit to write on (integer)

307

308

CHAPTER 24. SU: GENERAL SUSY MODEL SETUP: MASSES, VERTICES ETC

c common:
c
’dssusy.h’ - file with susy common blocks
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c=======================================================================

g4p.f
function g4p(kp1,kp2,kp3,kp4)
c_______________________________________________________________________
c function returning the 4-particle vertex
c author: paolo gondolo (pxg26@po.cwru.edu) 2001
c=======================================================================

Chapter 25

src/suspect:
mSUGRA interface (suspect) to
DarkSUSY
25.1

Routine headers – fortran files

dssuspecterr.f
subroutine dssuspecterr(unit,unphys,errmess)
c_______________________________________________________________________
c write reasons for unphys<>0 in suspect output to specified unit.
c input:
c
unit - logical unit to write on (integer)
c author: paolo gondolo (gondolo@lpthe.jussieu.fr) 1994
c adapted from suspect by: piero ullio, ullio@sissa.it, september 2001
c=======================================================================

dssuspectsugra.f
subroutine dssuspectsugra(unphys,errmess)
c_______________________________________________________________________
c interface subroutine between Suspect & Darksusy in mSUGRA case
c this routine should be called instead of dssusy
c
c call for each given set of mSUGRA variables:
c
m0var,mhfvar,a0var,tgbetavar,sgnmuvar
c given in the sugrainput common block; additional standard inputs for
c Suspect are set in this routine as specified in the body below.
c
c if error checks in Suspect are all ok, the routine sets up:
c 1) SM inputs in Darksusy according to SM standard inputs in Suspect
c 2) Darksusy SUSY variables and soft terms
c 3) full mass spectrum and mixing matrices according to Suspect output
c 4) global constants needed to run Darksusy (relic density + detection
c
rates + constraint checks), set with dssuconst
c 5) interaction vertices, set with dsvertx
309

310

CHAPTER 25. SUSPECT: MSUGRA INTERFACE (SUSPECT) TO DARKSUSY

c 6) particle widths, set with dshwidths + plus a few set explicitly in
c
this routine
c 7) prepares the rate routines for a new model, calling dsprep
c
c in output if unphys=0, everything is ok
c if unphys < 0, one or more errmess(10) are <0, check error message
c with dssuspecterr.f
c
c expanded from a version by Emmanuel NEZRI, nezri@in2p3.fr,
c February 2001
c
c author: Piero Ullio, ullio@sissa.it, September 2001
c=======================================================================

suspect2.f
subroutine SUSPECT2(iknowl,input,ichoice,errmess)
c VERSION 2.002
c: last changes : September 10 2001
c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
c J.-L. Kneur, A. Djouadi, G. Moultaka
c see home page:
c http://www.lpm.univ-montp2.fr:7082/~kneur/
c for manual, updated info and maintenance
c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
c
c||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
c Calculates the MSSM mass spectrum (charginos, neutralinos,
c squarks, sleptons and Higgs bosons (h,H,A,H+));
c including RG evolution of parameters, with different
c options on models, approximations used, etc (see below).
c
(with some routines taken from
c
already existing codes, in particular Higgs masses from
c
M. Carena, C. Quiros, C. Wagner available routine;
c some Higgs-related routines also common with "HDECAY" code.)
c|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
c EXAMPLE OF CALL: SEE THE ACCOMPANYING FILE suspect2_call.f
c where new (2) version options and detailed calling examples are
c given
c-----------------------------------------------------c * Notations, definitions, analytic expressions based (mostly) on
c
a mixture of: ** Castano,Ramond,Piard Phys. Rev. D49(1994)4882.
c
** Barger,Berger,Ohmann Phys.Rev. D49(1994)4908.
c EXCEPT for some SIGN CONVENTIONS changed (see conventions below!)
c|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
c------DEFINITION OF PARAMETERS AND CONVENTIONS USED ---|
c|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
c INPUT parameters: there are 3 CLASS of "input" parameters
c 1) *** OPTION FLAG PARAMETERS (driven from input file) ***
c =ICHOICE(1--10) (see suspect2_call.f for more explanations)
c
c 2)‘‘Standard Model" parameters (not to be changed normally)

25.1. ROUTINE HEADERS – FORTRAN FILES
C ALFINV:
1/ALPHA(MZ): QED Coupling (at MZ scale, MSbar scheme)
c ( reference latest value is ALFINV = 127.938 )
C SW2:
sin^2(theta)_W(MZ) in the MSbar scheme
c (reference value: SW2= .23117 for MTOP =175 GeV)
C ALPHAS: VALUE FOR ALPHA_S(M_Z) (at the MZ scale)
c (reference value: ALPHAS= .119 )
C MT:
TOP POLE MASS (reference value is MT= 174.3 GeV)
c MB:
BOttom pole mass (ref. value 4.62 GeV)
c MC:
Charm pole mass (ref. value 1.4 GeV)
c
c 3) MSSM models physical parameters:
c m0, m1/2, A0, tan(beta), sign(MU) in minimal SUGRA;
c or arbitrary soft-breaking terms in non-universal models
c (see input file suspect2.in for more details and examples)
c|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
c **** IMPORTANT: MU SIGN (AND OTHER) CONVENTIONS ***** :
c|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
c 1) WE DEFINE THE SUPERPOTENTIAL with the sign of MU conventions
c as: W = MU (H_u . H_d) +.. =(def)= MU *eps(i,j) H^i_u H^j_d +..;
c
eps(1,2) = 1 = -eps(2,1)
c where H_u, H_d are chiral (Higgs, Higgsinos)_u,d SUPERfields;
c 2) WE DEFINE the susy-breaking MU-term in the scalar potential
c with the convention: V = B* MU eps(i,j) h^i_u * h^j_d (h_u,d are now
c ordinary scalar fields, h_u=(h^1_u, h^2_u)=(h^{+}_u, h^0_u),
c h_d=(h^1_d, h^2_d)=(h^0_d, h^{-}_d)
c
c
MU signs in relevant terms then follow as:
c
c -Sfermions: mixing terms = m_LR = A_i - MU *(TBETA or 1/TBETA)
c where A_i = A_b, A_tau or A_top
c - Chargino: +MU in mass matrix mixing terms
c - Neutralinos: -MU in mass matrix mixing terms;
c - ALSO, Higgs potential minimization condition
c (radiative SU(2)xU(1) breaking) takes then the following form:
c MZ^2/2 =(m1^2 - m2^2 * tbeta^2)/(tbeta^2 -1)
c
B* MU = (m1^2+m2^2)/2 * sin( 2 beta)
c (where m1^2 =(m_phi_d)^2 +MU^2 +one-loop corrections
c
m2^2 =(m_phi_u)^2 +MU^2 +one-loop corrections )
c
OTHER RELEVANT CONVENTIONS :
c 3) sign of M1,M2,M3: -M_i * Gbar G in Lagrangien (i.e.
c
‘‘normal" fermion mass signs), where G,Gbar are gaugino fields.
c 4) TGBETA = vu/vd (Q=MZ); (INPUT);
c 5) v = sqrt(vu^2+vd^2) = 1/sqrt(2*sqrt(2)*GF) =174.** GeV
c
i.e. MW^2 = g2^2 * v^2/2 and there are NO 1/sqrt(2)
c
factor in phi_u,d:  = vu ;  = vd
c
c ------------------------------------------------------c Main RG relevant variables:
c y(n) = vector containing all (RG evolving) parameters,
c at various possible scales depending on evolution stages.
c n = number of RG-evolved parameters (may be different from

311

312

CHAPTER 25. SUSPECT: MSUGRA INTERFACE (SUSPECT) TO DARKSUSY

c the initial free parameters)
c Those RG-evolving, scale-dependent parameters are:
c y(1) = g1^2
U(1) gauge coupling
c y(2) = g2^2
SU(2)_L gauge coupling
c y(3) = g3^2 = 4*pi*alphas SU(3) gauge coupling
c
c y(4) = Y_tau tau Yukawa coupling
c y(5) = Y_b
bottom Yukawa coupling
c y(6) = Y_top top Yukawa coupling
c
c y(7) = Ln(vu) Logarithm of vu
c y(8) = Ln(vd) Logarithm of vd
c
c y(9) = A_tau
c y(10)= A_b
c y(11)=A_top
c
c y(12) = (m_phi_u)^2 scalar phi_u "mass" term (in potential)
c y(13) = (m_phi_d)^2 scalar phi_d "mass" term (in potential)
c
c y(14) = MTAUR^2 right-handed Stau Lagrangian mass^2 term
c y(15) = MSL^2 left-handed Stau lagrangian mass^2 term
c y(16) = MBR^2 right-handed Sbottom lagrangian mass^2 term
c y(17) = MTR^2 right-handed Stop Lagrangian mass^2 term
c y(18) = MSQ^2 left-handed Stop Lagrangian mass^2 term
c
c y(19) = B The (dimensionful) B parameter in scalar mixing
c
c y(20) = Ln(M1) Log of Bino mass term
c y(21) = Ln(M2) Log of Wino mass term
c y(22) = Ln(M3) Log of gluino mass term
c
c y(23) = Ln(MU) Log of the MU parameter, as defined above.
c
c y(24) = MER^2 right-handed Selectron(Smuon) Lagrangian mass^2
c y(25) = MEL^2 left-handed Selctron(Smuon) Lagrangian mass^2
c y(26) = MDR^2 right-handed Sdown(Sstrange) Lagrangian mass^2
c y(27) = MUR^2 right-handed Sup(Scharm) Lagrangian mass^2
c y(28) = MUQ^2 left-handed Sup(Scharm) Lagrangian mass^2
c
c******************************************************
c PROGRAM COMMAND LINES START HERE
c******************************************************

Chapter 26

src/xcern:
CERN routines needed by
DarkSUSY
26.1

Routine headers – fortran files

besj064.f
*
*
*
*
*
*
*
*

$Id: besj064.F,v 1.1.1.1 1996/04/01 15:01:59 mclareni Exp $
$Log: besj064.F,v $
Revision 1.1.1.1 1996/04/01 15:01:59
Mathlib gen

mclareni

FUNCTION DBESJ0(X)

bsir364.f
*
*
*
*
*
*
*
*

$Id: bsir364.F,v 1.1.1.1 1996/04/01 15:02:07 mclareni Exp $
$Log: bsir364.F,v $
Revision 1.1.1.1 1996/04/01 15:02:07
Mathlib gen

mclareni

FUNCTION DBSIR3(X,NU)

dbzejy.f
SUBROUTINE DBZEJY(A,N,MODE,REL,X)
C
C

Computes the first n positive (in the case Jo’(x) the first n
non-negative) zeros of the Bessel functions
313

314

CHAPTER 26. XCERN: CERN ROUTINES NEEDED BY DARKSUSY

C
C
C
C
C
C
C
C
C
C
C

Ja(x), Ya(x), Ja’(x), Ya’(x),
where a >= 0 and ’ = d/dx.
Based on Algol procedures published in
N.M. TEMME, An algorithm with Algol 60 program for the computation of the zeros of ordinary Bessel functions and those of
their derivatives, J. Comput. Phys. 32 (1979) 270-279, and
N.M. TEMME, On the numerical evaluation of the ordinary Bessel
function of the second kind, J. Comput. Phys. 21 (1976) 343-350.

ddilog.f
CDECK

ID>, DDILOG.
DOUBLE PRECISION FUNCTION DDILOG(X)

C
C
C

FROM CERN PROGRAM LIBRARY

dgadap.f
c#######################################################################
c
c
one- and two-dimensional adaptive gaussian integration routines.
c
c **********************************************************************
subroutine dgadap(a0,b0,f,eps0,sum)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

purpose
method
usage
parameters

a0
b0
f

-

eps0

-

sum
precision
req’d prog’s
author
reference(s)

-

integrate a function f(x)
adaptive gaussian
call gadap(a0,b0,f,eps,sum)
lower limit (input,real)
upper limit (input,real)
function f(x) to be integrated. must be
supplied by the user. (input,real function)
desired relative accuracy. if sum is small eps
will be absolute accuracy instead. (input,real)
calculated value for the integral (output,real)
single (see below)
f
t. johansson, lund univ. computer center, 1973
the australian computer journal,3 p.126 aug. -71

made real*8 by j. edsjo 97-01-17

drkstp.f
SUBROUTINE DRKSTP(N,H,X,Y,SUB,W)
No header found.

26.1. ROUTINE HEADERS – FORTRAN FILES

eisrs1.f
CDECK
C
C
C
C

ID>, EISRS1.
SUBROUTINE EISRS1(NM,N,AR,WR,ZR,IERR,WORK)
ALL EIGENVALUES AND CORRESPONDING EIGENVECTORS OF A REAL
SYMMETRIC MATRIX
FROM CERN PROGRAM LIBRARY

gpindp.f
real*8 function gpindp(a,b,epsin,epsout,func,iop)
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

parameters
a
b
epsin
epsout
func
iop

=
=
=
=
=

lower boundary
upper boundary
accuracy required for the approxination
improved error estimate for the approximation
function routine for the function func(x).to be declared external in the calling routine
= option parameter , iop=1 , modified romberg algorithm,
ordinary case
iop=2 , modified romberg algorithm,
cosine transformed case
iop=3 , modified clenshaw-curtis al
gorithm

parameters in common block / gpint /
tend
umid
n
line

=
=
=
=

iout
jop

=
=

kop

=

t

=

upper bound for value of integral
lower bound for value of integralc
the number of integrand values used in the calculation
line no in romberg table (related to n through
n-1=2**(line-1) , applicable only for iop=1 or 2)
element no in line (applicable only for iop=1 or 2)
option parameter , jop=0 , no printing of intermediate
calculations
jop=1 , print intermediate calculations
option parameter , kop=0 , no time estimate
kop=1 , estimate time
time used for calculation in msec.

integration parameters
nupper

= 9 , corresponds to 1024 sub-intervals for the unfolded
integral.the max.no of function evaluations thus beeing
1025.the highest end-point approximation is thus using
1024 intervals while the highest mid-point approximation is using 512 intervals.

315

316
c
c

CHAPTER 26. XCERN: CERN ROUTINES NEEDED BY DARKSUSY
input/output parameters

mtlprt.f
*
* Dummy routine to easily integrate bsir364.f with DarkSUSY
* Author: Joakim Edsjo, edsjo@physto.se
* Date: September 13, 2000
*
SUBROUTINE MTLPRT(NAME,ERC,TEXT)

tql2.f
CDECK
C

ID>, TQL2.
SUBROUTINE TQL2(NM,N,D,E,Z,IERR)
FROM CERN PROGRAM LIBRARY

tred2.f
CDECK
C

ID>, TRED2.
SUBROUTINE TRED2(NM,N,A,D,E,Z)
FROM CERN PROGRAM LIBRARY

Chapter 27

src/xcmlib:
CMLIB routines needed by
DarkSUSY
27.1

Routine headers – fortran files

d1mach.f
real*8 function d1mach(i)

dqagse.f
*
*
*
*
*

======================================================================
nist guide to available math software.
fullsource for module dqagse from package cmlib.
retrieved from camsun on wed oct 8 08:26:30 1997.
======================================================================
subroutine dqagse(f,a,b,epsabs,epsrel,limit,result,abserr,neval,
1
ier,alist,blist,rlist,elist,iord,last)
c***begin prologue dqagse
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a1
c***keywords (end point) singularities,automatic integrator,
c
extrapolation,general-purpose,globally adaptive
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose the routine calculates an approximation result to a given
c
definite integral i = integral of f over (a,b),
c
hopefully satisfying following claim for accuracy
c
abs(i-result).le.max(epsabs,epsrel*abs(i)).
c***description
c
c
computation of a definite integral
317

318
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

CHAPTER 27. XCMLIB: CMLIB ROUTINES NEEDED BY DARKSUSY
standard fortran subroutine
real*8 version
parameters
on entry
f
- real*8
function subprogram defining the integrand
function f(x). the actual name for f needs to be
declared e x t e r n a l in the driver program.
a

- real*8
lower limit of integration

b

- real*8
upper limit of integration

epsabs - real*8
absolute accuracy requested
epsrel - real*8
relative accuracy requested
if epsabs.le.0
and epsrel.lt.max(50*rel.mach.acc.,0.5d-28),
the routine will end with ier = 6.
limit

- integer
gives an upperbound on the number of subintervals
in the partition of (a,b)

on return
result - real*8
approximation to the integral
abserr - real*8
estimate of the modulus of the absolute error,
which should equal or exceed abs(i-result)
neval

ier

- integer
number of integrand evaluations

- integer
ier = 0 normal and reliable termination of the
routine. it is assumed that the requested
accuracy has been achieved.
ier.gt.0 abnormal termination of the routine
the estimates for integral and error are
less reliable. it is assumed that the
requested accuracy has not been achieved.
error messages
= 1 maximum number of subdivisions allowed
has been achieved. one can allow more subdivisions by increasing the value of limit
(and taking the according dimension

27.1. ROUTINE HEADERS – FORTRAN FILES
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

= 2

= 3

= 4

= 5

= 6

adjustments into account). however, if
this yields no improvement it is advised
to analyze the integrand in order to
determine the integration difficulties. if
the position of a local difficulty can be
determined (e.g. singularity,
discontinuity within the interval) one
will probably gain from splitting up the
interval at this point and calling the
integrator on the subranges. if possible,
an appropriate special-purpose integrator
should be used, which is designed for
handling the type of difficulty involved.
the occurrence of roundoff error is detected, which prevents the requested
tolerance from being achieved.
the error may be under-estimated.
extremely bad integrand behaviour
occurs at some points of the integration
interval.
the algorithm does not converge.
roundoff error is detected in the
extrapolation table.
it is presumed that the requested
tolerance cannot be achieved, and that the
returned result is the best which can be
obtained.
the integral is probably divergent, or
slowly convergent. it must be noted that
divergence can occur with any other value
of ier.
the input is invalid, because
epsabs.le.0 and
epsrel.lt.max(50*rel.mach.acc.,0.5d-28).
result, abserr, neval, last, rlist(1),
iord(1) and elist(1) are set to zero.
alist(1) and blist(1) are set to a and b
respectively.

alist

- real*8
vector of dimension at least limit, the first
last elements of which are the left end points
of the subintervals in the partition of the
given integration range (a,b)

blist

- real*8
vector of dimension at least limit, the first
last elements of which are the right end points
of the subintervals in the partition of the given
integration range (a,b)

rlist

- real*8

319

320

CHAPTER 27. XCMLIB: CMLIB ROUTINES NEEDED BY DARKSUSY

c
vector of dimension at least limit, the first
c
last elements of which are the integral
c
approximations on the subintervals
c
c
elist - real*8
c
vector of dimension at least limit, the first
c
last elements of which are the moduli of the
c
absolute error estimates on the subintervals
c
c
iord
- integer
c
vector of dimension at least limit, the first k
c
elements of which are pointers to the
c
error estimates over the subintervals,
c
such that elist(iord(1)), ..., elist(iord(k))
c
form a decreasing sequence, with k = last
c
if last.le.(limit/2+2), and k = limit+1-last
c
otherwise
c
c
last
- integer
c
number of subintervals actually produced in the
c
subdivision process
c***references (none)
c***routines called d1mach,dqelg,dqk21,dqpsrt
c***end prologue dqagse
c

dqagseb.f
*
*
*
*
*

======================================================================
nist guide to available math software.
fullsource for module dqagse from package cmlib.
retrieved from camsun on wed oct 8 08:26:30 1997.
======================================================================
subroutine dqagseb(f,a,b,epsabs,epsrel,limit,result,abserr,neval,
1
ier,alist,blist,rlist,elist,iord,last)
c***begin prologue dqagse
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a1
c***keywords (end point) singularities,automatic integrator,
c
extrapolation,general-purpose,globally adaptive
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose the routine calculates an approximation result to a given
c
definite integral i = integral of f over (a,b),
c
hopefully satisfying following claim for accuracy
c
abs(i-result).le.max(epsabs,epsrel*abs(i)).
c***description
c
c
computation of a definite integral

27.1. ROUTINE HEADERS – FORTRAN FILES
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

standard fortran subroutine
real*8 version
parameters
on entry
f
- real*8
function subprogram defining the integrand
function f(x). the actual name for f needs to be
declared e x t e r n a l in the driver program.
a

- real*8
lower limit of integration

b

- real*8
upper limit of integration

epsabs - real*8
absolute accuracy requested
epsrel - real*8
relative accuracy requested
if epsabs.le.0
and epsrel.lt.max(50*rel.mach.acc.,0.5d-28),
the routine will end with ier = 6.
limit

- integer
gives an upperbound on the number of subintervals
in the partition of (a,b)

on return
result - real*8
approximation to the integral
abserr - real*8
estimate of the modulus of the absolute error,
which should equal or exceed abs(i-result)
neval

ier

- integer
number of integrand evaluations

- integer
ier = 0 normal and reliable termination of the
routine. it is assumed that the requested
accuracy has been achieved.
ier.gt.0 abnormal termination of the routine
the estimates for integral and error are
less reliable. it is assumed that the
requested accuracy has not been achieved.
error messages
= 1 maximum number of subdivisions allowed
has been achieved. one can allow more subdivisions by increasing the value of limit
(and taking the according dimension

321

322
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c

CHAPTER 27. XCMLIB: CMLIB ROUTINES NEEDED BY DARKSUSY

= 2

= 3

= 4

= 5

= 6

adjustments into account). however, if
this yields no improvement it is advised
to analyze the integrand in order to
determine the integration difficulties. if
the position of a local difficulty can be
determined (e.g. singularity,
discontinuity within the interval) one
will probably gain from splitting up the
interval at this point and calling the
integrator on the subranges. if possible,
an appropriate special-purpose integrator
should be used, which is designed for
handling the type of difficulty involved.
the occurrence of roundoff error is detected, which prevents the requested
tolerance from being achieved.
the error may be under-estimated.
extremely bad integrand behaviour
occurs at some points of the integration
interval.
the algorithm does not converge.
roundoff error is detected in the
extrapolation table.
it is presumed that the requested
tolerance cannot be achieved, and that the
returned result is the best which can be
obtained.
the integral is probably divergent, or
slowly convergent. it must be noted that
divergence can occur with any other value
of ier.
the input is invalid, because
epsabs.le.0 and
epsrel.lt.max(50*rel.mach.acc.,0.5d-28).
result, abserr, neval, last, rlist(1),
iord(1) and elist(1) are set to zero.
alist(1) and blist(1) are set to a and b
respectively.

alist

- real*8
vector of dimension at least limit, the first
last elements of which are the left end points
of the subintervals in the partition of the
given integration range (a,b)

blist

- real*8
vector of dimension at least limit, the first
last elements of which are the right end points
of the subintervals in the partition of the given
integration range (a,b)

rlist

- real*8

27.1. ROUTINE HEADERS – FORTRAN FILES
c
vector of dimension at least limit, the first
c
last elements of which are the integral
c
approximations on the subintervals
c
c
elist - real*8
c
vector of dimension at least limit, the first
c
last elements of which are the moduli of the
c
absolute error estimates on the subintervals
c
c
iord
- integer
c
vector of dimension at least limit, the first k
c
elements of which are pointers to the
c
error estimates over the subintervals,
c
such that elist(iord(1)), ..., elist(iord(k))
c
form a decreasing sequence, with k = last
c
if last.le.(limit/2+2), and k = limit+1-last
c
otherwise
c
c
last
- integer
c
number of subintervals actually produced in the
c
subdivision process
c***references (none)
c***routines called d1mach,dqelg,dqk21b,dqpsrt
c***end prologue dqagse
c

dqelg.f
subroutine dqelg(n,epstab,result,abserr,res3la,nres)
c***begin prologue dqelg
c***refer to dqagie,dqagoe,dqagpe,dqagse
c***routines called d1mach
c***revision date 830518
(yymmdd)
c***keywords convergence acceleration,epsilon algorithm,extrapolation
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose the routine determines the limit of a given sequence of
c
approximations, by means of the epsilon algorithm of
c
p.wynn. an estimate of the absolute error is also given.
c
the condensed epsilon table is computed. only those
c
elements needed for the computation of the next diagonal
c
are preserved.
c***description
c
c
epsilon algorithm
c
standard fortran subroutine
c
real*8 version
c
c
parameters
c
n
- integer

323

324

CHAPTER 27. XCMLIB: CMLIB ROUTINES NEEDED BY DARKSUSY

c
c
c
c
epstab c
c
c
c
c
c
c
result c
c
c
abserr c
c
c
c
res3la c
c
c
c
nres
c
c
c***end prologue dqelg
c

epstab(n) contains the new element in the
first column of the epsilon table.
real*8
vector of dimension 52 containing the elements
of the two lower diagonals of the triangular
epsilon table. the elements are numbered
starting at the right-hand corner of the
triangle.
real*8
resulting approximation to the integral
real*8
estimate of the absolute error computed from
result and the 3 previous results
real*8
vector of dimension 3 containing the last 3
results
integer
number of calls to the routine
(should be zero at first call)

dqk21.f
subroutine dqk21(f,a,b,result,abserr,resabs,resasc)
c***begin prologue dqk21
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a2
c***keywords 21-point gauss-kronrod rules
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose to compute i = integral of f over (a,b), with error
c
estimate
c
j = integral of abs(f) over (a,b)
c***description
c
c
integration rules
c
standard fortran subroutine
c
real*8 version
c
c
parameters
c
on entry
c
f
- real*8
c
function subprogram defining the integrand

27.1. ROUTINE HEADERS – FORTRAN FILES
c
function f(x). the actual name for f needs to be
c
declared e x t e r n a l in the driver program.
c
c
a
- real*8
c
lower limit of integration
c
c
b
- real*8
c
upper limit of integration
c
c
on return
c
result - real*8
c
approximation to the integral i
c
result is computed by applying the 21-point
c
kronrod rule (resk) obtained by optimal addition
c
of abscissae to the 10-point gauss rule (resg).
c
c
abserr - real*8
c
estimate of the modulus of the absolute error,
c
which should not exceed abs(i-result)
c
c
resabs - real*8
c
approximation to the integral j
c
c
resasc - real*8
c
approximation to the integral of abs(f-i/(b-a))
c
over (a,b)
c***references (none)
c***routines called d1mach
c***end prologue dqk21
c

dqk21b.f
subroutine dqk21b(f,a,b,result,abserr,resabs,resasc)
c***begin prologue dqk21b
c***date written
800101
(yymmdd)
c***revision date 830518
(yymmdd)
c***category no. h2a1a2
c***keywords 21-point gauss-kronrod rules
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose to compute i = integral of f over (a,b), with error
c
estimate
c
j = integral of abs(f) over (a,b)
c***description
c
c
integration rules
c
standard fortran subroutine
c
real*8 version
c

325

326

CHAPTER 27. XCMLIB: CMLIB ROUTINES NEEDED BY DARKSUSY

c
parameters
c
on entry
c
f
- real*8
c
function subprogram defining the integrand
c
function f(x). the actual name for f needs to be
c
declared e x t e r n a l in the driver program.
c
c
a
- real*8
c
lower limit of integration
c
c
b
- real*8
c
upper limit of integration
c
c
on return
c
result - real*8
c
approximation to the integral i
c
result is computed by applying the 21-point
c
kronrod rule (resk) obtained by optimal addition
c
of abscissae to the 10-point gauss rule (resg).
c
c
abserr - real*8
c
estimate of the modulus of the absolute error,
c
which should not exceed abs(i-result)
c
c
resabs - real*8
c
approximation to the integral j
c
c
resasc - real*8
c
approximation to the integral of abs(f-i/(b-a))
c
over (a,b)
c***references (none)
c***routines called d1mach
c***end prologue dqk21b
c

dqpsrt.f
subroutine dqpsrt(limit,last,maxerr,ermax,elist,iord,nrmax)
c***begin prologue dqpsrt
c***refer to dqage,dqagie,dqagpe,dqawse
c***routines called (none)
c***revision date 810101
(yymmdd)
c***keywords sequential sorting
c***author piessens, robert, applied math. and progr. div. c
k. u. leuven
c
de doncker, elise, applied math. and progr. div. c
k. u. leuven
c***purpose this routine maintains the descending ordering in the
c
list of the local error estimated resulting from the
c
interval subdivision process. at each call two error
c
estimates are inserted using the sequential search
c
method, top-down for the largest error estimate and

27.1. ROUTINE HEADERS – FORTRAN FILES
c
bottom-up for the smallest error estimate.
c***description
c
c
ordering routine
c
standard fortran subroutine
c
real*8 version
c
c
parameters (meaning at output)
c
limit - integer
c
maximum number of error estimates the list
c
can contain
c
c
last
- integer
c
number of error estimates currently in the list
c
c
maxerr - integer
c
maxerr points to the nrmax-th largest error
c
estimate currently in the list
c
c
ermax - real*8
c
nrmax-th largest error estimate
c
ermax = elist(maxerr)
c
c
elist - real*8
c
vector of dimension last containing
c
the error estimates
c
c
iord
- integer
c
vector of dimension last, the first k elements
c
of which contain pointers to the error
c
estimates, such that
c
elist(iord(1)),..., elist(iord(k))
c
form a decreasing sequence, with
c
k = last if last.le.(limit/2+2), and
c
k = limit+1-last otherwise
c
c
nrmax - integer
c
maxerr = iord(nrmax)
c***end prologue dqpsrt
c

327

328

CHAPTER 27. XCMLIB: CMLIB ROUTINES NEEDED BY DARKSUSY

Chapter 28

src/xfeynhiggs:
FeynHiggs interface to DarkSUSY
28.1

Routine headers – fortran files

dsfeynhiggs.f
&
&
c
c
c
c
c
c
c
c
c

subroutine dsfeynhiggs(hwar,HM,mh,hc,halpha,drho,
ATop,ABot,inmt,inmb,my,M2,mqtl,mqtr,mqbl,mqbr,
mgluino,mh3,tanb,inmsbarselec)

----------------------------------------------------------------Implementation of FeynHiggs in DarkSUSY by S. Heinemeyer, 06/13/02
All names of subroutines and functions that clashed with the
full FeynHiggs names have _fh appended to them. In most cases,
they are probably the same routines though, but to be on the
safe side, the names were changed.
Output: mh is lighter scalar Higgs mass, HM is heavier Higgs mass
-----------------------------------------------------------------

c -------------------------------------------------------------c
c
FeynHiggs
c
=========
c
c
Calculation of the masses of the neutral CP-even
c
Higgs bosons in the MSSM
c
c
Authors: Sven Heinemeyer (one-, two-loop part, new renormalization)
c
Andreas Dabelstein (one-loop part)
c
Markus Frank (new renormalization)
c
c
Based on hep-ph/9803277, hep-ph/9807423, hep-ph/9812472,
c
hep-ph/9903404, hep-ph/9910283
c
by S. Heinemeyer, W. Hollik, G. Weiglein
c
and on hep-ph/0001002
329

330

CHAPTER 28. XFEYNHIGGS: FEYNHIGGS INTERFACE TO DARKSUSY

c
by M. Carena, H. Haber, S. Heinemeyer, W. Hollik,
c
C. Wagner and G. Weiglein
c
new non-log O(alpha_t^2) corrections taken from hep-ph/0112177
c
by A. Brignole, G. Degrassi, P. Slavich and F. Zwirner
c
c
new renormalization implemented based on hep-ph/0202166
c
by M. Frank, S. Heinemeyer, W. Hollik and G. Weiglein
c
c
In case of problems or questions,
c
contact Sven Heinemeyer
c
email: Sven.Heinemeyer@physik.uni-muenchen.de
c
c
FeynHiggs homepage:
c
http://www.feynhiggs.de
c
c -------------------------------------------------------------c -------------------------------------------------------------c
c Warnings implemented by .......
c
c
Bit Value
c Bits of hwar:
0 - 1:
Potential numerical problems at 1-loop
c
1 - 2:
Potential numerical problems at 2-loop
c
2 - 4:
Error with not used H2 mass expression 1-loop
c
3 - 8:
Error with not used H2 mass expression 2-loop
c
4 - 16: Error with not used H2 mass expression 2-loop
c
5 - 32: 1-loop Higgs sector not OK
c
6 - 64: 2-loop Higgs sector not OK
c
7 - 128: Stop or sbottom masses not OK
c---------------------------------------------------------------

dsfeynhiggsdummy.f
&
&

subroutine dsfeynhiggs(hwar,HM,mh,hc,halpha,drho,
ATop,ABot,inmt,inmb,my,M2,mqtl,mqtr,mqbl,mqbr,
mgluino,mh3,tanb,inmsbarselec)

c ----------------------------------------------------------------c Dummy routine for those folks who do not have FeynHiggs
c -----------------------------------------------------------------

FeynHiggsSub ds.f
subroutine feynhiggssub(mh1,mh2,mh12,mh22)

28.1. ROUTINE HEADERS – FORTRAN FILES

Hhmasssr2 ds.f
c
C

%%%%%%%%%%%%%%%%%%%%%% geaendert! %%%%%%%%%%%%%%%%%%%%%%%%%
DOUBLE PRECISION FUNCTION DELTA (EPSILON,MUEE,MASS)

331

332

CHAPTER 28. XFEYNHIGGS: FEYNHIGGS INTERFACE TO DARKSUSY

Chapter 29

src/xhdecay:
HDecay interface to DarkSUSY
29.1

Routine headers – fortran files

dshdecay.f
c---------------------------------------------------------------------c
Interface between DarkSUSY and HDECAY.
c
HDECAY is called and the results transferred to the DarkSUSY
c
common blocks.
c
Author: Joakim Edsjo, edsjo@physto.se
c
Date: September 12, 2002
c---------------------------------------------------------------------subroutine dshdecay

hdecay.f
C Modified by Joakim Edsjo 2002-09-12 to interface it with DarkSUSY.
C See README.TXT for more details
C
Last modification on July 11th 2001 by M.S.
C ==================================================================
C ================= PROGRAM HDECAY: COMMENTS =======================
C ==================================================================
C
C
***************
C
* VERSION 2.0 *
C
***************
C
C
C This program calculates the total decay widths and the branching
C ratios of the C Standard Model Higgs boson (HSM) as well as those
C of the neutral (HL= the light CP-even, HH= the heavy CP-even, HA=
C the pseudoscalar) and the charged (HC) Higgs bosons of the Minimal
C Supersymmetric extension of the Standard Model (MSSM). It includes:
C
333

334

CHAPTER 29. XHDECAY: HDECAY INTERFACE TO DARKSUSY

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

- All the decay channels which are kinematically allowed and which
have branching ratios larger than 10**(-4).

C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

================ IT USES AS INPUT PARAMETERS:

- All QCD corrections to the fermionic and gluonic decay modes.
Most of these corrections are mapped into running masses in a
consistent way with some freedom for including high order terms.
- Below--threshold three--body decays with off--shell top quarks
or ONE off-shell gauge boson, as well as some decays with one
off-shell Higgs boson in the MSSM.
- Double off-shell decays: HSM,HL,HH --> W*W*,Z*Z* -->4 fermions,
which could be important for Higgs masses close to MW or MZ.
- In the MSSM, the radiative corrections with full squark mixing and
uses the RG improved values of Higgs masses and couplings with the
main NLO corrections implemented (based on M.Carena, M. Quiros and
C.E.M. Wagner, Nucl. Phys. B461 (1996) 407, hep-ph/9508343).
- In the MSSM, all the decays into CHARGINOS, NEUTRALINOS, SLEPTONS
and SQUARKS (with mixing in the stop and sbottom sectors).
- Chargino, slepton and squark loops in the 2 photon decays and squark
loops in the gluonic decays (including QCD corrections).
===================================================================
This program has been written by A.Djouadi, J.Kalinowski and M.Spira.
For details on how to use the program see: Comp. Phys. Commun. 108
(1998) 56, hep-ph/9704448. For any question, comment, suggestion or
complaint, please contact us at:
djouadi@lpm.univ-montp2.fr
kalino@fuw.edu.pl
Michael.Spira@cern.ch

IHIGGS: =0:
=1:
=2:
=3:
=4:
=5:
TGBET:
MABEG:
MAEND:
NMA:
ALS(MZ):
MSBAR(1):
MC:
MB:

CALCULATE
CALCULATE
CALCULATE
CALCULATE
CALCULATE
CALCULATE

BRANCHING
BRANCHING
BRANCHING
BRANCHING
BRANCHING
BRANCHING

RATIOS
RATIOS
RATIOS
RATIOS
RATIOS
RATIOS

OF
OF
OF
OF
OF
OF

SM HIGGS BOSON
MSSM h BOSON
MSSM H BOSON
MSSM A BOSON
MSSM H+ BOSON
ALL MSSM HIGGS BOSONS

TAN(BETA) FOR MSSM
START VALUE OF M_A FOR MSSM AND M_H FOR SM
END VALUE OF M_A FOR MSSM AND M_H FOR SM
NUMBER OF ITERATIONS FOR M_A
VALUE FOR ALPHA_S(M_Z)
MSBAR MASS OF STRANGE QUARK AT SCALE Q=1 GEV
CHARM POLE MASS
BOTTOM POLE MASS

29.1. ROUTINE HEADERS – FORTRAN FILES
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C

MT:
TOP POLE MASS
MTAU:
TAU MASS
MMUON:
MUON MASS
ALPH:
INVERSE QED COUPLING
GF:
FERMI CONSTANT
GAMW:
W WIDTH
GAMZ:
Z WIDTH
MZ:
Z MASS
MW:
W MASS
VUS:
CKM PARAMETER V_US
VCB:
CKM PARAMETER V_CB
VUB/VCB: RATIO V_UB/V_CB
1ST AND 2ND GENERATION:
MSL1:
SUSY BREAKING MASS PARAMETERS OF LEFT HANDED SLEPTONS
MER1:
SUSY BREAKING MASS PARAMETERS OF RIGHT HANDED SLEPTONS
MQL1:
SUSY BREAKING MASS PARAMETERS OF LEFT HANDED SUPS
MUR1:
SUSY BREAKING MASS PARAMETERS OF RIGHT HANDED SUPS
MDR1:
SUSY BREAKING MASS PARAMETERS OF RIGHT HANDED SDOWNS
3RD GENERATION:
MSL:
SUSY BREAKING MASS PARAMETERS OF LEFT HANDED STAUS
MER:
SUSY BREAKING MASS PARAMETERS OF RIGHT HANDED STAUS
MSQ:
SUSY BREAKING MASS PARAMETERS OF LEFT HANDED STOPS
MUR:
SUSY BREAKING MASS PARAMETERS OF RIGHT HANDED STOPS
MDR:
SUSY BREAKING MASS PARAMETERS OF RIGHT HANDED SBOTTOMS
AL:
STAU TRILINEAR SOFT BREAKING TERMS
AU:
STOP TRILINEAR SOFT BREAKING TERMS.
AD:
SBOTTOM TRILINEAR SOFT BREAKING TERMS.
MU:
SUSY HIGGS MASS PARAMETER
M2:
gaugino MASS PARAMETER.
NNLO (M): =0: USE O(ALPHA_S) FORMULA FOR POLE MASS --> MSBAR MASS
=1: USE O(ALPHA_S**2) FORMULA FOR POLE MASS --> MSBAR MASS
ON-SHELL: =0: INCLUDE OFF_SHELL DECAYS H,A --> T*T*, A --> Z*H,
H --> W*H+,Z*A, H+ --> W*A, W*H, T*B
=1: EXCLUDE THE OFF-SHELL DECAYS ABOVE
ON-SH-WZ: =0: INCLUDE DOUBLE OFF-SHELL PAIR DECAYS PHI --> W*W*,Z*Z*
=1: INCLUDE ONLY SINGLE OFF-SHELL DECAYS PHI --> W*W,Z*Z
IPOLE:

=0 COMPUTES RUNNING HIGGS MASSES (FASTER)
=1 COMPUTES POLE HIGGS MASSES

OFF-SUSY: =0: INCLUDE DECAYS (AND LOOPS) INTO SUPERSYMMETRIC PARTICLES
=1: EXCLUDE DECAYS (AND LOOPS) INTO SUPERSYMMETRIC PARTICLES
INIDEC:

=0: PRINT OUT SUMS OF CHARGINO/NEUTRALINO/hdsfermion DECAYS
=1: PRINT OUT INDIVIDUAL CHARGINO/NEUTRALINO/hdsfermion DECAYS

NF-GG:

NUMBER OF LIGHT FLAVORS INCLUDED IN THE GLUONIC DECAYS
PHI --> GG* --> GQQ (3,4 OR 5)

335

336

C
C
C
C

CHAPTER 29. XHDECAY: HDECAY INTERFACE TO DARKSUSY

=====================================================================
=========== BEGINNING OF THE SUBROUTINE FOR THE DECAYS ==============
!!!!!!!!!!!!!! Any change below this line is at your own risk!!!!!!!!
=====================================================================
SUBROUTINE HDEC(TGBET)

Acknowledgements
P. Gondolo created DarkSUSY in 1994, took care of its organization, arranged it for release, and
prepared the documentation. He contributed [34] the routines on the supersymmetric spectrum and
mixing, the original calculation of the neutralino relic density without coannihilations, the direct
detection rates and the accelerator bounds. P. Gondolo and J. Edsjö [35] included coannihilations
in the relic density routines. J. Edsjö contributed the package for the neutrino–induced muons
from the Sun and the Earth [36], and organized the routines for annihilations in the galactic halo,
incorporating the code for the gamma-ray continuum by himself, for the antiprotons [37] and the
gamma-ray lines [38] by P. Ullio, and for the positrons by E. Baltz [39]. Finally, DarkSUSY includes
adapted versions of (1) routines by Carena, Quirós and Wagner on the Higgs boson masses, (2)
routines from CMLIB (URL: http://www.netlib.org), specifically dqagse and its dependencies, (3)
routines from CERNLIB, specifically gpindp by X and gadap by T. Johansson.

337

338

CHAPTER 29. XHDECAY: HDECAY INTERFACE TO DARKSUSY

Bibliography
[1] P. Gondolo, J. Edsjö, L. Bergström, P. Ullio and E.A. Baltz, astro-ph/???????.
[2] The original papers for the different processes in DarkSUSY are
General MSSM, direct detction L. Bergström and P. Gondolo, ???.
Relic density P. Gondolo and G. Gelmini, Nucl. Phys. ???; J. Edsjö and P. Gondolo, Phys.
Rev. D?? (1997) ???.
Neutrino telescopes L. Bergström, J. Edsjö and P. Gondolo, Phys. Rev. D?? (????) ???.
Positrons E.A. Baltz and J. Edsjö, Phys. Rev. D?? (????) ???.
Antiprotons L. Bergström, J. Edsjö and P. Ullio, ApJ ??? (????) ???.
Gamma lines L. Bergström and P. Ullio, ???, x2.
Continuous gammas L. Bergström, J. Edsjö and P. Ullio, ???.
[3] G. Jungman, M. Kamionkowski and K. Griest, Phys. Rep. 267 (1996) 195.
[4] H.E. Haber and G.L. Kane, Phys. Rep. 117 (1985) 75; J.F. Gunion and H.E. Haber, Nucl.
Phys. B272 (1986) 1 [Erratum: ibid. B402 91993) 567]; H.E. Haber and D. Wyler, Nucl. Phys.
B323 (1989) 267.
[5] H.E. Haber and G.L. Kane, Phys. Rep. 117 (1985) 75.
[6] J.F. Gunion and H.E. Haber, Nucl. Phys. B272 (1986) 1 [Erratum: ibid. B402 91993) 567].
[7] Derived from the rules in Fig. 83 in Ref. [5] or directly from the Lagrangian.
[8] F. Mandl and G. Shaw, Quantum Field Theory, John Wiley & Sons, 1984.
[9] S. Dimopoulos and D. Sutter, Nucl. Phys. B465 (1995) 23.
[10] J. Ellis, G. Ridolfi and F. Zwirner, Phys. Lett. B257 (1991) 83; ibid. B262 (1991) 477.
[11] A. Brignole, J. Ellis, G. Ridolfi and F. Zwirner, Phys. Lett. B271 (1991) 123.
[12] M. Drees, M. Nojiri, Phys. Rev. D45 (1992) 2482.
[13] M. Carena, Espinosa, M. Quirós, and C. Wagner, Phys. Lett. B355 (1995) 209.
[14] M. Carena, M. Quirós, and C. Wagner, Nucl. Phys. B461 (1996) 407.
[15] M. Drees, M. Nojiri, Yamada, (1997) astro-ph/970129
[16] S. Bertolini, F. Borzumati, A. Masiero and G. Ridolfi, Nucl. Phys. B353 (1991) 591.
[17] Abbiendi et al. (OPAL Collab.), Europ. Phys. J. C7 (1999) 407.
339

340

BIBLIOGRAPHY

[18] Gao and Gay (ALEPH Collab.), in “High Energy Physics 99,” Tampere, Finland, July 1999.
[19] J. Carr et al. (ALEPH Collab.), talk to LEPC, 31
http://alephwww.cern.ch/ALPUB/seminar/carrlepc98/index.html).

March

1998

(URL:

[20] Acciarri et al. (L3 Collab.), Phys. Lett. B377 (1996) 289.
[21] Decamp et al. (ALEPH Collab.), Phys. Rep. 216 (1992) 253.
[22] Hidaka, Phys. Rev. D44 (1991) 927.
[23] Acciarri et al. (L3 Collab.), Phys. Lett. B350 (1995) 109.
[24] Buskulic et al. (ALEPH Collab.), Zeitschrift für Physik C72 (1996) 549.
[25] Acciarri et al. (L3 Collab.), Europ. Phys. J. C4 (1998) 207.
[26] Abbiendi et al. (OPAL Collab.), Europ. Phys. J. C8 (1999) 255.
[27] Abachi et al. (D0 Collab.), Phys. Rev. Lett. 75 (1995) 618.
[28] Abe et al. (CDF Collab.), Phys. Rev. D56 (1997) R1357.
[29] Abe et al. (CDF Collab.), Phys. Rev. Lett. 69 (1992) 3439.
[30] Abe et al. (CDF Collab.), Phys. Rev. Lett. 76 (1996) 2006.
[31] Barate et al. (ALEPH Collab.), Phys. Lett. B433 (1998) 176.
[32] C. Caso et al. (Particle Data Group), Europ. Phys. J. C3 (1998) 1, and 1999 partial update
for edition 2000 (URL: http://pdg.lbl.gov)
[33] H.E. Haber, in Perspectives on Higgs Physics II, ed. G. Kane (World Scientific, Singapore,
1997).
[34] L. Bersgström and P. Gondolo, Astropart. Phys. 5 (1996) 263.
[35] J. Edsjö and P. Gondolo, Phys. Rev. D56 (1997) 1879.
[36] J. Edsjö, Diploma Thesis, Uppsala University preprint TSL/ISV-93-0091 (1993); J. Edsjö,
Nucl. Phys. Proc. Suppl. 43 (1995) 265; J. Edsjö and P. Gondolo, Phys. Lett. B357 (1995) 595;
L. Bergström, J. Edsjö, and P. Gondolo, Phys. Rev. D55 (1997) 1765; ibid. D58 (1998) 103519.
[37] L. Bergström, J. Edsjö, and P. Ullio, astro-ph/9902012.
[38] L. Bergström and P. Ullio, Nucl. Phys. B504 (1997) 27; Phys. Rev. D57 (1998) 1962.
[39] E. Baltz and J. Edsjö, Phys. Rev. D59 (1999) 023511.
[40] N. Bahcall, J.P. Ostriker, S. Perlmutter and P.J. Steinhardt, Science 284, 1481 (1999).
[41] L. Bergström, Rep. Prog. Phys. 63 (2000) 793.
[42] H. Goldberg, Phys. Rev. Lett. 50 (1983) 1419.
[43] L.M. Krauss, Nucl. Phys. B227 (1983) 556.
[44] J. Ellis et al., Nucl. Phys. B238 (1984) 453.
[45] G. Raffelt, Nucl. Phys. Proc. Suppl. 77 (1999) 456.
[46] L. Bergström and P. Gondolo, Astrop. Phys. 5 (1996) 263.

BIBLIOGRAPHY

341

[47] H.E. Haber and G.L. Kane, Phys. Rep. 117 (1985) 75; J.F. Gunion and H.E. Haber, Nucl.
Phys. B272 (1986) 1 [Erratum-ibid. B402 (1993) 567].
[48] S. Dimopoulos and D. Sutter, Nucl. Phys. B465 (1995 23.
[49] S. Heinemeyer, W. Hollik and G. Weiglein, Comp. Phys. Comm. 124 (2000) 76; hepph/0002213.
[50] S. Heinemeyer, W. Hollik and G. Weiglein, Phys. Rev. D58 (1998) 091701; Eur. Phys. J. C9
(1999) 343; Phys. Lett. B455 (1999) 179.
[51] J. Ellis, G. Ridolfi and F. Zwirner, Phys. Lett. B257 (1991) 83; ibid. B262 (1991) 477; A.
Brignole, J. Ellis, G. Ridolfi and F. Zwirner, Phys. Lett. B271 (1991) 123.
[52] M. Drees, M.M. Nojiri, D.P. Roy and Y. Yamada, Phys. Rev. D56 (1997) 276 [hep-ph/9701219].
[53] D. Pierce and A. Papadopoulos, Phys. Rev. D50 (1994) 565, Nucl. Phys. B430 (1994) 278;
A.B. Lahanas, K. Tamvakis and N.D. Tracas, Phys. Lett. B324 (1994) 387.
[54] M. Drees, K. Hagiwara and A. Yamada, Phys. Rev. D45 (1992) 1725.
[55] Particle Data Group, D.E. Groom et al, The European Physical Journal C15 (2000) 1.
[56] S. Bertolini, F. Borzumati, A. Masiero and G. Ridolfi, Nucl. Phys. B353 (1991) 591.
[57] M. Kado (Aleph Collaboration), Talk given at the XXXVth Recontre de Moriond,
CERN/ALEPH PUB-2000-6.
[58] P. de Bernardis et al. Nature 404 (2000) 995; S. Hanany et al., astro-ph/0005123.
[59] A. E. Lange et al., astro-ph/0005004 (2000); M. Tegmark and M. Zaldarriaga, astro-ph/0004393
(2000); A. Balbi et al., astro-ph/0005124 (2000); W. Hu, M. Fukugita, M. Zaldarriaga, and M.
Tegmark, astro-ph/0006436 (2000); A. Jaffe et al., astro-ph/0007333 (2000); W. Kinney, A.
Melchiorri, and A. Riotto, astro-ph/0007375 (2000).
[60] S. Perlmutter et al., Astrophys. J. 517 (1999) 565; P.M. Garnavich et al., Astrophys. J. 509
(1998) 74.
[61] K. Griest and D. Seckel, Phys. Rev. D43 (1991) 3191.
[62] K. Griest, Phys. Rev. D38 (1988) 2357 [erratum ibid D39 (1989) 3802]; J. Scherrer and
M.S. Turner, Phys. Rev. D33 (1986) 1585 [erratum ibid D34 (1986) 3263]; M. Srednicki,
R. Watkins and K.A. Olive, Nucl. Phys. B310 (1988) 693; K. Griest, M. Kamionkowski and
M.S. Turner, Phys. Rev. D41 (1990) 3565; G.B. Gelmini, P. Gondolo, and E. Roulet, Nucl.
Phys. B351 (1991) 623; A. Bottino et al., Astropart. Phys. 1 (1992) 61, ibid. 2 (1994) 67;
R. Arnowitt and P. Nath, Phys. Lett. B299 (1993) 58, B307 (1993) 403(E), Phys. Rev. Lett.
70 (1993) 3696; H. Baer and M. Brhlik, Phys. Rev. D53 (1996) 597.
[63] J. McDonald, K.A. Olive and M. Srednicki, Phys. Lett. B283 (1992) 80.
[64] S. Mizuta and M. Yamaguchi, Phys. Lett. B298 (1993) 120.
[65] M. Srednicki, R. Watkins and K.A. Olive, Nucl. Phys. B310 (1988) 693.
[66] M. Drees and M. Nojiri, Phys. Rev. D47 (1993) 376.
[67] E.W. Kolb and M.S. Turner, The Early Universe, Addison-Wesley (1990).
[68] P. Gondolo and G. Gelmini, Nucl. Phys. B360 (1991) 145.

342

BIBLIOGRAPHY

[69] J. Edsjö and P. Gondolo, Phys. Rev. D56 (1997) 1879 [hep-ph/9704361].
[70] J. Ellis, T. Falk and K. A. Olive, Phys. Lett. B444 (1998) 367; J. Ellis, T. Falk, K. A. Olive
and M. Srednicki, Astropart. Phys. 13 (2000) 181.
[71] Reduce 3.5. A.C. Hearn, RAND, 1993.
[72] L. Bergström, J. Edsjö and P. Ullio, astro-ph/9804050, Phys.Rev. D58 (1998) 083507.
[73] L. Bergström, P. Ullio and J. Buckley, Astrop. Phys. in press, astro-ph/9712318.
[74] L. Bergström, J. Edsjö and P. Gondolo, Phys. Rev. D55 (1997) 1765.
[75] J. Edsjö and P. Gondolo, Phys. Lett. B357 (1995) 595.
[76] J. Edsjö, PhD Thesis, hep-ph/9704384.
[77] L. Bergstrom, T. Damour, J. Edsjo, L. M. Krauss and P. Ullio, indirect detection rates,” JHEP
9908, 010 (1999) [hep-ph/9905446].
[78] M.W. Goodman and E. Witten, Phys. Rev. D31 (1985) 3059.
[79] A. Bottino et al., Phys. Lett. B402 (1997) 113.
[80] A. Gould, Astrophys. J. 321 (1987) 571.
[81] A. Gould, Astrophys. J. 368 (1991) 610
[82] A. Gould, Astrophys. J. 388 (1992) 338.
[83] J. Ellis and R. Flores, Nucl. Phys. B307 (1988) 883; Phys. Lett B263 (1991) 259.
[84] J. Engel, Phys. Lett. B264 (1991) 114.
[85] K. Griest, Phys. Rev. D28 (1988) 2357; R. Barbieri, M. Frigeni and G.F. Giudice, Nucl. Phys.
B313 (1989) 725; G. Gelmini, P. Gondolo and E. Roulet, Nucl. Phys. B351 (1991) 623; M.
Kamionkowski, Phys. Rev. D44 (1991) 3021; A. Bottino et al., Astropart. Phys. 2 (1994) 77.
[86] J. Gasser, H. Leutwyler and M.E. Sainio, Phys. Lett. B253 (1991) 252.
[87] D. Adams et al, Phys. Lett. B357 (1995) 248.
[88] R.L. Jaffe and A. Manohar, Nucl. Phys. 337 (1990) 509.
[89] J. Engel and P. Vogel, Phys. Rev. D40 (1989) 3132; J. Engel, S. Pittel and P. Vogel, Int. J.
Mod. Phys. E1 (1992) 1.
[90] T. Sjöstrand, Comm. Phys. Comm. 82 (1994) 74; T. Sjöstrand, PYTHIA 5.7 and JETSET
7.4. Physics and Manual, CERN-TH.7112/93, hep-ph/9508391 (revised version).
[91] S. Ritz and D. Seckel, Nucl. Phys. B304 (1988) 877.
[92] J. Edsjö, Diploma Thesis, Uppsala University preprint TSL/ISV-93-0091 (ISSN 0284-2769),
can be downloaded from http://www.physto.se/~edsjo/articles/index.html.
J. Edsjö, in Trends in Astroparticle Physics, Stockholm, Sweden, 1994, eds. L. Bergström,
P. Carlson, P.O. Hulth and H. Snellman, Nucl. Phys. (Proc. Suppl.) B43 (1995) 265.
[93] J. Edsjö and P. Gondolo, Phys. Lett. B357 (1995) 595.

BIBLIOGRAPHY

343

[94] L. Krauss, Cold dark matter candidates and the solar neutrino problem, Harvard preprint
HUTP-85/A008a (1985);
W.H. Press and D.N Spergel, Astrophys. J. 296 (1985) 679;
J. Silk, K. Olive and M. Srednicki, Phys. Rev. Lett. 55 (1985) 257;
L. Krauss, M. Srednicki and F. Wilczek, Phys. Rev. D33 (1986) 2079;
T. Gaisser, G. Steigman and S. Tilav, Phys. Rev. D34 (1986) 2206;
K. Griest and S. Seckel, Nucl. Phys. B283 (1987) 681, erratum ibid. B296 (1988) 1034;
L.M. Krauss, K. Freese, D.N. Spergel and W.H. Press, Astrophys. J. 299 (1985) 1001;
J. Hagelin, K. Ng and K. Olive, Phys. Lett. B180 (1987) 375;
K. Freese, Phys. Lett. B167 (1986) 295;
M. Kamionkowski, Phys. Rev. D44 (1991) 3021;
F. Halzen, T. Stelzer and M. Kamionkowski, Phys. Rev. D45 (1992) 4439;
A. Bottino, V. de Alfaro, N. Fornengo, G. Mignola and M. Pignone, Phys. Lett. B265
(1991) 57; A. Bottino, N. Fornengo, G. Mignola, L. Moscoso, Astropart. Phys. 3 (1995) 65
[hep-ph/9408391];
R. Gandhi, J.L. Lopez, D.V. Nanopoulos, K. Yuan and A. Zichichi, Phys. Rev. D49 (1994)
3691 [astro-ph/9309048];
L. Bergström, J. Edsjö and P. Gondolo, Phys. Rev. D55 (1997) 1765 [hep-ph/9607237];
L. Bergstrom, J. Edsjo and P. Gondolo, Phys. Rev. D58, 103519 (1998) [hep-ph/9806293].
[95] F. Halzen, Comments Nucl. Part. Phys. 22 (1997) 155.
[96] G.F. Giudice and E. Roulet, Nucl. Phys. B316 (1989) 429.
F. Halzen, T. Stelzer and M. Kamionkowski, Phys. Rev. D45 (1992) 4439.
M. Drees, G. Jungman, M. Kamionkowski and M.M. Nojiri, Phys. Rev. D49 (1994) 636.
R. Gandhi, J.L. Lopez, D.V. Nanopoulos, K. Yuan and A. Zichichi, Phys. Rev. D49 (1994)
3691.
A. Bottino, N. Fornengo, G. Mignola and L. Moscoso, Astropart. Phys. 3 (1995) 65.
G. Jungman and M. Kamionkowski, Phys. Rev. D51 (1995) 328.
V. Berezinsky, A. Bottino, J. Ellis, N. Fornengo, G. Mignola and S. Scopel, hep-ph/9603342.
[97] L. Bergström, J. Edsjö and P. Gondolo, Phys. Rev. D58
[98] M. Kamionkowski, G. Jungman, K. Griest and B. Sadoulet, Phys. Rev. Lett. 74 (1995) 5174.
[99] J. Edsjö and P. Gondolo, Phys. Lett. B357 (1995) 595.
[100] L. Bergström, J. Edsjö and M. Kamionkowski, Astropart. Phys. 7 (1997) 147.
[101] T. Damour and L.M. Krauss, Phys. Rev. Lett. 81 (1998) 5726 [astro-ph/9806165].
[102] T. Damour and L.M. Krauss, Phys. Rev. D59 (1999) 063509 [astro-ph/9807099].
[103] G. Steigman, C.L. Sarazin, H. Quintana and J. Faulkner, Astrophys. J. 83 (1978) 1050;
K. Griest, Phys. Rev. D37 (1988) 2703;
A. Gould, J.A. Frieman and K. Freese, Phys. Rev. D39 (1989) 1029;
J.I. Collar, Phys. Rev. D59 (1999) 063514 [astro-ph/9808058].
[104] A. Gould, Astrophys. J. 368 (1991) 610.
[105] A. Gould and S. M. Khairul Alam, astro-ph/9911288.
[106] J.N. Bahcall and M.H. Pinsonneault, Rev. Mod. Phys. 64 (1992) 885.

344

BIBLIOGRAPHY

[107] The Earth: its properties, composition, and structure. Britannica CD, Version 99 c 1994–
1999. Encyclopædia Britannica, Inc.
[108] L. Bergström, J. Edsjö and P. Ullio, Astrophys. J. 526 (1999) 215.
[109] J.W. Bieber et al., Phys. Rev. Lett. 83 (1999) 674.
[110] Ullio, P. & Bergström, L. 1998, Phys. Rev., D57, 1962.
[111] Drees, M., Jungman, G., Kamionkowski, M. & Nojiri, M.M. 1994, Phys. Rev., D49, 636.
[112] L. Bergström and P. Ullio, Nucl. Phys. B504 (1997) 27; see also Z. Bern, P. Gondolo and M.
Perelstein, Phys. Lett. B411 (1997) 86.
[113] J.F. Navarro, C.S. Frenk and S.D.M. White, Ap. J. 462 (1996) 563.
[114] Bergström, L., Edsjö, J., Gondolo, P. & Ullio, P. 1999, Phys. Rev., D59, 043506.
[115] P. Ullio, astro-ph/9904086.
[116] Berezinskii, V.S., Bulanov, S., Dogiel, V., Ginzburg, V. & Ptuskin, V. 1990, Astrophysics of
cosmic rays, North-Holland, Amsterdam.
[117] Gaisser, T.K. 1990, Cosmic rays and particle physics, Cambridge University Press, Cambridge.
[118] Chardonnet, P., Mignola, G., Salati, P. & Taillet, R. 1996, Phys. Lett., B384, 161.
[119] Bottino, A., Donato, F., Fornengo, N. & Salati, P. 1998, Phys. Rev. D58 123503.
[120] Fisk, L.A. 1971, J. Geophys. Res., 76, 221.
[121] E.A. Baltz and J. Edsjö, Phys. Rev. D59 (1999) 023511.
[122] Bergström, L., Ullio, P. & Buckley, J.H. 1998, Astrop. Phys. 9, 137.
[123] W.R. Webber, M.A. Lee and M. Gupta, Astrophys. J. 390 (1992) 96.
[124] M. Kamionkowski and M. S. Turner, Phys. Rev. D43 (1991) 1774.
[125] M.S. Longair, High Energy Astrophysics, (Cambridge University Press, New York, 1994), Vol.
2, Chap. 19.
[126] I.V. Moskalenko and A.W. Strong, Astrophys. J. 493 (1998) 694.
[127] W. Dehnen and J. Binney, astro-ph/9612059 (1997).
[128] R. Carlberg, Astrophys. J. 433 (1994) 468.
[129] A.V. Kravtsov et al., Ap. J. in press, astro-ph/9708176.
[130] B. Moore et al., astro-ph/9709051, Astrophys. J. Lett., submitted.
[131] V.S. Berezinsky, A.V. Gurevich and K.P. Zybin, Phys. Lett. B294 (1992) 221.
[132] R.A. Flores and J.R. Primack, Astrophys. J. 427 (1994) L1.
[133] A. Burkert and J. Silk, astro-ph/9707343 (1997).
[134] T. Fukushige and J. Makino, Astrophys. J. 487 (1997) L9.
[135] N.W. Evans and J.L. Collett, astro-ph/9702085.

BIBLIOGRAPHY

345

[136] D. N. Spergel and P. J. Steinhardt, Phys. Rev. Lett. 84 (2000) 3760.
[137] M. Kaplinghat, L. Knox and M. S. Turner, astro-ph/0005210.
[138] P. Gondolo and J. Silk, Phys. Rev. Lett. 83 (1999) 1719 [astro-ph/9906391].
[139] P. Gondolo, hep-ph/0002226.
[140] P. Ullio, PhD thesis, Physics Department, Stockholm University, 1999.
[141] C.S. Kochanek, Astrophys. J. 457 (1996) 228.
[142] D.N.C. Lin, B.F. Jones and A.R. Klemola, Astrophys. J. 439 (1995) 652.
[143] F.J. Kerr and D. Lynden-Bell, MNRAS 221 (1986) 1023.
[144] M.J. Reid, ARA&A 31 (1993) 345.
[145] R.P. Olling and M.R. Merrifield, aspro-ph/9711157, to appear in proceedings of the Workshop
on Galactic Halos, Santa Cruz, August 1997 (ASP conference Series).
[146] K. Kuijken and G. Gilmore Astrophys. J. 367 (1991) L9.
[147] A. Gould, MNRAS 244 (1990) 25.
[148] J. Silk and M. Srednicki, Phys. Rev. Lett 53 (1984) 624;
J. Silk and H. Bloemen, Astrophys. J. 313 (1987) L47;
S. Rudaz and F.W. Stecker, Astrophys. J. 325 (1988) 16;
F.W. Stecker and A. Tylka, Astrophys. J. 343 (1989) 169;
H.-U. Bengtsson, P. Salati and J. Silk, Nucl Phys. B346 (1990) 129;
E. Diehl, G.L. Kane, C. Kolda and J.D. Wells, Phys. Rev. D52 (1994) 4223;
P. Chardonnet, P. Salati, J. Silk, I. Grenier, and G. Smoot, Astrophys. J. 454 (1995) 774.
[149] M. Srednicki, S. Theisen and J. Silk, Phys. Rev. Lett. 56, 263 (1986); Erratum-ibid. 56, 1883
(1986);
S. Rudaz, Phys. Rev. Lett. 56, 2128 (1986).
[150] L. Bergström and H. Snellman, Phys. Rev. D37 (1988) 3737;
S. Rudaz, Phys. Rev. D39 (1989) 3549;
G.F. Giudice and K. Griest, Phys. Rev. D40 (1989) 2549;
A. Bouquet, P. Salati and J. Silk, Phys. Rev. D40 (1989) 3168;
V. Berezinsky, A. Bottino and V. de Alfaro, Phys. Lett. B274 (1992) 122;
M. Urban et al., Phys. Lett. B293 (1992) 149;
L. Bergström and J. Kaplan, Astropart. Phys. 2 (1994) 261.
[151] G. Jungman and M. Kamionkowski, Phys. Rev. D51 (1995) 3121.
[152] K. Fujikawa, Phys. Rev. D7 (1973) 393.
[153] M.S. Turner, Phys. Rev. D34 (1986) 1921;
J.R. Ipser and P. Sikivie, Phys. Rev. D35 (1987) 3695;
K. Freese and J. Silk, Phys. Rev. D40 (1989) 3828;
V. Berezinsky, A. Bottino and G. Mignola, Phys. Lett. B325 (1994) 136.
[154] G. Lake, Nature 346 (1990) 39;
J. Silk and A. Stebbins, Astrophys. J. 411 (1993) 439;
C. Calcaneo-Roldan and B. Moore, Phys. Rev. D62 (2000) 123005.
[155] L. Bergström, J. Edsjö and P. Ullio, Phys. Rev. D 58, (1998) 083507.

346

BIBLIOGRAPHY

[156] L. Bergström, J. Edsjö and C. Gunnarsson, Phys. Rev. D 63, 083515 (2001).
[157] E. A. Baltz, C. Briot, P. Salati, R. Taillet and J. Silk, Phys. Rev. D 61, 023514 (2000).
[158] D.B. Cline and Y.-T. Gao, Astronomy and Astrophys. 231 (1990) L23;
Y.-T. Gao, F.W. Stecker and D.B. Cline, Astronomy and Astrophys. 249, 1 (1991).
[159] L. Bergström, J. Edsjö and P. Ullio, Phys. Rev. Lett. (2001) in press.
[160] Gleeson, L.J. & Axford, W.I. 1967, ApJ, 149, L115.
[161] M. Kamionkowski, Phys. Rev. D44 (1991) 3021.
[162] X. Chen, M. Kamionkowski and X. Zhang, Phys. Rev. D64 (2001) 021302; S. Hofmann,
D.J. Schwarz and H. Stocker, Phys. Rev. D64 (2001) 083507.
[163] Feynhiggs.
[164] FeynHiggsFast.
[165] higgsqcd.
[166] chardonnay.
[167] bottinopbar.
[168] linejk.
[169] Gould321.
[170] P. Gondolo, private communication.
[171] K. Griest and D. Seckel, Phys. Rev. D43 (1991) 3191.
[172] W.F. Mcdonough, Treatise on Geochemistry, Vol 2, Elsevier, 2003. (The values for the Earth
composition are very close to those in The Encyclopedia of Geochemistry, Eds. Marshall and
Fairbridge, Klower Acadmic Publ, 1998.)
[173] Perl script form2f to convert from Form output to Fortran output, written by J. Edsjö.
[174] L. Bergström and P. Ullio, Nucl. Phys. B504 (1997) 27.
[175] P. Ullio and L. Bergström, Phys. Rev. D57 (1998) 1962.
[176] L. Bergström, P. Ullio and J. Buckley, Astrop. Phys. 9 (1998) 137.
[177] J. Edsjö, ... SFCOANN.
[178] P. Gambino and M. Misiak, Nucl. Phys. B611 (2001) 338.
[179] A. J. Buras, A. Czarnecki, M. Misiak and J. Urban, Nucl. Phys. B631 (2002) 219.
[180] M. Ciuchini, G. Degrassi, P. Gambino and G. F. Giudice, Nucl. Phys. B527 (1998) 21.
[181] G. Degrassi, P. Gambino and G. F. Giudice, JHEP 0012 (2000) 009.
[182] M. Ciuchini, G. Degrassi, P. Gambino and G. F. Giudice, Nucl. Phys. B534 (1998) 3.
[183] K. Okumura and L. Roszkowski, hep-ph/0212007, Proceedings SUSY02.
[184] K. Hagiwara et al., Phys. Rev. D66 (2002) 010001.

BIBLIOGRAPHY

347

[185] F. Donato, N. Fornengo and P. Salati, Phys. Rev. D62 (2000) 043003.
[186] J. Lundberg and J. Edsjö, Phys. Rev. D69(2004) 123505. [astro-ph/0401113]
[187] A. Gould, Gravitational diffusion of solar system WIMPs, Astrophys. J. 368 (1991) 610.
[188] P. Farinella, C. Froeschlé, C. Froeschlé, R. Gonczi, G. Hahn, A. Morbidelli and G.B. Velsecchi,
Asteroids falling into the Sun, Nature 371 (1994) 314).
[189] A. Gould and S.M.K Alam, Can heavy WIMPs be captured by the Earth?, Astrophys. J. 549
(2001) 72.
[190] BP2000 solar model.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
Page Count                      : 347
Page Mode                       : UseOutlines
Producer                        : dvips + AFPL Ghostscript 8.13
Create Date                     : 2006:06:28 16:27:23
Modify Date                     : 2006:06:28 16:27:23
Creator                         : LaTeX with hyperref package
Title                           : 
Subject                         : 
Author                          : 
EXIF Metadata provided by EXIF.tools

Navigation menu