~maddm/maddm/python3

« back to all changes in this revision

Viewing changes to Templates/src/maddm.f

  • Committer: olivier-mattelaer
  • Date: 2020-12-16 22:35:26 UTC
  • mfrom: (26.1.13 tools2020)
  • Revision ID: olivier-mattelaer-20201216223526-xkyuztwvs8x1i2gn
passing to v3.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
      include 'alfas.inc'
14
14
 
15
15
c parameters used in this routine only
16
 
      Integer sm_flag, prnt_tag, k, ii
 
16
      Integer sm_flag, prnt_tag, k, ii, i_proc
17
17
      double precision Oh2, sigv
18
18
      double precision total_events, sigmawnSI, sigmawpSI
19
19
      double precision sigmawnSD, sigmawpSD
20
20
      double precision vID_natural
 
21
      double precision cross_sec_relic(size(process_names)), tot_cross_sec, channel_percent
 
22
      Integer process_relic_name_indexes(size(process_names)), process_index
21
23
      character(len=32) outfilename
22
24
c      double precision total_cross
23
25
 
128
130
          write(33,*) 'sigmaN_SD_n: ', sigma_neutron_SD, ' GeV^-2',
129
131
     &                ':', sigma_neutron_SD*gevtopb, ' pb'
130
132
          write(33,*) 'Nevents: ', Nint(total_events)
131
 
          write(33,*) 'smearing: ', sm_flag
 
133
        write(33,*) 'smearing: ', sm_flag
 
134
        
 
135
c     Compute the relic density channels percentage
 
136
c     loop over all the pairs of DM initial states
 
137
      if (do_relic_density) then
 
138
            i_proc = 1
 
139
            do x1=1,ndmparticles
 
140
                  do x2=x1,ndmparticles
 
141
c                 loop over all the annihilation diagrams for each DM particle pair
 
142
                        do x3=1,ann_nprocesses(x1,x2)
 
143
                              call get_process_index(x1,x2,x3,1,process_index)
 
144
                              process_relic_name_indexes(i_proc) = process_index
 
145
                              cross_sec_relic(i_proc) = cross_check_process(x1,x2,x3,1,mdm(1)/x_f,mdm(1)/x_f,1)
 
146
                              i_proc = i_proc + 1
 
147
                        enddo
 
148
c                 loop over all the DM -> DM diagrams for each DM particle pair
 
149
                        do x3=1,dm2dm_nprocesses(x1,x2)
 
150
                              call get_process_index(x1,x2,x3,2,process_index)
 
151
                              process_relic_name_indexes(i_proc) = process_index
 
152
                              cross_sec_relic(i_proc) = cross_check_process(x1,x2,x3,2,mdm(1)/x_f,mdm(1)/x_f,1)
 
153
                              i_proc = i_proc + 1
 
154
                        enddo
 
155
                  enddo
 
156
            enddo
 
157
 
 
158
c     Total cross section
 
159
            tot_cross_sec = 0.0
 
160
            do i_proc=1, size(cross_sec_relic)
 
161
                  tot_cross_sec = tot_cross_sec + cross_sec_relic(i_proc)
 
162
            enddo
 
163
            
 
164
c     Write to output
 
165
            do i_proc=1, size(cross_sec_relic)
 
166
                  channel_percent = 100*cross_sec_relic(i_proc)/tot_cross_sec
 
167
                  write(33,*) '%:',process_names(process_relic_name_indexes(i_proc)),' ',channel_percent
 
168
            enddo
 
169
      endif
132
170
 
133
171
 
134
172
      if (do_capture.and.do_direct_detection) then