~maddevelopers/mg5amcnlo/3.0.2-alpha0-merged3.2.0

« back to all changes in this revision

Viewing changes to Template/LO/SubProcesses/myamp.f

  • Committer: olivier-mattelaer
  • Date: 2021-05-06 14:57:23 UTC
  • mfrom: (956.2.9 3.0)
  • Revision ID: olivier-mattelaer-20210506145723-oasykft3zdy37td2
merge with 3.1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
c
39
39
      include 'maxamps.inc'
40
40
      integer iforest(2,-max_branch:-1,lmaxconfigs)
41
 
      common/to_forest/ iforest
 
41
      integer tstrategy(lmaxconfigs)
 
42
      common/to_forest/iforest, tstrategy
42
43
      integer sprop(maxsproc,-max_branch:-1,lmaxconfigs)
43
44
      integer tprid(-max_branch:-1,lmaxconfigs)
44
45
      common/to_sprop/sprop,tprid
77
78
         include 'props.inc'
78
79
         nbw = 0
79
80
         do i=-1,-(nexternal-3),-1
80
 
            if (iforest(1,i,iconfig) .eq. 1 .or. prwidth(i,iconfig).le.0) then
 
81
            if (iforest(1,i,iconfig) .eq. 1 .or. prwidth(i,iconfig).le.0.or.
 
82
     &                       (nincoming.eq.2.and.iforest(1,i,iconfig) .eq. 2)) then
81
83
              cycle
82
84
            endif
83
85
            nbw=nbw+1
110
112
c     Start loop over propagators
111
113
      do i=-1,-(nexternal-3),-1
112
114
         onbw(i) = .false.
113
 
         if (iforest(1,i,iconfig) .eq. 1) tsgn=-1d0
 
115
         if (iforest(1,i,iconfig) .eq. 1.or.(nincoming.eq.2.and.iforest(1,i,iconfig).eq.2)) tsgn=-1d0
114
116
         do j=0,3
115
117
            xp(j,i) = xp(j,iforest(1,i,iconfig))
116
118
     $           +tsgn*xp(j,iforest(2,i,iconfig))
123
125
c            write(*,*) 'xmass',xmass,prmass(i,iconfig)
124
126
c
125
127
c           Here we set if the BW is "on-shell" for LesHouches
126
 
c            
127
 
            prwidth_tmp(i,iconfig) = max(prwidth(i,iconfig), prmass(i,iconfig)*small_width_treatment)
128
 
 
 
128
c
 
129
            if (prwidth(i,iconfig).gt.0) then
 
130
               prwidth_tmp(i,iconfig) = max(prwidth(i,iconfig), prmass(i,iconfig)*small_width_treatment)
 
131
            else
 
132
               prwidth_tmp(i,iconfig) = 0d0
 
133
            endif
129
134
            onshell = (abs(xmass - prmass(i,iconfig)) .lt.
130
135
     $           bwcutoff*prwidth_tmp(i,iconfig).and.
131
136
     $           (prwidth_tmp(i,iconfig)/prmass(i,iconfig).lt.0.1d0.or.
247
252
      common/to_smin/ Smin
248
253
 
249
254
      integer iforest(2,-max_branch:-1,lmaxconfigs)
250
 
      common/to_forest/ iforest
 
255
      integer tstrategy(lmaxconfigs)
 
256
      common/to_forest/iforest, tstrategy
251
257
 
252
258
      integer sprop(maxsproc,-max_branch:-1,lmaxconfigs)
253
259
      integer tprid(-max_branch:-1,lmaxconfigs)
310
316
c      etmin = 10
311
317
      nt = 0
312
318
      do i = -nexternal,-1
313
 
         prwidth_tmp(i,iconfig) = max(prwidth(i,iconfig), prmass(i,iconfig)*small_width_treatment)
 
319
         if (prwidth(i,iconfig) .gt.0d0)then
 
320
            prwidth_tmp(i,iconfig) = max(prwidth(i,iconfig), prmass(i,iconfig)*small_width_treatment)
 
321
         else
 
322
            prwidth_tmp(i,iconfig) = 0d0
 
323
         endif
314
324
      enddo
315
325
 
316
326
 
354
364
 
355
365
c     Start loop over propagators
356
366
      do i=-1,-(nexternal-3),-1
357
 
         if (iforest(1,i,iconfig) .eq. 1) tsgn=-1d0
358
 
         if (tsgn .eq. 1d0) then                         !s channel
 
367
         if (iforest(1,i,iconfig) .eq. 1.or.iforest(1,i,iconfig) .eq. 2)then
 
368
              tsgn=-1d0
 
369
         endif
 
370
         if (tsgn .eq. 1d0) then !s channel
359
371
            xm(i) = xm(iforest(1,i,iconfig))+xm(iforest(2,i,iconfig))
360
372
            xe(i) = xe(iforest(1,i,iconfig))+xe(iforest(2,i,iconfig))
361
373
            mtot = mtot - xm(i)
514
526
         endif
515
527
      enddo
516
528
c     Perform setting for shat (PDF BW or 1/s)
517
 
      if (abs(lpp(1)) .eq. 1 .or. abs(lpp(2)) .eq. 1) then
 
529
      if (abs(lpp(1)) .ge. 1 .or. abs(lpp(2)) .ge. 1) then
518
530
c     Set minimum based on: 1) required energy 2) resonances 3) 1/10000 of sqrt(s)
519
531
         i = max(1,3*(nexternal-2) - 4 + 1)
520
532
         xo = max(min(etot**2/stot, 1d0-1d-8),1d0/stot)