~madteam/mg5amcnlo/series2.0

« back to all changes in this revision

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

  • Committer: olivier Mattelaer
  • Date: 2015-03-05 00:14:16 UTC
  • mfrom: (258.1.9 2.3)
  • mto: (258.8.1 2.3)
  • mto: This revision was merged to the branch mainline in revision 259.
  • Revision ID: olivier.mattelaer@uclouvain.be-20150305001416-y9mzeykfzwnl9t0j
partial merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
## if(not AmplitudeReduction){
1
2
C THE SUBROUTINE TO CREATE THE COEFFICIENTS FROM LAST LOOP WF AND 
2
3
C MULTIPLY BY THE BORN
3
4
 
4
 
      SUBROUTINE %(mp_prefix)s%(proc_prefix)sCREATE_LOOP_COEFS(LOOP_WF,RANK,LCUT_SIZE,LOOP_GROUP_NUMBER,SYMFACT,COLOR_ID,HELCONFIG)
 
5
      SUBROUTINE %(mp_prefix)s%(proc_prefix)sCREATE_LOOP_COEFS(LOOP_WF,RANK,LCUT_SIZE,LOOP_GROUP_NUMBER,SYMFACT,MULTIPLIER,COLOR_ID,HELCONFIG)
5
6
          implicit none
6
7
C  
7
8
C CONSTANTS 
8
9
9
 
          %(nbornamps_decl)s
 
10
## if (not LoopInduced) {
 
11
          INTEGER NBORNAMPS
 
12
      PARAMETER (NBORNAMPS=%(nbornamps)d)
 
13
## }
10
14
          %(real_format)s ZERO,ONE
11
15
          PARAMETER (ZERO=%(zero_def)s,ONE=%(one_def)s)
12
16
          %(complex_format)s IMAG1
30
34
C ARGUMENTS 
31
35
C  
32
36
      %(complex_format)s LOOP_WF(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
33
 
          INTEGER RANK, COLOR_ID, SYMFACT, LCUT_SIZE, HELCONFIG, LOOP_GROUP_NUMBER
 
37
          INTEGER RANK, COLOR_ID, SYMFACT, MULTIPLIER, LCUT_SIZE, HELCONFIG, LOOP_GROUP_NUMBER
34
38
C  
35
39
C LOCAL VARIABLES 
36
40
C
62
66
 
63
67
          INTEGER HELPICKED
64
68
          common/%(proc_prefix)sHELCHOICE/HELPICKED
65
 
 
66
 
          %(born_amps_decl)s
 
69
      
 
70
## if(not LoopInduced) {
 
71
          %(complex_format)s AMP(NBORNAMPS)
 
72
          common/%(proc_prefix)s%(mp_prefix)sAMPS/AMP
 
73
## }
67
74
      
68
75
          DO I=1,NAMPSO
69
76
            CONST(I)=CMPLX_ZERO
77
84
          
78
85
      DO I=1,NAMPSO
79
86
            IF (CONST(I).NE.CMPLX_ZERO) THEN
80
 
              CONST(I)=CONST(I)/SYMFACT
 
87
              CONST(I)=(CONST(I)*MULTIPLIER)/SYMFACT
81
88
              IF (.NOT.CHECKPHASE.AND.HELDOUBLECHECKED.AND.HELPICKED.EQ.-1) THEN
82
89
                CONST(I)=CONST(I)*GOODHEL(HELCONFIG)
83
90
              ENDIF
86
93
      ENDDO
87
94
 
88
95
          END
 
96
## }else{
 
97
C The subroutine to create the loop coefficients form the last loop wf.
 
98
C In this case of loop-induced process, the reduction is performed at the loop
 
99
C amplitude level so that no multiplication is performed.
 
100
 
 
101
      SUBROUTINE %(mp_prefix)s%(proc_prefix)sCREATE_LOOP_COEFS(LOOP_WF,RANK,LCUT_SIZE,LOOP_GROUP_NUMBER,SYMFACT,MULTIPLIER)
 
102
          implicit none
 
103
C  
 
104
C CONSTANTS 
 
105
 
106
          %(real_format)s ZERO,ONE
 
107
          PARAMETER (ZERO=%(zero_def)s,ONE=%(one_def)s)
 
108
          %(complex_format)s IMAG1
 
109
      PARAMETER (IMAG1=(ZERO,ONE))
 
110
          %(complex_format)s CMPLX_ZERO
 
111
          PARAMETER (CMPLX_ZERO=(ZERO,ZERO))
 
112
          INTEGER MAXLWFSIZE
 
113
          PARAMETER (MAXLWFSIZE=%(max_lwf_size)d)
 
114
          INTEGER LOOPMAXCOEFS
 
115
          PARAMETER (LOOPMAXCOEFS=%(loop_max_coefs)d)
 
116
          INTEGER    NLOOPGROUPS
 
117
      PARAMETER (NLOOPGROUPS=%(nloop_groups)d)
 
118
          INTEGER    NCOMB
 
119
      PARAMETER (NCOMB=%(ncomb)d)
 
120
C  
 
121
C ARGUMENTS 
 
122
C  
 
123
      %(complex_format)s LOOP_WF(MAXLWFSIZE,0:LOOPMAXCOEFS-1,MAXLWFSIZE)
 
124
          INTEGER RANK, SYMFACT, LCUT_SIZE, LOOP_GROUP_NUMBER, MULTIPLIER
 
125
C  
 
126
C LOCAL VARIABLES 
 
127
C
 
128
      %(complex_format)s CONST
 
129
      INTEGER I,J
 
130
C
 
131
C GLOBAL VARIABLES
 
132
C
 
133
      %(complex_format)s LOOPCOEFS(0:LOOPMAXCOEFS-1,NLOOPGROUPS)
 
134
          common/%(proc_prefix)s%(mp_prefix)sLCOEFS/LOOPCOEFS
 
135
C
 
136
C BEGIN CODE
 
137
C
 
138
          CONST=CMPLX((ONE*MULTIPLIER)/SYMFACT,ZERO,KIND=16)
 
139
 
 
140
      CALL %(mp_prefix)s%(proc_prefix)sMERGE_WL(LOOP_WF,RANK,LCUT_SIZE,CONST,LOOPCOEFS(0,LOOP_GROUP_NUMBER))
 
141
 
 
142
          END
 
143
## }