1
SUBROUTINE CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
3
C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
4
C By the MadGraph5_aMC@NLO Development Team
5
C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
7
C Interface between MG5 and CutTools.
9
C Process: g g > w- t b~ QED=1 QCD=2 [ virt = QCD ] WEIGHTED=10
15
PARAMETER (NEXTERNAL=5)
16
LOGICAL CHECKPCONSERVATION
17
PARAMETER (CHECKPCONSERVATION=.TRUE.)
19
PARAMETER (NORMALIZATION = 1.D0/(16.D0*3.14159265358979323846D0*
24
INTEGER NLOOPLINE, RANK
25
REAL*8 PL(0:3,NLOOPLINE)
26
REAL*8 PCT(0:3,0:NLOOPLINE-1)
27
COMPLEX*16 M2L(NLOOPLINE)
28
COMPLEX*16 M2LCT(0:NLOOPLINE-1)
50
COMMON/CT/LSCALE,CTMODE
59
C INITIALIZE CUTTOOLS IF NEEDED
65
C YOU CAN FIND THE DETAILS ABOUT THE DIFFERENT CTMODE AT THE
66
C BEGINNING OF THE FILE CTS_CUTS.F90 IN THE CUTTOOLS DISTRIBUTION
68
C CONVERT THE MASSES TO BE COMPLEX
73
C CONVERT THE MOMENTA FLOWING IN THE LOOP LINES TO CT CONVENTIONS
81
PCT(I,0)=PCT(I,0)+PL(I,J)
84
IF (CHECKPCONSERVATION) THEN
85
IF (PCT(0,0).GT.1.D-6) THEN
86
WRITE(*,*) 'energy is not conserved ',PCT(0,0)
87
STOP 'energy is not conserved'
88
ELSEIF (PCT(1,0).GT.1.D-6) THEN
89
WRITE(*,*) 'px is not conserved ',PCT(1,0)
90
STOP 'px is not conserved'
91
ELSEIF (PCT(2,0).GT.1.D-6) THEN
92
WRITE(*,*) 'py is not conserved ',PCT(2,0)
93
STOP 'py is not conserved'
94
ELSEIF (PCT(3,0).GT.1.D-6) THEN
95
WRITE(*,*) 'pz is not conserved ',PCT(3,0)
96
STOP 'pz is not conserved'
102
PCT(I,J)=PCT(I,J)+PL(I,K)
107
CALL CTSXCUT(CTMODE,LSCALE,MU_R,NLOOPLINE,LOOPNUM,MPLOOPNUM,RANK
108
$ ,PCT,M2LCT,RES,ACC,R1,STABLE)
109
RES(1)=NORMALIZATION*2.0D0*DBLE(RES(1))
110
RES(2)=NORMALIZATION*2.0D0*DBLE(RES(2))
111
RES(3)=NORMALIZATION*2.0D0*DBLE(RES(3))
112
C WRITE(*,*) 'Loop ID',ID,' =',RES(1),RES(2),RES(3)
117
C INITIALISATION OF CUTTOOLS
122
LOGICAL EXT_NUM_FOR_R1
126
INCLUDE 'MadLoopParams.inc'
131
C DEFAULT PARAMETERS FOR CUTTOOLS
132
C -------------------------------
133
C THRS1 IS THE PRECISION LIMIT BELOW WHICH THE MP ROUTINES
136
C LOOPLIB SET WHAT LIBRARY CT USES
140
LOOPLIB=CTLOOPLIBRARY
141
C MADLOOP'S NUMERATOR IN THE OPEN LOOP IS MUCH FASTER THAN THE
142
C RECONSTRUCTED ONE IN CT. SO WE BETTER USE MADLOOP ONE IN THIS
144
EXT_NUM_FOR_R1=.TRUE.
145
C -------------------------------
147
C The initialization below is for CT v1.8.+
148
CALL CTSINIT(THRS,LOOPLIB,EXT_NUM_FOR_R1)
149
C The initialization below is for the older stable CT v1.7, still
150
C used for now in the beta release.
151
C CALL CTSINIT(THRS,LOOPLIB)
155
SUBROUTINE LOOP_5( LID, W1, W2, W3, W4, W5, M1, M2, M3, M4, M5
156
$ , RANK, RES, STABLE, LOOPNUM)
159
PARAMETER (NEXTERNAL=5)
161
PARAMETER (NLOOPLINE=5)
163
PARAMETER (NWAVEFUNCS=28)
165
PARAMETER (NLOOPGROUPS=77)
171
INTEGER W1, W2, W3, W4, W5
172
COMPLEX*16 M1, M2, M3, M4, M5
175
INTEGER LID, RANK, LSYMFACT
181
REAL*8 PL(0:3,NLOOPLINE)
182
COMPLEX*16 M2L(NLOOPLINE)
183
INTEGER PAIRING(NLOOPLINE),WE(5)
184
INTEGER I, J, K, TEMP
191
LOGICAL CHECKPHASE, HELDOUBLECHECKED
192
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
195
INTEGER GOODHEL(NCOMB)
196
LOGICAL GOODAMP(NLOOPGROUPS)
197
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
199
COMPLEX*16 W(20,NWAVEFUNCS)
206
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
228
DO K=TEMP,(TEMP+PAIRING(J)-1)
229
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
234
CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
243
SUBROUTINE LOOP_4_5( LID, P1, P2, P3, P4, W1, W2, W3, W4, W5, M1
244
$ , M2, M3, M4, RANK, RES, STABLE, LOOPNUM)
247
PARAMETER (NEXTERNAL=5)
249
PARAMETER (NLOOPLINE=4)
251
PARAMETER (NWAVEFUNCS=28)
253
PARAMETER (NLOOPGROUPS=77)
259
INTEGER W1, W2, W3, W4, W5
260
COMPLEX*16 M1, M2, M3, M4
261
INTEGER P1, P2, P3, P4
263
INTEGER LID, RANK, LSYMFACT
269
REAL*8 PL(0:3,NLOOPLINE)
270
COMPLEX*16 M2L(NLOOPLINE)
271
INTEGER PAIRING(NLOOPLINE),WE(5)
272
INTEGER I, J, K, TEMP
279
LOGICAL CHECKPHASE, HELDOUBLECHECKED
280
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
283
INTEGER GOODHEL(NCOMB)
284
LOGICAL GOODAMP(NLOOPGROUPS)
285
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
287
COMPLEX*16 W(20,NWAVEFUNCS)
294
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
315
DO K=TEMP,(TEMP+PAIRING(J)-1)
316
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
321
CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
330
SUBROUTINE LOOP_4( LID, W1, W2, W3, W4, M1, M2, M3, M4, RANK
331
$ , RES, STABLE, LOOPNUM)
334
PARAMETER (NEXTERNAL=5)
336
PARAMETER (NLOOPLINE=4)
338
PARAMETER (NWAVEFUNCS=28)
340
PARAMETER (NLOOPGROUPS=77)
346
INTEGER W1, W2, W3, W4
347
COMPLEX*16 M1, M2, M3, M4
350
INTEGER LID, RANK, LSYMFACT
356
REAL*8 PL(0:3,NLOOPLINE)
357
COMPLEX*16 M2L(NLOOPLINE)
358
INTEGER PAIRING(NLOOPLINE),WE(4)
359
INTEGER I, J, K, TEMP
366
LOGICAL CHECKPHASE, HELDOUBLECHECKED
367
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
370
INTEGER GOODHEL(NCOMB)
371
LOGICAL GOODAMP(NLOOPGROUPS)
372
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
374
COMPLEX*16 W(20,NWAVEFUNCS)
381
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
401
DO K=TEMP,(TEMP+PAIRING(J)-1)
402
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
407
CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
416
SUBROUTINE LOOP_2_3( LID, P1, P2, W1, W2, W3, M1, M2, RANK, RES
420
PARAMETER (NEXTERNAL=5)
422
PARAMETER (NLOOPLINE=2)
424
PARAMETER (NWAVEFUNCS=28)
426
PARAMETER (NLOOPGROUPS=77)
436
INTEGER LID, RANK, LSYMFACT
442
REAL*8 PL(0:3,NLOOPLINE)
443
COMPLEX*16 M2L(NLOOPLINE)
444
INTEGER PAIRING(NLOOPLINE),WE(3)
445
INTEGER I, J, K, TEMP
452
LOGICAL CHECKPHASE, HELDOUBLECHECKED
453
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
456
INTEGER GOODHEL(NCOMB)
457
LOGICAL GOODAMP(NLOOPGROUPS)
458
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
460
COMPLEX*16 W(20,NWAVEFUNCS)
467
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
482
DO K=TEMP,(TEMP+PAIRING(J)-1)
483
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
488
CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
497
SUBROUTINE LOOP_2( LID, W1, W2, M1, M2, RANK, RES, STABLE
501
PARAMETER (NEXTERNAL=5)
503
PARAMETER (NLOOPLINE=2)
505
PARAMETER (NWAVEFUNCS=28)
507
PARAMETER (NLOOPGROUPS=77)
517
INTEGER LID, RANK, LSYMFACT
523
REAL*8 PL(0:3,NLOOPLINE)
524
COMPLEX*16 M2L(NLOOPLINE)
525
INTEGER PAIRING(NLOOPLINE),WE(2)
526
INTEGER I, J, K, TEMP
533
LOGICAL CHECKPHASE, HELDOUBLECHECKED
534
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
537
INTEGER GOODHEL(NCOMB)
538
LOGICAL GOODAMP(NLOOPGROUPS)
539
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
541
COMPLEX*16 W(20,NWAVEFUNCS)
548
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
564
DO K=TEMP,(TEMP+PAIRING(J)-1)
565
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
570
CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
579
SUBROUTINE LOOP_3_4( LID, P1, P2, P3, W1, W2, W3, W4, M1, M2, M3
580
$ , RANK, RES, STABLE, LOOPNUM)
583
PARAMETER (NEXTERNAL=5)
585
PARAMETER (NLOOPLINE=3)
587
PARAMETER (NWAVEFUNCS=28)
589
PARAMETER (NLOOPGROUPS=77)
595
INTEGER W1, W2, W3, W4
596
COMPLEX*16 M1, M2, M3
599
INTEGER LID, RANK, LSYMFACT
605
REAL*8 PL(0:3,NLOOPLINE)
606
COMPLEX*16 M2L(NLOOPLINE)
607
INTEGER PAIRING(NLOOPLINE),WE(4)
608
INTEGER I, J, K, TEMP
615
LOGICAL CHECKPHASE, HELDOUBLECHECKED
616
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
619
INTEGER GOODHEL(NCOMB)
620
LOGICAL GOODAMP(NLOOPGROUPS)
621
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
623
COMPLEX*16 W(20,NWAVEFUNCS)
630
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
648
DO K=TEMP,(TEMP+PAIRING(J)-1)
649
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
654
CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)
663
SUBROUTINE LOOP_3( LID, W1, W2, W3, M1, M2, M3, RANK, RES
667
PARAMETER (NEXTERNAL=5)
669
PARAMETER (NLOOPLINE=3)
671
PARAMETER (NWAVEFUNCS=28)
673
PARAMETER (NLOOPGROUPS=77)
680
COMPLEX*16 M1, M2, M3
683
INTEGER LID, RANK, LSYMFACT
689
REAL*8 PL(0:3,NLOOPLINE)
690
COMPLEX*16 M2L(NLOOPLINE)
691
INTEGER PAIRING(NLOOPLINE),WE(3)
692
INTEGER I, J, K, TEMP
699
LOGICAL CHECKPHASE, HELDOUBLECHECKED
700
COMMON/INIT/CHECKPHASE, HELDOUBLECHECKED
703
INTEGER GOODHEL(NCOMB)
704
LOGICAL GOODAMP(NLOOPGROUPS)
705
COMMON/FILTERS/GOODAMP,GOODHEL,HELOFFSET
707
COMPLEX*16 W(20,NWAVEFUNCS)
714
IF (CHECKPHASE.OR.(.NOT.HELDOUBLECHECKED).OR.GOODAMP(LOOPNUM)
732
DO K=TEMP,(TEMP+PAIRING(J)-1)
733
PL(I,J)=PL(I,J)-DBLE(W(1+I,WE(K)))
738
CALL CTLOOP(NLOOPLINE,PL,M2L,RANK,RES,STABLE)