~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

Viewing changes to madgraph/iolibs/template_files/loop_optimized/compute_color_flows.inc

  • Committer: olivier Mattelaer
  • Date: 2016-05-12 11:00:18 UTC
  • mfrom: (262.1.150 2.3.4)
  • Revision ID: olivier.mattelaer@uclouvain.be-20160512110018-sevb79f0wm4g8mpp
pass to 2.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
357
357
C  
358
358
C LOCAL VARIABLES 
359
359
C
360
 
          INTEGER I, J, M, N, K, SQSOINDEX, DOUBLEFACT
 
360
          INTEGER I, J, M, N, K, ISQSO, DOUBLEFACT
361
361
          %(complex_dp_format)s COLOR_COEF
362
362
C  
363
363
C FUNCTIONS
401
401
  IF (LoopColorFlowMatrix(I,I)%%Denom.LT.0) COLOR_COEF=COLOR_COEF*IMAG1
402
402
  DO M=1,NLOOPAMPSO
403
403
    DO N=M,NLOOPAMPSO
404
 
      SQSOINDEX = %(proc_prefix)sML5SQSOINDEX(M,N)
405
 
      IF(CHOSEN_SO_CONFIGS(SQSOINDEX)) THEN
 
404
      ISQSO = %(proc_prefix)sML5SQSOINDEX(M,N)
 
405
      IF(CHOSEN_SO_CONFIGS(ISQSO)) THEN
406
406
        IF(M.ne.N) THEN
407
407
          DOUBLEFACT=2 
408
408
        ELSE 
452
452
C  
453
453
C LOCAL VARIABLES 
454
454
C
455
 
          INTEGER I, J, M, N, K, SQSOINDEX, DOUBLEFACT
 
455
          INTEGER I, J, M, N, K, ISQSO, DOUBLEFACT
456
456
## if(LoopInduced) {
457
457
          INTEGER LOWERBOUND
458
458
## }
550
550
        CALL %(proc_prefix)sML5GET_ORDERS_FOR_AMPSOINDEX(M,ORDERS_A)
551
551
        CALL %(proc_prefix)sML5GET_ORDERS_FOR_AMPSOINDEX(N,ORDERS_B)
552
552
C Now figure out to which SQSOINDEX these orders together correspond to *in the Born subroutine* (Notice the absence of the ML5 prefix in the functions used then)
553
 
        SQSOINDEX = %(proc_prefix)sSQSOINDEX(%(proc_prefix)sSOINDEX_FOR_AMPORDERS(ORDERS_A),%(proc_prefix)sSOINDEX_FOR_AMPORDERS(ORDERS_B))
 
553
        ISQSO = %(proc_prefix)sSQSOINDEX(%(proc_prefix)sSOINDEX_FOR_AMPORDERS(ORDERS_A),%(proc_prefix)sSOINDEX_FOR_AMPORDERS(ORDERS_B))
554
554
        IF(J.ne.I) THEN
555
555
          DOUBLEFACT=2 
556
556
        ELSE 
557
557
          DOUBLEFACT=1
558
558
        ENDIF
559
559
        TEMP(1) = DOUBLEFACT*HEL_MULT*DBLE(COLOR_COEF*JAMPB(I,M)*DCONJG(JAMPB(J,N)))
560
 
        RES(0,SQSOINDEX) = RES(0,SQSOINDEX) + TEMP(1)
561
 
        IF((.not.FILTER_SO).or.SQSO_TARGET.eq.-1.or.SQSO_TARGET.eq.SQSOINDEX) THEN
 
560
        RES(0,ISQSO) = RES(0,ISQSO) + TEMP(1)
 
561
        IF((.not.FILTER_SO).or.SQSO_TARGET.eq.-1.or.SQSO_TARGET.eq.ISQSO) THEN
562
562
          RES(0,0) = RES(0,0) + TEMP(1)
563
563
        ENDIF
564
564
      ENDDO
591
591
          ENDIF
592
592
      DO N=LOWERBOUND,NLOOPAMPSO
593
593
## }
594
 
        SQSOINDEX = %(proc_prefix)sML5SQSOINDEX(M,N)
 
594
        ISQSO = %(proc_prefix)sML5SQSOINDEX(M,N)
595
595
## if(LoopInduced){
596
596
        IF(J.ne.I) THEN
597
597
          DOUBLEFACT=2 
626
626
## if(not LoopInduced){      
627
627
          TEMP(K) = 2.0d0*HEL_MULT*DBLE(COLOR_COEF*JAMPL(K,I,M)*DCONJG(JAMPB(J,N)))
628
628
## }
629
 
          RES(K,SQSOINDEX) = RES(K,SQSOINDEX) + TEMP(K)
 
629
          RES(K,ISQSO) = RES(K,ISQSO) + TEMP(K)
630
630
## if(LoopInduced and MadEventOutput){
631
631
                  DO config_i=1,nconfigs
632
 
            AMP2_ALL(K,config_i,SQSOINDEX) = AMP2_ALL(K,config_i,SQSOINDEX) + TEMP_AMP2(K,config_i)
 
632
            AMP2_ALL(K,config_i,ISQSO) = AMP2_ALL(K,config_i,ISQSO) + TEMP_AMP2(K,config_i)
633
633
                  ENDDO
634
634
## }
635
635
        ENDDO
636
 
        IF((.NOT.FILTER_SO).OR.SQSO_TARGET.eq.-1.or.SQSO_TARGET.eq.SQSOINDEX) THEN
 
636
        IF((.NOT.FILTER_SO).OR.SQSO_TARGET.eq.-1.or.SQSO_TARGET.eq.ISQSO) THEN
637
637
          DO K=1,3
638
638
            RES(K,0) = RES(K,0) + TEMP(K)
639
639
## if(LoopInduced and MadEventOutput){