~maddevelopers/mg5amcnlo/3.0.2

« back to all changes in this revision

Viewing changes to Template/NLO/SubProcesses/genps_fks.f

  • Committer: Rikkert Frederix
  • Date: 2019-08-15 14:34:57 UTC
  • mfrom: (956.1.11 mint_module)
  • Revision ID: frederix@physik.uzh.ch-20190815143457-e0kkm72494mh2c6r
Major rewrite of the mint-integrator package. Converted it to a module
for easier extension with additional ideas.

Show diffs side-by-side

added added

removed removed

Lines of Context:
95
95
      double precision p(0:3,nexternal)
96
96
      integer itree(2,-max_branch:-1),iconf
97
97
      common /to_itree/itree,iconf
98
 
      integer ndim
99
 
      common/tosigint/ndim
 
98
      integer nndim
 
99
      common/tosigint/nndim
100
100
      double precision qmass_common(-nexternal:0),qwidth_common(
101
101
     &     -nexternal:0)
102
102
      common /c_qmass_qwidth/qmass_common,qwidth_common
110
110
         virtgranny=0d0
111
111
         return
112
112
      endif
113
 
      call generate_momenta_conf(.true.,ndim,jac,xvar,granny_m2_red
 
113
      call generate_momenta_conf(.true.,nndim,jac,xvar,granny_m2_red
114
114
     &     ,rat_xi_orig,itree,qmass_common,qwidth_common,p)
115
115
      if (jac.gt.0d0) then
116
116
         do j=0,3
152
152
      double precision p(0:3,nexternal)
153
153
      integer itree(2,-max_branch:-1),iconf
154
154
      common /to_itree/itree,iconf
155
 
      integer ndim
156
 
      common/tosigint/ndim
 
155
      integer nndim
 
156
      common/tosigint/nndim
157
157
      double precision qmass_common(-nexternal:0),qwidth_common(
158
158
     &     -nexternal:0)
159
159
      common /c_qmass_qwidth/qmass_common,qwidth_common
177
177
         virtgranny_red=0d0
178
178
         return
179
179
      endif
180
 
      call generate_momenta_conf(.true.,ndim,jac,xvar,granny_m2_red
 
180
      call generate_momenta_conf(.true.,nndim,jac,xvar,granny_m2_red
181
181
     &     ,rat_xi_orig,itree,qmass_common,qwidth_common,p)
182
182
      if (jac.gt.0d0) then
183
183
         do j=1,3
282
282
 
283
283
 
284
284
      
285
 
      subroutine generate_momenta_conf_wrapper(ndim,jac,x,itree,qmass
 
285
      subroutine generate_momenta_conf_wrapper(nndim,jac,x,itree,qmass
286
286
     $     ,qwidth,p)
 
287
      use mint_module
287
288
      implicit none
288
289
      include 'nexternal.inc'
289
290
      include 'genps.inc'
290
291
      include 'nFKSconfigs.inc'
291
 
      integer ndim
 
292
      integer nndim
292
293
      double precision jac,x(99),p(0:3,nexternal)
293
294
      integer itree(2,-max_branch:-1),i,j
294
295
      double precision qmass(-nexternal:0),qwidth(-nexternal:0),del1
367
368
      common /to_abrv/ abrv
368
369
      character*10 shower_mc
369
370
      common /cMonteCarloType/shower_mc
370
 
      logical              fixed_order,nlo_ps
371
 
      common /c_fnlo_nlops/fixed_order,nlo_ps
372
371
c
373
372
      write_granny(nFKSprocess)=.true.
374
373
      which_is_granny(nFKSprocess)=0
405
404
            only_event_phsp=.true.
406
405
            skip_event_phsp=.false.
407
406
            input_granny_m2=.false.
408
 
            call generate_momenta_conf(input_granny_m2,ndim,jac,x
 
407
            call generate_momenta_conf(input_granny_m2,nndim,jac,x
409
408
     $           ,granny_m2_red,rat_xi,itree,qmass,qwidth,p)
410
409
            if (nint(jac).eq.-222) return ! numerical inaccuracy: not
411
410
                                          ! even Born momenta generated.
540
539
c a shower scale. The kinematics won't be used, because below jac=-222
541
540
c and p(0,1)=-99d0.
542
541
            skip_event_phsp=.false. 
543
 
            call generate_momenta_conf(input_granny_m2,ndim,jac,x
 
542
            call generate_momenta_conf(input_granny_m2,nndim,jac,x
544
543
     $           ,granny_m2_red,rat_xi,itree,qmass,qwidth,p)
545
544
            jac=-222
546
545
            p(0,1)=-99d0
554
553
            do i=-1,1
555
554
               granny_m2_red(i)=-99d99
556
555
            enddo
557
 
            call generate_momenta_conf(input_granny_m2,ndim,jac,x
 
556
            call generate_momenta_conf(input_granny_m2,nndim,jac,x
558
557
     $           ,granny_m2_red,rat_xi,itree,qmass,qwidth,p)
559
558
c In this case, we should not write the grandmother in the event file,
560
559
c because the shower should not keep its inv. mass fixed.
592
591
            skip_event_phsp=.false.
593
592
            only_event_phsp=.true.
594
593
            granny_m2_red(0)=xmbe2inv
595
 
            call generate_momenta_conf(input_granny_m2,ndim,jac,x
 
594
            call generate_momenta_conf(input_granny_m2,nndim,jac,x
596
595
     $           ,granny_m2_red,rat_xi_orig,itree,qmass,qwidth,p)
597
596
c multiply event jacobian by the numerically computed jacobian for the
598
597
c derivative
602
601
            input_granny_m2=.false.
603
602
            only_event_phsp=.false.
604
603
            skip_event_phsp=.true.
605
 
            call generate_momenta_conf(input_granny_m2,ndim,jac,x
 
604
            call generate_momenta_conf(input_granny_m2,nndim,jac,x
606
605
     $           ,granny_m2_red,rat_xi,itree,qmass,qwidth,p)
607
606
         endif
608
607
         jac=jac*MC_sum_factor
610
609
         skip_event_phsp=.false.
611
610
         only_event_phsp =.false.
612
611
         input_granny_m2=.false.
613
 
         call generate_momenta_conf(input_granny_m2,ndim,jac,x
 
612
         call generate_momenta_conf(input_granny_m2,nndim,jac,x
614
613
     $        ,granny_m2_red,rat_xi,itree,qmass,qwidth,p)
615
614
      endif
616
615
      end
701
700
c Masses of particles. Should be filled in setcuts.f
702
701
      double precision pmass(nexternal)
703
702
      common /to_mass/pmass
704
 
c     For MINT:
705
 
      integer ifold_energy,ifold_phi,ifold_yij
706
 
      common /cifoldnumbers/ifold_energy,ifold_phi,ifold_yij
707
703
c local
708
704
      integer i,j,nbranch,ns_channel,nt_channel,ionebody
709
705
     &     ,fksconfiguration,icountevts,imother,ixEi,ixyij,ixpi,isolsign
1000
996
      if (.not.only_event_phsp) xij_aor=(0.d0,0.d0)
1001
997
c
1002
998
c These will correspond to the vegas x's for the FKS variables xi_i,
1003
 
c y_ij and phi_i
 
999
c y_ij and phi_i (changing this also requires changing folding parameters)
1004
1000
      ixEi=ndim-2
1005
1001
      ixyij=ndim-1
1006
1002
      ixpi=ndim
1007
 
c Set up the MINT folding:
1008
 
      ifold_energy=ixEi
1009
 
      ifold_phi=ixpi
1010
 
      ifold_yij=ixyij
1011
1003
c
1012
1004
      imother=min(j_fks,i_fks)
1013
1005
      m_j_fks=pmass(j_fks)