~maddevelopers/mg5amcnlo/2.9.4

« back to all changes in this revision

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

pass to v2.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
      COMMON/to_qmass/qmass
40
40
      double precision      spole(maxinvar),swidth(maxinvar),bwjac
41
41
      common/to_brietwigner/spole          ,swidth          ,bwjac
 
42
 
 
43
      double precision Smin
 
44
      common/to_smin/ Smin
42
45
c--cuts
43
46
      double precision etmin(nincoming+1:nexternal)
44
47
      double precision etamax(nincoming+1:nexternal)
81
84
c
82
85
c
83
86
c     reading parameters
84
 
      include '../../Source/run_config.inc'
 
87
      include 'run_config.inc'
85
88
      character*20 param(maxpara),value(maxpara)
86
89
      integer npara
87
90
c
110
113
            scale=pmass(1)
111
114
            fixed_ren_scale=.true.
112
115
            fixed_fac_scale=.true.
 
116
            use_syst=.false.
113
117
         endif
114
118
c
115
119
c     set ptj and s_min if xqcut and ktscheme = 1, to improve
134
138
            write(*,*) 'Note that this might affect non-radiated jets,'
135
139
            write(*,*) 'e.g. from decays. Use cut_decays=F in run_card.'
136
140
          else if(mmjj.gt.xqcut)then
 
141
c           In principle this should never happen since the banner.py
 
142
c           is expected to correct this already.
137
143
            mmjj=0d0
138
144
            write(*,*) 'Warning! mmjj set to 0 since xqcut > 0 and'
139
145
            write(*,*) '         auto_ptj_mjj = F'
250
256
c     et and eta cuts
251
257
c
252
258
      do i=nincoming+1,nexternal
253
 
 
 
259
         Smin = 0d0
254
260
         etmin(i)  = 0d0
255
261
         etmax(i)  = -1
256
262
 
262
268
 
263
269
         if(do_cuts(i)) then
264
270
 
265
 
            if(is_a_j(i)) etmin(i)=ptj
266
 
            if(is_a_l(i)) etmin(i)=ptl
267
 
            if(is_a_b(i)) etmin(i)=ptb
268
 
            if(is_a_a(i)) etmin(i)=pta
269
 
            if(is_a_onium(i)) etmin(i)=ptonium
270
 
 
271
 
            if(is_a_j(i)) etmax(i)=ptjmax
272
 
            if(is_a_l(i)) etmax(i)=ptlmax
273
 
            if(is_a_b(i)) etmax(i)=ptbmax
274
 
            if(is_a_a(i)) etmax(i)=ptamax
275
 
 
276
 
c
277
 
            if(is_a_j(i)) emin(i)=ej
278
 
            if(is_a_l(i)) emin(i)=el
279
 
            if(is_a_b(i)) emin(i)=eb
280
 
            if(is_a_a(i)) emin(i)=ea
281
 
 
282
 
            if(is_a_j(i)) emax(i)=ejmax
283
 
            if(is_a_l(i)) emax(i)=elmax
284
 
            if(is_a_b(i)) emax(i)=ebmax
285
 
            if(is_a_a(i)) emax(i)=eamax
286
 
 
287
 
            if(is_a_j(i)) etamax(i)=etaj
288
 
            if(is_a_l(i)) etamax(i)=etal
289
 
            if(is_a_b(i)) etamax(i)=etab
290
 
            if(is_a_a(i)) etamax(i)=etaa
291
 
            if(is_a_onium(i)) etamax(i)=etaonium
292
 
 
293
 
            if(is_a_j(i)) etamin(i)=etajmin
294
 
            if(is_a_l(i)) etamin(i)=etalmin
295
 
            if(is_a_b(i)) etamin(i)=etabmin
296
 
            if(is_a_a(i)) etamin(i)=etaamin
 
271
c        JET
 
272
            if(is_a_j(i))then
 
273
                 etmin(i)=ptj
 
274
                 SMIN = SMIN + ptj
 
275
                 etmax(i)=ptjmax
 
276
                 emin(i)=ej
 
277
                 emax(i)=ejmax
 
278
                 etamax(i)=etaj
 
279
                 etamin(i)=etajmin
 
280
            endif
 
281
c        LEPTON
 
282
            if(is_a_l(i))then
 
283
                 etmin(i)=ptl
 
284
                 SMIN = SMIN + ptl
 
285
                 etmax(i)=ptlmax
 
286
                 emin(i)=el
 
287
                 emax(i)=elmax
 
288
                 etamax(i)=etal
 
289
                 etamin(i)=etalmin
 
290
            endif
 
291
c        BJET
 
292
            if(is_a_b(i))then
 
293
                 etmin(i)=ptb
 
294
                 SMIN = SMIN + ptb
 
295
                 etmax(i)=ptbmax
 
296
                 emin(i)=eb
 
297
                 emax(i)=ebmax
 
298
                 etamax(i)=etab
 
299
                 etamin(i)=etabmin
 
300
            endif
 
301
c        PHOTON
 
302
            if(is_a_a(i))then
 
303
                 etmin(i) = max(pta, ptgmin)
 
304
                 SMIN = SMIN + etmin(i)
 
305
                 etmax(i)=ptamax
 
306
                 emin(i)=ea
 
307
                 emax(i)=eamax
 
308
                 etamax(i)=etaa
 
309
                 etamin(i)=etaamin
 
310
            endif
 
311
c        QUARKONIUM
 
312
            if(is_a_onium(i))then
 
313
                 etmin(i)=ptonium
 
314
                 SMIN = SMIN + ptonium
 
315
                 etamax(i)=etaonium
 
316
            endif
297
317
         endif
298
318
      enddo
 
319
      SMIN = SMIN **2
299
320
c
300
321
c     delta r cut
301
322
c
430
451
      ptlmax4(3)=ptl3max
431
452
      ptlmax4(4)=ptl4max
432
453
 
 
454
 
 
455
c
 
456
c     Compute Smin (for efficiency
 
457
c
 
458
      do i=nincoming+1,nexternal-1
 
459
      do j=nincoming+1,nexternal-1
 
460
         if(j.lt.i)then
 
461
            s_min(i,j) = s_min(j,i)
 
462
         else
 
463
            smin=0.0d0**2
 
464
 
 
465
            if(do_cuts(i).and.do_cuts(j)) then
 
466
               if(is_a_j(i).and.is_a_j(j)) s_min(j,i)=mmjj*dabs(mmjj)
 
467
               if(is_a_a(i).and.is_a_a(j)) s_min(j,i)=mmaa*dabs(mmaa)
 
468
               if( is_a_b(i).and.is_a_b(j) ) s_min(j,i)=mmbb*dabs(mmbb)
 
469
               if((is_a_l(i).and.is_a_l(j)).and.
 
470
     &            (abs(idup(i,1,1)).eq.abs(idup(j,1,1))).and.
 
471
     &            (idup(i,1,1)*idup(j,1,1).lt.0))
 
472
     &            s_min(j,i)=mmll*dabs(mmll)  !only on l+l- pairs (same flavour)
 
473
 
 
474
               if(is_a_j(i).and.is_a_j(j)) s_max(j,i)=mmjjmax*dabs(mmjjmax)
 
475
               if(is_a_a(i).and.is_a_a(j)) s_max(j,i)=mmaamax*dabs(mmaamax)
 
476
               if( is_a_b(i).and.is_a_b(j) ) s_max(j,i)=mmbbmax*dabs(mmbbmax)
 
477
               if((is_a_l(i).and.is_a_l(j)).and.
 
478
     &            (abs(idup(i,1,1)).eq.abs(idup(j,1,1))).and.
 
479
     &            (idup(i,1,1)*idup(j,1,1).lt.0))
 
480
     &            s_max(j,i)=mmllmax*dabs(mmllmax)  !only on l+l- pairs (same flavour)
 
481
            endif
 
482
         endif
 
483
      enddo
 
484
      enddo
 
485
 
433
486
c
434
487
c    ERROR TRAPS 
435
488
c