Merge lp:~maddevelopers/mg5amcnlo/enhance_factor_fix into lp:~maddevelopers/mg5amcnlo/3.0.2
- enhance_factor_fix
- Merge into 3.0.2
Proposed by
Rikkert Frederix
Status: | Merged |
---|---|
Merged at revision: | 972 |
Proposed branch: | lp:~maddevelopers/mg5amcnlo/enhance_factor_fix |
Merge into: | lp:~maddevelopers/mg5amcnlo/3.0.2 |
Diff against target: |
453 lines (+158/-85) (has conflicts) 3 files modified
Template/NLO/SubProcesses/driver_mintFO.f (+3/-0) Template/NLO/SubProcesses/driver_mintMC.f (+4/-0) Template/NLO/SubProcesses/fks_singular.f (+151/-85) Text conflict in Template/NLO/SubProcesses/fks_singular.f |
To merge this branch: | bzr merge lp:~maddevelopers/mg5amcnlo/enhance_factor_fix |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
marco zaro | Approve | ||
Hua-Sheng Shao | Approve | ||
Review via email: mp+371041@code.launchpad.net |
Commit message
Description of the change
Fix for the wrong renormalisation scale in the multi-channel enhancement factor.
To post a comment you must log in.
- 969. By Rikkert Frederix
-
small fix
Revision history for this message
marco zaro (marco-zaro) wrote : | # |
The changes in the code look all fine. I have not checked the results, as it has been already done by HuaSheng
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'Template/NLO/SubProcesses/driver_mintFO.f' | |||
2 | --- Template/NLO/SubProcesses/driver_mintFO.f 2019-08-15 13:15:21 +0000 | |||
3 | +++ Template/NLO/SubProcesses/driver_mintFO.f 2019-08-29 10:00:13 +0000 | |||
4 | @@ -427,6 +427,7 @@ | |||
5 | 427 | pass_cuts_check=.true. | 427 | pass_cuts_check=.true. |
6 | 428 | if (ickkw.eq.3) call set_FxFx_scale(1,p1_cnt(0,1,0)) | 428 | if (ickkw.eq.3) call set_FxFx_scale(1,p1_cnt(0,1,0)) |
7 | 429 | call set_alphaS(p1_cnt(0,1,0)) | 429 | call set_alphaS(p1_cnt(0,1,0)) |
8 | 430 | call include_multichannel_enhance(1) | ||
9 | 430 | if (abrv(1:2).ne.'vi') then | 431 | if (abrv(1:2).ne.'vi') then |
10 | 431 | call compute_born | 432 | call compute_born |
11 | 432 | endif | 433 | endif |
12 | @@ -472,6 +473,7 @@ | |||
13 | 472 | call set_cms_stuff(izero) | 473 | call set_cms_stuff(izero) |
14 | 473 | if (ickkw.eq.3) call set_FxFx_scale(2,p1_cnt(0,1,0)) | 474 | if (ickkw.eq.3) call set_FxFx_scale(2,p1_cnt(0,1,0)) |
15 | 474 | call set_alphaS(p1_cnt(0,1,0)) | 475 | call set_alphaS(p1_cnt(0,1,0)) |
16 | 476 | call include_multichannel_enhance(3) | ||
17 | 475 | call compute_soft_counter_term(0d0) | 477 | call compute_soft_counter_term(0d0) |
18 | 476 | call set_cms_stuff(ione) | 478 | call set_cms_stuff(ione) |
19 | 477 | call compute_collinear_counter_term(0d0) | 479 | call compute_collinear_counter_term(0d0) |
20 | @@ -483,6 +485,7 @@ | |||
21 | 483 | call set_cms_stuff(mohdr) | 485 | call set_cms_stuff(mohdr) |
22 | 484 | if (ickkw.eq.3) call set_FxFx_scale(3,p) | 486 | if (ickkw.eq.3) call set_FxFx_scale(3,p) |
23 | 485 | call set_alphaS(p) | 487 | call set_alphaS(p) |
24 | 488 | call include_multichannel_enhance(2) | ||
25 | 486 | call compute_real_emission(p,1d0) | 489 | call compute_real_emission(p,1d0) |
26 | 487 | endif | 490 | endif |
27 | 488 | enddo | 491 | enddo |
28 | 489 | 492 | ||
29 | === modified file 'Template/NLO/SubProcesses/driver_mintMC.f' | |||
30 | --- Template/NLO/SubProcesses/driver_mintMC.f 2019-08-15 13:57:46 +0000 | |||
31 | +++ Template/NLO/SubProcesses/driver_mintMC.f 2019-08-29 10:00:13 +0000 | |||
32 | @@ -747,6 +747,7 @@ | |||
33 | 747 | pass_cuts_check=.true. | 747 | pass_cuts_check=.true. |
34 | 748 | if (ickkw.eq.3) call set_FxFx_scale(1,p1_cnt(0,1,0)) | 748 | if (ickkw.eq.3) call set_FxFx_scale(1,p1_cnt(0,1,0)) |
35 | 749 | call set_alphaS(p1_cnt(0,1,0)) | 749 | call set_alphaS(p1_cnt(0,1,0)) |
36 | 750 | call include_multichannel_enhance(1) | ||
37 | 750 | if (abrv(1:2).ne.'vi') then | 751 | if (abrv(1:2).ne.'vi') then |
38 | 751 | call compute_born | 752 | call compute_born |
39 | 752 | endif | 753 | endif |
40 | @@ -827,6 +828,7 @@ | |||
41 | 827 | call set_cms_stuff(mohdr) | 828 | call set_cms_stuff(mohdr) |
42 | 828 | if (ickkw.eq.3) call set_FxFx_scale(-3,p) | 829 | if (ickkw.eq.3) call set_FxFx_scale(-3,p) |
43 | 829 | call set_alphaS(p) | 830 | call set_alphaS(p) |
44 | 831 | call include_multichannel_enhance(4) | ||
45 | 830 | call compute_MC_subt_term(p,gfactsf,gfactcl,probne) | 832 | call compute_MC_subt_term(p,gfactsf,gfactcl,probne) |
46 | 831 | else | 833 | else |
47 | 832 | c For UNLOPS all real-emission contributions need to be added to the | 834 | c For UNLOPS all real-emission contributions need to be added to the |
48 | @@ -841,6 +843,7 @@ | |||
49 | 841 | call set_cms_stuff(izero) | 843 | call set_cms_stuff(izero) |
50 | 842 | if (ickkw.eq.3) call set_FxFx_scale(-2,p1_cnt(0,1,0)) | 844 | if (ickkw.eq.3) call set_FxFx_scale(-2,p1_cnt(0,1,0)) |
51 | 843 | call set_alphaS(p1_cnt(0,1,0)) | 845 | call set_alphaS(p1_cnt(0,1,0)) |
52 | 846 | call include_multichannel_enhance(3) | ||
53 | 844 | replace_MC_subt=(1d0-gfactsf)*probne | 847 | replace_MC_subt=(1d0-gfactsf)*probne |
54 | 845 | call compute_soft_counter_term(replace_MC_subt) | 848 | call compute_soft_counter_term(replace_MC_subt) |
55 | 846 | call set_cms_stuff(ione) | 849 | call set_cms_stuff(ione) |
56 | @@ -856,6 +859,7 @@ | |||
57 | 856 | call set_cms_stuff(mohdr) | 859 | call set_cms_stuff(mohdr) |
58 | 857 | if (ickkw.eq.3) call set_FxFx_scale(-3,p) | 860 | if (ickkw.eq.3) call set_FxFx_scale(-3,p) |
59 | 858 | call set_alphaS(p) | 861 | call set_alphaS(p) |
60 | 862 | call include_multichannel_enhance(2) | ||
61 | 859 | sudakov_damp=probne | 863 | sudakov_damp=probne |
62 | 860 | call compute_real_emission(p,sudakov_damp) | 864 | call compute_real_emission(p,sudakov_damp) |
63 | 861 | endif | 865 | endif |
64 | 862 | 866 | ||
65 | === modified file 'Template/NLO/SubProcesses/fks_singular.f' | |||
66 | --- Template/NLO/SubProcesses/fks_singular.f 2019-08-28 11:29:57 +0000 | |||
67 | +++ Template/NLO/SubProcesses/fks_singular.f 2019-08-29 10:00:13 +0000 | |||
68 | @@ -979,18 +979,11 @@ | |||
69 | 979 | include 'run.inc' | 979 | include 'run.inc' |
70 | 980 | include 'genps.inc' | 980 | include 'genps.inc' |
71 | 981 | include 'timing_variables.inc' | 981 | include 'timing_variables.inc' |
78 | 982 | double precision pi,vegas_wgt,enhance,xnoborn_cnt,xtot | 982 | double precision pi,vegas_wgt |
79 | 983 | $ ,bpower,cpower,tiny | 983 | integer i |
74 | 984 | data xnoborn_cnt /0d0/ | ||
75 | 985 | integer inoborn_cnt,i | ||
76 | 986 | data inoborn_cnt /0/ | ||
77 | 987 | double precision wgt_c | ||
80 | 988 | logical firsttime | 984 | logical firsttime |
81 | 989 | data firsttime /.true./ | 985 | data firsttime /.true./ |
82 | 990 | parameter (pi=3.1415926535897932385d0) | 986 | parameter (pi=3.1415926535897932385d0) |
83 | 991 | parameter (tiny=1d-6) | ||
84 | 992 | double precision p_born(0:3,nexternal-1) | ||
85 | 993 | common/pborn/ p_born | ||
86 | 994 | double precision p1_cnt(0:3,nexternal,-2:2),wgt_cnt(-2:2) | 987 | double precision p1_cnt(0:3,nexternal,-2:2),wgt_cnt(-2:2) |
87 | 995 | $ ,pswgt_cnt(-2:2),jac_cnt(-2:2) | 988 | $ ,pswgt_cnt(-2:2),jac_cnt(-2:2) |
88 | 996 | common/counterevnts/p1_cnt,wgt_cnt,pswgt_cnt,jac_cnt | 989 | common/counterevnts/p1_cnt,wgt_cnt,pswgt_cnt,jac_cnt |
89 | @@ -1007,12 +1000,15 @@ | |||
90 | 1007 | integer ngluons,nquarks(-6:6),nphotons | 1000 | integer ngluons,nquarks(-6:6),nphotons |
91 | 1008 | common/numberofparticles/fkssymmetryfactor,fkssymmetryfactorBorn, | 1001 | common/numberofparticles/fkssymmetryfactor,fkssymmetryfactorBorn, |
92 | 1009 | & fkssymmetryfactorDeg,ngluons,nquarks,nphotons | 1002 | & fkssymmetryfactorDeg,ngluons,nquarks,nphotons |
93 | 1003 | <<<<<<< TREE | ||
94 | 1010 | integer mapconfig(0:lmaxconfigs), this_config | 1004 | integer mapconfig(0:lmaxconfigs), this_config |
95 | 1011 | common/to_mconfigs/mapconfig, this_config | 1005 | common/to_mconfigs/mapconfig, this_config |
96 | 1012 | Double Precision amp2(ngraphs), jamp2(0:ncolor) | 1006 | Double Precision amp2(ngraphs), jamp2(0:ncolor) |
97 | 1013 | common/to_amps/ amp2, jamp2 | 1007 | common/to_amps/ amp2, jamp2 |
98 | 1014 | double precision diagramsymmetryfactor | 1008 | double precision diagramsymmetryfactor |
99 | 1015 | common /dsymfactor/diagramsymmetryfactor | 1009 | common /dsymfactor/diagramsymmetryfactor |
100 | 1010 | ======= | ||
101 | 1011 | >>>>>>> MERGE-SOURCE | ||
102 | 1016 | double precision f_b,f_nb | 1012 | double precision f_b,f_nb |
103 | 1017 | common /factor_nbody/ f_b,f_nb | 1013 | common /factor_nbody/ f_b,f_nb |
104 | 1018 | integer iappl | 1014 | integer iappl |
105 | @@ -1039,6 +1035,7 @@ | |||
106 | 1039 | if (fixed_order) call initplot | 1035 | if (fixed_order) call initplot |
107 | 1040 | firsttime=.false. | 1036 | firsttime=.false. |
108 | 1041 | endif | 1037 | endif |
109 | 1038 | <<<<<<< TREE | ||
110 | 1042 | c Compute the multi-channel enhancement factor 'enhance'. | 1039 | c Compute the multi-channel enhancement factor 'enhance'. |
111 | 1043 | enhance=1.d0 | 1040 | enhance=1.d0 |
112 | 1044 | if (p_born(0,1).gt.0d0) then | 1041 | if (p_born(0,1).gt.0d0) then |
113 | @@ -1072,105 +1069,72 @@ | |||
114 | 1072 | enhance=0d0 | 1069 | enhance=0d0 |
115 | 1073 | endif | 1070 | endif |
116 | 1074 | endif | 1071 | endif |
117 | 1072 | ======= | ||
118 | 1073 | >>>>>>> MERGE-SOURCE | ||
119 | 1075 | call set_cms_stuff(0) | 1074 | call set_cms_stuff(0) |
120 | 1076 | c f_* multiplication factors for Born and nbody | 1075 | c f_* multiplication factors for Born and nbody |
121 | 1077 | f_b=jac_cnt(0)*xinorm_ev/(min(xiimax_ev,xiBSVcut_used)*shat/(16 | 1076 | f_b=jac_cnt(0)*xinorm_ev/(min(xiimax_ev,xiBSVcut_used)*shat/(16 |
123 | 1078 | $ *pi**2))*enhance*fkssymmetryfactorBorn*vegas_wgt | 1077 | $ *pi**2))*fkssymmetryfactorBorn*vegas_wgt |
124 | 1079 | f_nb=f_b | 1078 | f_nb=f_b |
125 | 1080 | call cpu_time(tAfter) | 1079 | call cpu_time(tAfter) |
126 | 1081 | tf_nb=tf_nb+(tAfter-tBefore) | 1080 | tf_nb=tf_nb+(tAfter-tBefore) |
127 | 1082 | return | 1081 | return |
128 | 1083 | end | 1082 | end |
129 | 1084 | 1083 | ||
133 | 1085 | subroutine compute_prefactors_n1body(vegas_wgt,jac_ev) | 1084 | |
134 | 1086 | c Compute all relevant prefactors for the real emission and counter | 1085 | subroutine include_multichannel_enhance(imode) |
132 | 1087 | c terms. | ||
135 | 1088 | implicit none | 1086 | implicit none |
136 | 1089 | include 'nexternal.inc' | 1087 | include 'nexternal.inc' |
137 | 1090 | include 'run.inc' | 1088 | include 'run.inc' |
138 | 1091 | include 'genps.inc' | 1089 | include 'genps.inc' |
139 | 1092 | include 'fks_powers.inc' | ||
140 | 1093 | include 'coupl.inc' | ||
141 | 1094 | include 'timing_variables.inc' | 1090 | include 'timing_variables.inc' |
147 | 1095 | double precision vegas_wgt,enhance,xnoborn_cnt,xtot | 1091 | double precision xnoborn_cnt,xtot,wgt_c,enhance,enhance_real |
148 | 1096 | & ,prefact,prefact_cnt_ssc,prefact_deg,prefact_c,prefact_coll | 1092 | $ ,pas(0:3,nexternal) |
144 | 1097 | & ,jac_ev,pi,prefact_cnt_ssc_c,prefact_coll_c,prefact_deg_slxi | ||
145 | 1098 | & ,prefact_deg_sxi,zero,enhance_real | ||
146 | 1099 | parameter (pi=3.1415926535897932385d0, zero=0d0) | ||
149 | 1100 | data xnoborn_cnt /0d0/ | 1093 | data xnoborn_cnt /0d0/ |
151 | 1101 | integer inoborn_cnt,i | 1094 | integer inoborn_cnt,i,imode |
152 | 1102 | data inoborn_cnt /0/ | 1095 | data inoborn_cnt /0/ |
153 | 1103 | double precision wgt_c | ||
154 | 1104 | double precision p_born(0:3,nexternal-1) | 1096 | double precision p_born(0:3,nexternal-1) |
155 | 1105 | common/pborn/ p_born | 1097 | common/pborn/ p_born |
156 | 1106 | double precision p_born_ev(0:3,nexternal-1) | 1098 | double precision p_born_ev(0:3,nexternal-1) |
158 | 1107 | common/pborn_ev/p_born_ev | 1099 | common/pborn_ev/ p_born_ev |
159 | 1100 | double precision p_ev(0:3,nexternal) | ||
160 | 1101 | common/pev/ p_ev | ||
161 | 1108 | double precision p1_cnt(0:3,nexternal,-2:2),wgt_cnt(-2:2) | 1102 | double precision p1_cnt(0:3,nexternal,-2:2),wgt_cnt(-2:2) |
162 | 1109 | $ ,pswgt_cnt(-2:2),jac_cnt(-2:2) | 1103 | $ ,pswgt_cnt(-2:2),jac_cnt(-2:2) |
163 | 1110 | common/counterevnts/p1_cnt,wgt_cnt,pswgt_cnt,jac_cnt | 1104 | common/counterevnts/p1_cnt,wgt_cnt,pswgt_cnt,jac_cnt |
164 | 1111 | double precision xi_i_fks_ev,y_ij_fks_ev | ||
165 | 1112 | double precision p_i_fks_ev(0:3),p_i_fks_cnt(0:3,-2:2) | ||
166 | 1113 | common/fksvariables/xi_i_fks_ev,y_ij_fks_ev,p_i_fks_ev,p_i_fks_cnt | ||
167 | 1114 | integer i_fks,j_fks | ||
168 | 1115 | common/fks_indices/i_fks,j_fks | ||
169 | 1116 | double precision xi_i_fks_cnt(-2:2) | ||
170 | 1117 | common /cxiifkscnt/xi_i_fks_cnt | ||
171 | 1118 | double precision xinorm_ev | ||
172 | 1119 | common /cxinormev/xinorm_ev | ||
173 | 1120 | double precision xiimax_ev | ||
174 | 1121 | common /cxiimaxev/xiimax_ev | ||
175 | 1122 | double precision xiimax_cnt(-2:2) | ||
176 | 1123 | common /cxiimaxcnt/xiimax_cnt | ||
177 | 1124 | double precision xinorm_cnt(-2:2) | ||
178 | 1125 | common /cxinormcnt/xinorm_cnt | ||
179 | 1126 | double precision delta_used | ||
180 | 1127 | common /cdelta_used/delta_used | ||
181 | 1128 | double precision xicut_used | ||
182 | 1129 | common /cxicut_used/xicut_used | ||
183 | 1130 | double precision xiScut_used,xiBSVcut_used | ||
184 | 1131 | common /cxiScut_used/xiScut_used,xiBSVcut_used | ||
185 | 1132 | double precision ybst_til_tolab,ybst_til_tocm,sqrtshat,shat | ||
186 | 1133 | common/parton_cms_stuff/ybst_til_tolab,ybst_til_tocm,sqrtshat,shat | ||
187 | 1134 | double precision fkssymmetryfactor,fkssymmetryfactorBorn, | ||
188 | 1135 | & fkssymmetryfactorDeg | ||
189 | 1136 | integer ngluons,nquarks(-6:6),nphotons | ||
190 | 1137 | common/numberofparticles/fkssymmetryfactor,fkssymmetryfactorBorn, | ||
191 | 1138 | & fkssymmetryfactorDeg,ngluons,nquarks,nphotons | ||
192 | 1139 | integer mapconfig(0:lmaxconfigs), iconfig | 1105 | integer mapconfig(0:lmaxconfigs), iconfig |
193 | 1140 | common/to_mconfigs/mapconfig, iconfig | 1106 | common/to_mconfigs/mapconfig, iconfig |
194 | 1141 | Double Precision amp2(ngraphs), jamp2(0:ncolor) | 1107 | Double Precision amp2(ngraphs), jamp2(0:ncolor) |
195 | 1142 | common/to_amps/ amp2, jamp2 | 1108 | common/to_amps/ amp2, jamp2 |
196 | 1143 | double precision diagramsymmetryfactor | 1109 | double precision diagramsymmetryfactor |
197 | 1144 | common /dsymfactor/diagramsymmetryfactor | 1110 | common /dsymfactor/diagramsymmetryfactor |
200 | 1145 | logical nocntevents | 1111 | double precision f_b,f_nb |
201 | 1146 | common/cnocntevents/nocntevents | 1112 | common /factor_nbody/ f_b,f_nb |
202 | 1113 | double precision f_r,f_s,f_c,f_dc,f_sc,f_dsc(4) | ||
203 | 1114 | common/factor_n1body/f_r,f_s,f_c,f_dc,f_sc,f_dsc | ||
204 | 1115 | double precision f_s_MC_S,f_s_MC_H,f_c_MC_S,f_c_MC_H | ||
205 | 1116 | $ ,f_sc_MC_S,f_sc_MC_H,f_MC_S,f_MC_H | ||
206 | 1117 | common/factor_n1body_NLOPS/f_s_MC_S,f_s_MC_H,f_c_MC_S,f_c_MC_H | ||
207 | 1118 | $ ,f_sc_MC_S,f_sc_MC_H,f_MC_S,f_MC_H | ||
208 | 1119 | double precision f_dis_d,f_dis_p,f_dis_l | ||
209 | 1120 | common/factor_dis/f_dis_d,f_dis_p,f_dis_l | ||
210 | 1147 | integer igranny,iaunt | 1121 | integer igranny,iaunt |
211 | 1148 | logical granny_chain(-nexternal:nexternal),granny_is_res | 1122 | logical granny_chain(-nexternal:nexternal),granny_is_res |
212 | 1149 | & ,granny_chain_real_final(-nexternal:nexternal) | 1123 | & ,granny_chain_real_final(-nexternal:nexternal) |
213 | 1150 | common /c_granny_res/igranny,iaunt,granny_is_res,granny_chain | 1124 | common /c_granny_res/igranny,iaunt,granny_is_res,granny_chain |
214 | 1151 | & ,granny_chain_real_final | 1125 | & ,granny_chain_real_final |
215 | 1152 | double precision f_r,f_s,f_c,f_dc,f_sc,f_dsc(4) | ||
216 | 1153 | common/factor_n1body/f_r,f_s,f_c,f_dc,f_sc,f_dsc | ||
217 | 1154 | double precision f_s_MC_S,f_s_MC_H,f_c_MC_S,f_c_MC_H | ||
218 | 1155 | $ ,f_sc_MC_S,f_sc_MC_H,f_MC_S,f_MC_H | ||
219 | 1156 | common/factor_n1body_NLOPS/f_s_MC_S,f_s_MC_H,f_c_MC_S,f_c_MC_H | ||
220 | 1157 | $ ,f_sc_MC_S,f_sc_MC_H,f_MC_S,f_MC_H | ||
221 | 1158 | ! prefactors for the DIS scheme | ||
222 | 1159 | double precision prefact_dis_d,prefact_dis_p,prefact_dis_l | ||
223 | 1160 | double precision f_dis_d,f_dis_p,f_dis_l | ||
224 | 1161 | common/factor_dis/f_dis_d,f_dis_p,f_dis_l | ||
225 | 1162 | logical calculatedBorn | 1126 | logical calculatedBorn |
226 | 1163 | common/ccalculatedBorn/calculatedBorn | 1127 | common/ccalculatedBorn/calculatedBorn |
229 | 1164 | double precision pmass(nexternal) | 1128 | |
228 | 1165 | include 'pmass.inc' | ||
230 | 1166 | call cpu_time(tBefore) | 1129 | call cpu_time(tBefore) |
231 | 1130 | |||
232 | 1131 | c Compute the multi-channel enhancement factor 'enhance'. | ||
233 | 1167 | enhance=1.d0 | 1132 | enhance=1.d0 |
234 | 1168 | if (p_born(0,1).gt.0d0) then | 1133 | if (p_born(0,1).gt.0d0) then |
235 | 1169 | call sborn(p_born,wgt_c) | 1134 | call sborn(p_born,wgt_c) |
236 | 1170 | elseif(p_born(0,1).lt.0d0)then | 1135 | elseif(p_born(0,1).lt.0d0)then |
237 | 1171 | enhance=0d0 | 1136 | enhance=0d0 |
238 | 1172 | endif | 1137 | endif |
239 | 1173 | c Compute the multi-channel enhancement factor 'enhance'. | ||
240 | 1174 | if (enhance.eq.0d0)then | 1138 | if (enhance.eq.0d0)then |
241 | 1175 | xnoborn_cnt=xnoborn_cnt+1.d0 | 1139 | xnoborn_cnt=xnoborn_cnt+1.d0 |
242 | 1176 | if(log10(xnoborn_cnt).gt.inoborn_cnt)then | 1140 | if(log10(xnoborn_cnt).gt.inoborn_cnt)then |
243 | @@ -1181,9 +1145,9 @@ | |||
244 | 1181 | else | 1145 | else |
245 | 1182 | xtot=0d0 | 1146 | xtot=0d0 |
246 | 1183 | if (mapconfig(0).eq.0) then | 1147 | if (mapconfig(0).eq.0) then |
250 | 1184 | write (*,*) 'Fatal error in compute_prefactor_n1body,'/ | 1148 | write (*,*) 'Fatal error in compute_prefactor_nbody:'/ |
251 | 1185 | & /' no Born diagrams ',mapconfig | 1149 | & /' no Born diagrams ',mapconfig, |
252 | 1186 | & ,'. Check bornfromreal.inc' | 1150 | & '. Check bornfromreal.inc' |
253 | 1187 | write (*,*) 'Is fks_singular compiled correctly?' | 1151 | write (*,*) 'Is fks_singular compiled correctly?' |
254 | 1188 | stop 1 | 1152 | stop 1 |
255 | 1189 | endif | 1153 | endif |
256 | @@ -1198,11 +1162,17 @@ | |||
257 | 1198 | endif | 1162 | endif |
258 | 1199 | endif | 1163 | endif |
259 | 1200 | 1164 | ||
260 | 1165 | c In the case there is the special phase-space mapping for resonances, | ||
261 | 1166 | c use the Born computed with those as the mapping. | ||
262 | 1201 | enhance_real=1.d0 | 1167 | enhance_real=1.d0 |
264 | 1202 | if (granny_is_res) then | 1168 | if (granny_is_res .and. imode.eq.2) then |
265 | 1203 | if (p_born_ev(0,1).gt.0d0) then | 1169 | if (p_born_ev(0,1).gt.0d0) then |
266 | 1204 | calculatedBorn=.false. | 1170 | calculatedBorn=.false. |
267 | 1171 | pas(0:3,nexternal)=0d0 | ||
268 | 1172 | pas(0:3,1:nexternal-1)=p_born_ev(0:3,1:nexternal-1) | ||
269 | 1173 | call set_alphas(pas) | ||
270 | 1205 | call sborn(p_born_ev,wgt_c) | 1174 | call sborn(p_born_ev,wgt_c) |
271 | 1175 | call set_alphas(p_ev) | ||
272 | 1206 | calculatedBorn=.false. | 1176 | calculatedBorn=.false. |
273 | 1207 | elseif(p_born_ev(0,1).lt.0d0)then | 1177 | elseif(p_born_ev(0,1).lt.0d0)then |
274 | 1208 | if (enhance.ne.0d0) then | 1178 | if (enhance.ne.0d0) then |
275 | @@ -1242,18 +1212,114 @@ | |||
276 | 1242 | enhance_real=enhance | 1212 | enhance_real=enhance |
277 | 1243 | endif | 1213 | endif |
278 | 1244 | 1214 | ||
279 | 1215 | if (imode.eq.1) then | ||
280 | 1216 | f_b= f_b *enhance | ||
281 | 1217 | f_nb= f_nb *enhance | ||
282 | 1218 | elseif(imode.eq.2) then | ||
283 | 1219 | f_r= f_r *enhance_real | ||
284 | 1220 | elseif(imode.eq.4) then | ||
285 | 1221 | f_MC_S= f_MC_S *enhance | ||
286 | 1222 | f_MC_H= f_MC_H *enhance | ||
287 | 1223 | elseif(imode.eq.3) then | ||
288 | 1224 | f_s= f_s *enhance | ||
289 | 1225 | f_s_MC_S= f_s_MC_S *enhance | ||
290 | 1226 | f_S_MC_H= f_S_MC_H *enhance | ||
291 | 1227 | f_c= f_c *enhance | ||
292 | 1228 | f_c_MC_S= f_c_MC_S *enhance | ||
293 | 1229 | f_c_MC_H= f_c_MC_H *enhance | ||
294 | 1230 | f_dc= f_dc *enhance | ||
295 | 1231 | f_sc= f_sc *enhance | ||
296 | 1232 | f_sc_MC_S=f_sc_MC_S*enhance | ||
297 | 1233 | f_sc_MC_H=f_sc_MC_H*enhance | ||
298 | 1234 | f_dsc(1)= f_dsc(1) *enhance | ||
299 | 1235 | f_dsc(2)= f_dsc(2) *enhance | ||
300 | 1236 | f_dsc(3)= f_dsc(3) *enhance | ||
301 | 1237 | f_dsc(4)= f_dsc(4) *enhance | ||
302 | 1238 | f_dis_d= f_dis_d *enhance | ||
303 | 1239 | f_dis_p= f_dis_p *enhance | ||
304 | 1240 | f_dis_l= f_dis_l *enhance | ||
305 | 1241 | endif | ||
306 | 1242 | call cpu_time(tAfter) | ||
307 | 1243 | tf_nb=tf_nb+(tAfter-tBefore) | ||
308 | 1244 | |||
309 | 1245 | return | ||
310 | 1246 | end | ||
311 | 1247 | |||
312 | 1248 | |||
313 | 1249 | subroutine compute_prefactors_n1body(vegas_wgt,jac_ev) | ||
314 | 1250 | c Compute all relevant prefactors for the real emission and counter | ||
315 | 1251 | c terms. | ||
316 | 1252 | implicit none | ||
317 | 1253 | include 'nexternal.inc' | ||
318 | 1254 | include 'run.inc' | ||
319 | 1255 | include 'genps.inc' | ||
320 | 1256 | include 'fks_powers.inc' | ||
321 | 1257 | include 'coupl.inc' | ||
322 | 1258 | include 'timing_variables.inc' | ||
323 | 1259 | double precision vegas_wgt,prefact,prefact_cnt_ssc,prefact_deg | ||
324 | 1260 | $ ,prefact_c,prefact_coll,jac_ev,pi,prefact_cnt_ssc_c | ||
325 | 1261 | $ ,prefact_coll_c,prefact_deg_slxi,prefact_deg_sxi,zero | ||
326 | 1262 | integer i | ||
327 | 1263 | parameter (pi=3.1415926535897932385d0, ZERO=0d0) | ||
328 | 1264 | double precision p1_cnt(0:3,nexternal,-2:2),wgt_cnt(-2:2) | ||
329 | 1265 | $ ,pswgt_cnt(-2:2),jac_cnt(-2:2) | ||
330 | 1266 | common/counterevnts/p1_cnt,wgt_cnt,pswgt_cnt,jac_cnt | ||
331 | 1267 | double precision xi_i_fks_ev,y_ij_fks_ev | ||
332 | 1268 | double precision p_i_fks_ev(0:3),p_i_fks_cnt(0:3,-2:2) | ||
333 | 1269 | common/fksvariables/xi_i_fks_ev,y_ij_fks_ev,p_i_fks_ev,p_i_fks_cnt | ||
334 | 1270 | integer i_fks,j_fks | ||
335 | 1271 | common/fks_indices/i_fks,j_fks | ||
336 | 1272 | double precision xi_i_fks_cnt(-2:2) | ||
337 | 1273 | common /cxiifkscnt/xi_i_fks_cnt | ||
338 | 1274 | double precision xinorm_ev | ||
339 | 1275 | common /cxinormev/xinorm_ev | ||
340 | 1276 | double precision xiimax_ev | ||
341 | 1277 | common /cxiimaxev/xiimax_ev | ||
342 | 1278 | double precision xiimax_cnt(-2:2) | ||
343 | 1279 | common /cxiimaxcnt/xiimax_cnt | ||
344 | 1280 | double precision xinorm_cnt(-2:2) | ||
345 | 1281 | common /cxinormcnt/xinorm_cnt | ||
346 | 1282 | double precision delta_used | ||
347 | 1283 | common /cdelta_used/delta_used | ||
348 | 1284 | double precision xicut_used | ||
349 | 1285 | common /cxicut_used/xicut_used | ||
350 | 1286 | double precision xiScut_used,xiBSVcut_used | ||
351 | 1287 | common /cxiScut_used/xiScut_used,xiBSVcut_used | ||
352 | 1288 | double precision ybst_til_tolab,ybst_til_tocm,sqrtshat,shat | ||
353 | 1289 | common/parton_cms_stuff/ybst_til_tolab,ybst_til_tocm,sqrtshat,shat | ||
354 | 1290 | double precision fkssymmetryfactor,fkssymmetryfactorBorn, | ||
355 | 1291 | & fkssymmetryfactorDeg | ||
356 | 1292 | integer ngluons,nquarks(-6:6),nphotons | ||
357 | 1293 | common/numberofparticles/fkssymmetryfactor,fkssymmetryfactorBorn, | ||
358 | 1294 | & fkssymmetryfactorDeg,ngluons,nquarks,nphotons | ||
359 | 1295 | logical nocntevents | ||
360 | 1296 | common/cnocntevents/nocntevents | ||
361 | 1297 | double precision f_r,f_s,f_c,f_dc,f_sc,f_dsc(4) | ||
362 | 1298 | common/factor_n1body/f_r,f_s,f_c,f_dc,f_sc,f_dsc | ||
363 | 1299 | double precision f_s_MC_S,f_s_MC_H,f_c_MC_S,f_c_MC_H | ||
364 | 1300 | $ ,f_sc_MC_S,f_sc_MC_H,f_MC_S,f_MC_H | ||
365 | 1301 | common/factor_n1body_NLOPS/f_s_MC_S,f_s_MC_H,f_c_MC_S,f_c_MC_H | ||
366 | 1302 | $ ,f_sc_MC_S,f_sc_MC_H,f_MC_S,f_MC_H | ||
367 | 1303 | ! prefactors for the DIS scheme | ||
368 | 1304 | double precision prefact_dis_d,prefact_dis_p,prefact_dis_l | ||
369 | 1305 | double precision f_dis_d,f_dis_p,f_dis_l | ||
370 | 1306 | common/factor_dis/f_dis_d,f_dis_p,f_dis_l | ||
371 | 1307 | double precision pmass(nexternal) | ||
372 | 1308 | include 'pmass.inc' | ||
373 | 1309 | call cpu_time(tBefore) | ||
374 | 1310 | |||
375 | 1245 | c f_* multiplication factors for real-emission, soft counter, ... etc. | 1311 | c f_* multiplication factors for real-emission, soft counter, ... etc. |
376 | 1246 | prefact=xinorm_ev/xi_i_fks_ev/(1-y_ij_fks_ev) | 1312 | prefact=xinorm_ev/xi_i_fks_ev/(1-y_ij_fks_ev) |
378 | 1247 | f_r=prefact*jac_ev*enhance_real*fkssymmetryfactor*vegas_wgt | 1313 | f_r=prefact*jac_ev*fkssymmetryfactor*vegas_wgt |
379 | 1248 | f_MC_S=f_r | 1314 | f_MC_S=f_r |
380 | 1249 | f_MC_H=f_r | 1315 | f_MC_H=f_r |
381 | 1250 | if (.not.nocntevents) then | 1316 | if (.not.nocntevents) then |
382 | 1251 | prefact_cnt_ssc=xinorm_ev/min(xiimax_ev,xiScut_used)* | 1317 | prefact_cnt_ssc=xinorm_ev/min(xiimax_ev,xiScut_used)* |
383 | 1252 | $ log(xicut_used/min(xiimax_ev,xiScut_used))/(1 | 1318 | $ log(xicut_used/min(xiimax_ev,xiScut_used))/(1 |
384 | 1253 | $ -y_ij_fks_ev) | 1319 | $ -y_ij_fks_ev) |
386 | 1254 | f_s=(prefact+prefact_cnt_ssc)*jac_cnt(0)*enhance | 1320 | f_s=(prefact+prefact_cnt_ssc)*jac_cnt(0) |
387 | 1255 | $ *fkssymmetryfactor*vegas_wgt | 1321 | $ *fkssymmetryfactor*vegas_wgt |
389 | 1256 | f_s_MC_S=prefact*jac_cnt(0)*enhance | 1322 | f_s_MC_S=prefact*jac_cnt(0) |
390 | 1257 | $ *fkssymmetryfactor*vegas_wgt | 1323 | $ *fkssymmetryfactor*vegas_wgt |
391 | 1258 | f_s_MC_H=f_s_MC_S | 1324 | f_s_MC_H=f_s_MC_S |
392 | 1259 | 1325 | ||
393 | @@ -1264,9 +1330,9 @@ | |||
394 | 1264 | prefact_coll=xinorm_cnt(1)/xi_i_fks_cnt(1)*log(delta_used | 1330 | prefact_coll=xinorm_cnt(1)/xi_i_fks_cnt(1)*log(delta_used |
395 | 1265 | $ /deltaS)/deltaS | 1331 | $ /deltaS)/deltaS |
396 | 1266 | f_c=(prefact_c+prefact_coll)*jac_cnt(1) | 1332 | f_c=(prefact_c+prefact_coll)*jac_cnt(1) |
398 | 1267 | $ *enhance*fkssymmetryfactor*vegas_wgt | 1333 | $ *fkssymmetryfactor*vegas_wgt |
399 | 1268 | f_c_MC_S=prefact_c*jac_cnt(1) | 1334 | f_c_MC_S=prefact_c*jac_cnt(1) |
401 | 1269 | $ *enhance*fkssymmetryfactor*vegas_wgt | 1335 | $ *fkssymmetryfactor*vegas_wgt |
402 | 1270 | f_c_MC_H=f_c_MC_S | 1336 | f_c_MC_H=f_c_MC_S |
403 | 1271 | 1337 | ||
404 | 1272 | call set_cms_stuff(1) | 1338 | call set_cms_stuff(1) |
405 | @@ -1277,13 +1343,13 @@ | |||
406 | 1277 | prefact_coll_c=xinorm_cnt(1)/min(xiimax_cnt(1),xiScut_used) | 1343 | prefact_coll_c=xinorm_cnt(1)/min(xiimax_cnt(1),xiScut_used) |
407 | 1278 | $ *log(xicut_used/min(xiimax_cnt(1),xiScut_used)) | 1344 | $ *log(xicut_used/min(xiimax_cnt(1),xiScut_used)) |
408 | 1279 | $ *log(delta_used/deltaS)/deltaS | 1345 | $ *log(delta_used/deltaS)/deltaS |
410 | 1280 | f_dc=jac_cnt(1)*prefact_deg/(shat/(32*pi**2))*enhance | 1346 | f_dc=jac_cnt(1)*prefact_deg/(shat/(32*pi**2)) |
411 | 1281 | $ *fkssymmetryfactorDeg*vegas_wgt | 1347 | $ *fkssymmetryfactorDeg*vegas_wgt |
412 | 1282 | f_sc=(prefact_c+prefact_coll+prefact_cnt_ssc_c | 1348 | f_sc=(prefact_c+prefact_coll+prefact_cnt_ssc_c |
414 | 1283 | & +prefact_coll_c)*jac_cnt(2)*enhance | 1349 | & +prefact_coll_c)*jac_cnt(2) |
415 | 1284 | & *fkssymmetryfactorDeg*vegas_wgt | 1350 | & *fkssymmetryfactorDeg*vegas_wgt |
416 | 1285 | f_sc_MC_S=prefact_c*jac_cnt(2) | 1351 | f_sc_MC_S=prefact_c*jac_cnt(2) |
418 | 1286 | $ *enhance*fkssymmetryfactor*vegas_wgt | 1352 | $ *fkssymmetryfactor*vegas_wgt |
419 | 1287 | f_sc_MC_H=f_sc_MC_S | 1353 | f_sc_MC_H=f_sc_MC_S |
420 | 1288 | 1354 | ||
421 | 1289 | call set_cms_stuff(2) | 1355 | call set_cms_stuff(2) |
422 | @@ -1294,24 +1360,24 @@ | |||
423 | 1294 | & ,xiScut_used)*( log(xicut_used)**2 | 1360 | & ,xiScut_used)*( log(xicut_used)**2 |
424 | 1295 | & -log(min(xiimax_cnt(1),xiScut_used))**2 )*1/(2.d0 | 1361 | & -log(min(xiimax_cnt(1),xiScut_used))**2 )*1/(2.d0 |
425 | 1296 | & *deltaS) | 1362 | & *deltaS) |
427 | 1297 | f_dsc(1)=prefact_deg*jac_cnt(2)/(shat/(32*pi**2))*enhance | 1363 | f_dsc(1)=prefact_deg*jac_cnt(2)/(shat/(32*pi**2)) |
428 | 1298 | & *fkssymmetryfactorDeg*vegas_wgt | 1364 | & *fkssymmetryfactorDeg*vegas_wgt |
429 | 1299 | f_dsc(2)=prefact_deg_sxi*jac_cnt(2)/(shat/(32*pi**2)) | 1365 | f_dsc(2)=prefact_deg_sxi*jac_cnt(2)/(shat/(32*pi**2)) |
431 | 1300 | & *enhance*fkssymmetryfactorDeg*vegas_wgt | 1366 | & *fkssymmetryfactorDeg*vegas_wgt |
432 | 1301 | f_dsc(3)=prefact_deg_slxi*jac_cnt(2)/(shat/(32*pi**2)) | 1367 | f_dsc(3)=prefact_deg_slxi*jac_cnt(2)/(shat/(32*pi**2)) |
434 | 1302 | & *enhance*fkssymmetryfactorDeg*vegas_wgt | 1368 | & *fkssymmetryfactorDeg*vegas_wgt |
435 | 1303 | f_dsc(4)=( prefact_deg+prefact_deg_sxi )*jac_cnt(2)/(shat | 1369 | f_dsc(4)=( prefact_deg+prefact_deg_sxi )*jac_cnt(2)/(shat |
437 | 1304 | & /(32*pi**2))*enhance*fkssymmetryfactorDeg | 1370 | & /(32*pi**2))*fkssymmetryfactorDeg |
438 | 1305 | & *vegas_wgt | 1371 | & *vegas_wgt |
439 | 1306 | ! prefactor for the DIS scheme | 1372 | ! prefactor for the DIS scheme |
440 | 1307 | prefact_dis_d=xinorm_cnt(1)/xiScut_used/deltaS | 1373 | prefact_dis_d=xinorm_cnt(1)/xiScut_used/deltaS |
442 | 1308 | f_dis_d=prefact_dis_d*jac_cnt(2)/(shat/(32*pi**2))*enhance | 1374 | f_dis_d=prefact_dis_d*jac_cnt(2)/(shat/(32*pi**2)) |
443 | 1309 | & *fkssymmetryfactorDeg*vegas_wgt | 1375 | & *fkssymmetryfactorDeg*vegas_wgt |
444 | 1310 | prefact_dis_p=xinorm_cnt(1)*dlog(xiScut_used)/xiScut_used/deltaS | 1376 | prefact_dis_p=xinorm_cnt(1)*dlog(xiScut_used)/xiScut_used/deltaS |
446 | 1311 | f_dis_p=prefact_dis_p*jac_cnt(2)/(shat/(32*pi**2))*enhance | 1377 | f_dis_p=prefact_dis_p*jac_cnt(2)/(shat/(32*pi**2)) |
447 | 1312 | & *fkssymmetryfactorDeg*vegas_wgt | 1378 | & *fkssymmetryfactorDeg*vegas_wgt |
448 | 1313 | prefact_dis_l=xinorm_cnt(1)*dlog(xiScut_used)**2/2d0/xiScut_used/deltaS | 1379 | prefact_dis_l=xinorm_cnt(1)*dlog(xiScut_used)**2/2d0/xiScut_used/deltaS |
450 | 1314 | f_dis_l=prefact_dis_l*jac_cnt(2)/(shat/(32*pi**2))*enhance | 1380 | f_dis_l=prefact_dis_l*jac_cnt(2)/(shat/(32*pi**2)) |
451 | 1315 | & *fkssymmetryfactorDeg*vegas_wgt | 1381 | & *fkssymmetryfactorDeg*vegas_wgt |
452 | 1316 | else | 1382 | else |
453 | 1317 | f_c=0d0 | 1383 | f_c=0d0 |
The fix is good for me and the previous problematic process was tested to be correct both at LO and NLO.