Merge lp:~maddevelopers/mg5amcnlo/NLO_decay_process into lp:~maddevelopers/mg5amcnlo/2.3.3

Proposed by Rikkert Frederix
Status: Merged
Merged at revision: 325
Proposed branch: lp:~maddevelopers/mg5amcnlo/NLO_decay_process
Merge into: lp:~maddevelopers/mg5amcnlo/2.3.3
Diff against target: 3852 lines (+2647/-152)
73 files modified
Template/NLO/SubProcesses/driver_mintFO.f (+9/-4)
Template/NLO/SubProcesses/driver_mintMC.f (+16/-6)
Template/NLO/SubProcesses/fks_Sij.f (+13/-3)
Template/NLO/SubProcesses/fks_singular.f (+76/-29)
Template/NLO/SubProcesses/genps_fks.f (+32/-15)
Template/NLO/SubProcesses/setcuts.f (+0/-2)
Template/NLO/SubProcesses/setscales.f (+8/-2)
UpdateNotes.txt (+1/-0)
madgraph/fks/fks_base.py (+13/-1)
madgraph/interface/amcatnlo_interface.py (+9/-4)
madgraph/interface/amcatnlo_run_interface.py (+61/-27)
madgraph/interface/common_run_interface.py (+4/-4)
madgraph/iolibs/export_fks.py (+11/-3)
madgraph/iolibs/template_files/parton_lum_n_fks.inc (+5/-1)
madgraph/madevent/sum_html.py (+21/-18)
madgraph/various/banner.py (+23/-19)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%parton_lum_0.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%parton_lum_0.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%parton_lum_0.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_1.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_2.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_3.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_4.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_5.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_1.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_2.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_3.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_1.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_2.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_3.f (+5/-1)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_001.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_002.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_003.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_004.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_005.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_006.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_007.f (+154/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_008.f (+153/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born.f (+298/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_conf.inc (+8/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_decayBW.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_hel.f (+151/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_leshouche.inc (+8/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_maxamps.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_nhel.inc (+3/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_props.inc (+6/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%coloramps.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%config_subproc_map.inc (+1/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%configs_and_props_decl.inc (+12/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%fks_info.inc (+46/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%get_color.f (+54/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%leshouche_decl.inc (+6/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%matrix_1.f (+194/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nFKSconfigs.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ncombs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nexternal.inc (+4/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ngraphs.inc (+2/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_1.f (+98/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_chooser.f (+21/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%pmass.inc (+5/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_from_born_configs.inc (+5/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_me_chooser.f (+20/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf.f (+45/-0)
tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf_dum.f (+13/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc (+4/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc (+4/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc (+4/-0)
tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc (+4/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.inc (+4/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.inc (+4/-0)
tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.inc (+4/-0)
tests/unit_tests/iolibs/test_export_fks.py (+4/-0)
To merge this branch: bzr merge lp:~maddevelopers/mg5amcnlo/NLO_decay_process
Reviewer Review Type Date Requested Status
marco zaro Approve
Hua-Sheng Shao Approve
Olivier Mattelaer Approve
Review via email: mp+273880@code.launchpad.net

Description of the change

Allow for the computation of (partial) decay widths at NLO accuracy, e.g.,

generate Z > b b~ [QCD]

or

import model loop_sm-no_b_mass
generate t > e+ ve j [QCD]

etc.

The renormalisation (and Ellis-Sexton) scales are automatically set to the mass of the decaying particle. Cuts are not automatically set to zero, so, in general you have to negate them in the run_card by hand.

To post a comment you must log in.
Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :
Download full text (128.7 KiB)

Hi Rik,

Negate all the cut automatically is easy. I can implement that if you want to.
I do that already at LO.

Cheers,

Olivier
On 08 Oct 2015, at 19:24, Rikkert Frederix <email address hidden> wrote:

> Rikkert Frederix has proposed merging lp:~maddevelopers/mg5amcnlo/NLO_decay_process into lp:~maddevelopers/mg5amcnlo/2.3.3.
>
> Requested reviews:
> Hua-Sheng Shao (erdissshaw)
> marco zaro (marco-zaro)
>
> For more details, see:
> https://code.launchpad.net/~maddevelopers/mg5amcnlo/NLO_decay_process/+merge/273880
>
> Allow for the computation of (partial) decay widths at NLO accuracy, e.g.,
>
> generate Z > b b~ [QCD]
>
> or
>
> import model loop_sm-no_b_mass
> generate t > e+ ve j [QCD]
>
> etc.
>
> The renormalisation (and Ellis-Sexton) scales are automatically set to the mass of the decaying particle. Cuts are not automatically set to zero, so, in general you have to negate them in the run_card by hand.
> --
> Your team MadDevelopers is subscribed to branch lp:~maddevelopers/mg5amcnlo/2.3.3.
> === modified file 'Template/NLO/SubProcesses/driver_mintFO.f'
> --- Template/NLO/SubProcesses/driver_mintFO.f 2015-10-02 07:00:09 +0000
> +++ Template/NLO/SubProcesses/driver_mintFO.f 2015-10-08 17:23:54 +0000
> @@ -170,7 +170,7 @@
> else
> flat_grid=.false.
> endif
> - ndim = 3*(nexternal-2)-4
> + ndim = 3*(nexternal-nincoming)-4
> if (abs(lpp(1)) .ge. 1) ndim=ndim+1
> if (abs(lpp(2)) .ge. 1) ndim=ndim+1
> c Don't proceed if muF1#muF2 (we need to work out the relevant formulae
> @@ -709,9 +709,14 @@
> endif
> elseif(buffer(1:12).eq.'SUM_HELICITY') then
> read(buffer(15:),*) i
> - if (i.eq.0) then
> - mc_hel=0
> - write (*,*) 'Explicitly summing over helicities'
> + if (nincoming.eq.1) then
> + write (*,*) 'Sum over helicities in the virtuals'/
> + $ /' for decay process'
> + mc_hel=0
> + elseif (i.eq.0) then
> + mc_hel=0
> + write (*,*) 'Explicitly summing over helicities'/
> + $ /' for the virtuals'
> else
> mc_hel=1
> write(*,*) 'Do MC over helicities for the virtuals'
>
> === modified file 'Template/NLO/SubProcesses/driver_mintMC.f'
> --- Template/NLO/SubProcesses/driver_mintMC.f 2015-09-25 14:53:36 +0000
> +++ Template/NLO/SubProcesses/driver_mintMC.f 2015-10-08 17:23:54 +0000
> @@ -108,6 +108,11 @@
> call cpu_time(tBefore)
> fixed_order=.false.
> nlo_ps=.true.
> + if (nincoming.ne.2) then
> + write (*,*) 'Decay processes not supported for'/
> + & /' event generation'
> + stop 1
> + endif
>
> c Read general MadFKS parameters
> c
> @@ -158,7 +163,7 @@
> else
> flat_grid=.false.
> endif
> - ndim = 3*(nexternal-2)-4
> + ndim = 3*(nexternal-nincoming)-4
> if (abs(lpp(1)) .ge. 1) ndim=ndim+1
> if (abs(lpp(2)) .ge. 1) ndim=ndim+1
> c Don''t proceed if muF1#muF2 (we need to work out the relevant formulae
> @@ -638,12 +643,17 @@
>
> write(*,10) 'Exact helicity su...

Revision history for this message
Rikkert Frederix (frederix) wrote :

Hi Olivier,

That would be great. It's just the 'ptj', 'mll_sf' and 'ptgmin' that should be set to zero.

Thanks,
Rikkert

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi Rik,

I put to “no cut” all the run_card parameter flagged as “cut” in the python object. (The same will apply to all future cut)
This is done at the default run_card level, so all the cut are still allowed to be modified but are not present by default.
This is the exact behaviour that we have @LO.

When trying to test, I face this error:
aMCatNLOError : Decay processes can only be run at fixed order.

So I have also change the default question to:

The following switches determine which operations are executed:
 1 Perturbative order of the calculation: order=NLO
 2 Fixed order (no event generation and no MC@[N]LO matching): fixed_order=ON
 3 Shower the generated events: shower=Not available for decay
 4 Decay particles with the MadSpin module: madspin=Not available for decay
 5 Add weights to the events based on changing model parameters: reweight=Not available for decay
  Either type the switch number (1 to 5) to change its default setting,
  or set any switch explicitly (e.g. type 'order=LO' at the prompt)
  Type '0', 'auto', 'done' or just press enter when you are done.
 [0, 1, auto, done, order=LO, order=NLO, fixed_order=ON, LO, NLO][60s to answer]

Such that this is automatically a good setup which is used and all unsupported case are forbidden.

For both of them, I had to change the way aMC@NLO supports the proc_characteristic object/file.
So Marco please take a look.

Cheers,

Olivier

On 08 Oct 2015, at 19:42, Rikkert Frederix <email address hidden> wrote:

> Hi Olivier,
>
> That would be great. It's just the 'ptj', 'mll_sf' and 'ptgmin' that should be set to zero.
>
> Thanks,
> Rikkert
>
> --
> https://code.launchpad.net/~maddevelopers/mg5amcnlo/NLO_decay_process/+merge/273880
> Your team MadDevelopers is subscribed to branch lp:~maddevelopers/mg5amcnlo/2.3.3.

317. By Olivier Mattelaer

improve the interface

Revision history for this message
Rikkert Frederix (frederix) wrote :

Hi Olivier,

Thanks.

One question though (maybe this was already there in the default version; I haven't checked). What is this:

"fixed_order=ON, LO, NLO"

Shouldn't it not only be "ON" (or "OFF")?

Cheers,
Rik

Revision history for this message
Hua-Sheng Shao (erdissshaw) wrote :
Download full text (3.6 KiB)

HI Rik,

It is really cool that decay process works at NLO. I quickly tested one process in order to compare with SMWidth. If one wants to calculate the total width for Z (which can be used by MadWidth for CMS@NLO for example), I

define f = j l+ l- vl vl~ ta+ ta-
generate z > f f [QCD]

It is apparent that there is no QCD corrections to some subprocesses like z > l+ l-. The program crashes since no virtual and real diagrams will be generated.

Is it possible to automatically realize if there is no QCD corrections and only calculates tree-level? Or you think it is better to do it in MadWidth to decide which subprocesses have QCD corrections.

A tiny thing: in summary.txt and also the output, it is

      Final results and run summary:
      Process z > j j [QCD]
      Run at l-l collider (6500.0 + 6500.0 GeV)
      (Partial) decay width: 1.761e+00 +- 2.0e-03 GeV
      Ren. and fac. scale uncertainty: +0.4% -0.3%

Can you remove "Run at l-l collider (6500.0 + 6500.0 GeV)". Moreover, if one wants to change the scale, how can one set in decay process?

@Marco: do you think how easy/difficult to implement Rik's implementation in EW branches ? It might be quite useful and have some complicated comparison between MG5 and SMWidth.

I will give a serious report later and compare the numbers with SMWidth.

Great work and awesome !

Cheers,

Hua-Sheng

On Oct 9, 2015, at 11:33 AM, Olivier Mattelaer <email address hidden> wrote:

> Hi Rik,
>
> I put to “no cut” all the run_card parameter flagged as “cut” in the python object. (The same will apply to all future cut)
> This is done at the default run_card level, so all the cut are still allowed to be modified but are not present by default.
> This is the exact behaviour that we have @LO.
>
> When trying to test, I face this error:
> aMCatNLOError : Decay processes can only be run at fixed order.
>
> So I have also change the default question to:
>
> The following switches determine which operations are executed:
> 1 Perturbative order of the calculation: order=NLO
> 2 Fixed order (no event generation and no MC@[N]LO matching): fixed_order=ON
> 3 Shower the generated events: shower=Not available for decay
> 4 Decay particles with the MadSpin module: madspin=Not available for decay
> 5 Add weights to the events based on changing model parameters: reweight=Not available for decay
> Either type the switch number (1 to 5) to change its default setting,
> or set any switch explicitly (e.g. type 'order=LO' at the prompt)
> Type '0', 'auto', 'done' or just press enter when you are done.
> [0, 1, auto, done, order=LO, order=NLO, fixed_order=ON, LO, NLO][60s to answer]
>
> Such that this is automatically a good setup which is used and all unsupported case are forbidden.
>
> For both of them, I had to change the way aMC@NLO supports the proc_characteristic object/file.
> So Marco please take a look.
>
> Cheers,
>
> Olivier
>
>
> On 08 Oct 2015, at 19:42, Rikkert Frederix <email address hidden> wrote:
>
>> Hi Olivier,
>>
>> That would be great. It's just the 'ptj', 'mll_sf' and 'ptgm...

Read more...

Revision history for this message
marco zaro (marco-zaro) wrote :
Download full text (6.3 KiB)

Hi,
is fixed-order supposed to always be on?
I cannot toggle it off, neither entering 2, nor with “fixed_order=OFF”
@Hua-sheng, it should be rather easy to merge with the EW branch

Cheers,

Marco

The following switches determine which operations are executed:
 1 Perturbative order of the calculation: order=NLO
 2 Fixed order (no event generation and no MC@[N]LO matching): fixed_order=ON
 3 Shower the generated events: shower=Not available for decay
 4 Decay particles with the MadSpin module: madspin=Not available for decay
 5 Add weights to the events based on changing model parameters: reweight=Not available for decay
  Either type the switch number (1 to 5) to change its default setting,
  or set any switch explicitly (e.g. type 'order=LO' at the prompt)
  Type '0', 'auto', 'done' or just press enter when you are done.
 [0, 1, auto, done, order=LO, order=NLO, fixed_order=ON, LO, NLO][60s to answer]
>2
2 not valid argument. Valid argument are in (0,1,auto,done,order=LO,order=NLO,fixed_order=ON,LO,NLO,fixed_order=on,order=nlo,order=lo).
please retry
>[timer stopped]
fixed_order=ON
INFO: For coherence 'shower' is set to 'OFF'
INFO: For coherence 'madspin' is set to 'OFF'
INFO: For coherence 'reweight' is set to 'OFF'
The following switches determine which operations are executed:
 1 Perturbative order of the calculation: order=NLO
 2 Fixed order (no event generation and no MC@[N]LO matching): fixed_order=ON
 3 Shower the generated events: shower=OFF
 4 Decay particles with the MadSpin module: madspin=OFF
 5 Add weights to the events based on changing model parameters: reweight=OFF
  Either type the switch number (1 to 5) to change its default setting,
  or set any switch explicitly (e.g. type 'order=LO' at the prompt)
  Type '0', 'auto', 'done' or just press enter when you are done.
 [0, 1, auto, done, order=LO, order=NLO, fixed_order=ON, LO, NLO, ... ][60s to answer]
>fixed_order=OFF
fixed_order=OFF not valid argument. Valid argument are in (0,1,auto,done,order=LO,order=NLO,fixed_order=ON,LO,NLO,fixed_order=on,order=nlo,order=lo,fixed_order=on,order=nlo,order=lo).
please retry
>
use 0

On 09 Oct 2015, at 11:48, Hua-Sheng Shao <email address hidden> wrote:

> HI Rik,
>
> It is really cool that decay process works at NLO. I quickly tested one process in order to compare with SMWidth. If one wants to calculate the total width for Z (which can be used by MadWidth for CMS@NLO for example), I
>
> define f = j l+ l- vl vl~ ta+ ta-
> generate z > f f [QCD]
>
> It is apparent that there is no QCD corrections to some subprocesses like z > l+ l-. The program crashes since no virtual and real diagrams will be generated.
>
> Is it possible to automatically realize if there is no QCD corrections and only calculates tree-level? Or you think it is better to do it in MadWidth to decide which subprocesses have QCD corrections.
>
> A tiny thing: in summary.txt and also the output, it is
>
> Final results and run summary:
> Process z...

Read more...

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi,

This is the list of all available valid input
you have three valid entry that you can type:
> fixed_order=ON
LO
NLO
This is NOT suggesting “fixed_order=LO”

But ok having fixed_order=ON is irrelevant, So I have remove it:

The following switches determine which operations are executed:
 1 Perturbative order of the calculation: order=NLO
 2 Fixed order (no event generation and no MC@[N]LO matching): fixed_order=ON
 3 Shower the generated events: shower=Not available for decay
 4 Decay particles with the MadSpin module: madspin=Not available for decay
 5 Add weights to the events based on changing model parameters: reweight=Not available for decay
  Either type the switch number (1 to 5) to change its default setting,
  or set any switch explicitly (e.g. type 'order=LO' at the prompt)
  Type '0', 'auto', 'done' or just press enter when you are done.
 [0, 1, auto, done, order=LO, order=NLO, LO, NLO][60s to answer]

Cheers,

Olivier
On 09 Oct 2015, at 11:42, Rikkert Frederix <email address hidden> wrote:

> Hi Olivier,
>
> Thanks.
>
> One question though (maybe this was already there in the default version; I haven't checked). What is this:
>
> "fixed_order=ON, LO, NLO"
>
> Shouldn't it not only be "ON" (or "OFF")?
>
> Cheers,
> Rik
>
> --
> https://code.launchpad.net/~maddevelopers/mg5amcnlo/NLO_decay_process/+merge/273880
> Your team MadDevelopers is subscribed to branch lp:~maddevelopers/mg5amcnlo/2.3.3.

318. By Olivier Mattelaer

slight improvement

319. By Rikkert Frederix

removed the printing of the collider (energy) at the end of the run for decay processes

Revision history for this message
Rikkert Frederix (frederix) wrote :

Hi Hua-Sheng,

I don't know how to combine LO and NLO processes like that. I guess it would be some work to implement it. Right now, I think it's okay to have it only for QCD processes, just like collider processes are only for QCD processes (things like "e+ e- > mu+ mu- [ all = QCD ]") don't work).

I've removed the "Run at l-l collider (6500.0 + 6500.0 GeV)" stuff from the run summary.

Marco: Yeah, it is only supposed to work for fixed order. I don't think it makes so much sense to do event generation for decays.

Cheers,
Rik

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Hi guys,

Could we finish this review soon such that we can release 2.3.3?

I take a look and it works nicely. Great work.
Here is a couple of superficial comment/question:
(I did not look at the code since I'm not a reviewer)

1) I tried:
generate t > b all all [QCD]

and I have the following warning:
WARNING: Process: t > b g/gh/gh~/d/u/s/c/d~/u~/s~/c~/a/ve/vm/vt/e-/mu-/ve~/vm~/vt~/e+/mu+/b/t/b~/t~/z/w+/h/w-/ta-/ta+ g/gh/gh~/d/u/s/c/d~/u~/s~/c~/a/ve/vm/vt/e-/mu-/ve~/vm~/vt~/e+/mu+/b/t/b~/t~/z/w+/h/w-/ta-/ta+ [ all = QCD ] can have real emission processes which are not finite.
To avoid this, please use multiparticles when generating the process and be sure to include all the following particles in the multiparticle definition:
 g, c, s, u, d, d~, u~, s~, c~

This should not be raised right?

Finally it crashed with:

Command "launch auto " interrupted with error:
IOError : [Errno 2] No such file or directory: '/Users/omatt/Documents/eclipse/NLO_decay_process/topwidth/SubProcesses/P0_t_tbbx/channels.txt'
Please report this bug on https://bugs.launchpad.net/madgraph5
More information is found in '/Users/omatt/Documents/eclipse/NLO_decay_process/topwidth/run_01_tag_1_debug.log'.
Please attach this file to your report.

This should be very simple to prevent.

2) I tried
generate w+ > all all [QCD]
and it also crashes:

Command "generate w+ > all all [QCD]" interrupted with error:
InvalidCmd : All loop diagrams discarded by user selection.
 Consider using a tree-level generation or relaxing the coupling order constraints.
Please report this bug on https://bugs.launchpad.net/madgraph5
More information is found in 'MG5_debug'.
Please attach this file to your report.

3) I tried
generate t > w+ b [QCD]
then I see as output:

(Partial) decay width: 1.347e+00 +- 8.9e-03 GeV
Ren. and fac. scale uncertainty: +1.2% -1.5%

One small remark here, "factorization variation" is irrelevant here and can be remove from the log [but ok we can keep it do not hurt]

then I re-run with fix (renormalisation) scale computation (at 90GeV) and get
(Partial) decay width: 1.343e+00 +- 9.2e-03 GeV
Clearly my scale choice is not consider.

This is confusion (at minima) and should either works or at least raise a warning that we do not support that (but should be easy to handle).
I would propose that the default "dynamical" scale is the mass of the decaying particle.
and that at least static scale works.

4) [This should not be implemented now but I want to start the discussion].
For the moment the "only" output is a partial width/plot. It will be useful to have a param_card as output with updated information (that's typically the point of computing the width).
Concerning the BR, this is obviously less clear @NLO, but I would propose that we use the "proton"
pdg code for the branching ratio to avoid problem with the massless quark flavor. (this can be discussed with pythia/herwig author)

Cheers,

Olivier

320. By Rikkert Frederix

address Olivier's suggestions and made sure that the width of initial
state particles is also set to zero for consistency.

Revision history for this message
Rikkert Frederix (frederix) wrote :

Hi Olivier,

Thanks for trying it out!

Let me address your questions.

1). About the multi-particle warning, it should indeed not be raised. However, this is not specific to this branch, and I don't know how these multi-particles labels are defined. Maybe Marco can have a quick look to this?
I "fixed" the crash with a WARNING written to screen. Note that computing "t > b all all" does not make sense at all from a physics point of view because you are double counting many contributions (for example "t > b e+ ve" with "t > b wp g").

2). Remember that QCD NLO corrections can only be computed to processes that have at least one QCD particle in them. Therefore "w+ > all all" cannot be computed with the current code. This is not a limitation of this branch, but much more general. I don't think this branch is the right place to address this problem.

3). This was already exactly the way you want it to be. Note that the renormalisation scale dependence is simply rather small (your integration uncertainty is about 1% and the scale uncertainty is also about 1%).

4). I agree that this would be useful at some point. But I think first the above points 1) and 2) should be addressed before we could even start thinking about this.

Cheers,
Rik

Revision history for this message
Olivier Mattelaer (olivier-mattelaer) wrote :

Thanks Rik,

2). Remember that QCD NLO corrections can only be computed to processes that have at least one QCD particle in them. Therefore "w+ > all all" cannot be computed with the current code. This is not a limitation of this branch, but much more general. I don't think this branch is the right place to address this problem.

Yes we can do that in a second stage.

3). This was already exactly the way you want it to be. Note that the renormalisation scale dependence is simply rather small (your integration uncertainty is about 1% and the scale uncertainty is also about 1%).

Ah ok did not look at the statistical error. Thanks.
Just for curiosity. Did you use MC technique for the integration or are you using simpson? (so much faster in this case)

Cheers and thanks,

Olivier

review: Approve
Revision history for this message
Rikkert Frederix (frederix) wrote :

Hi Olivier,

> Ah ok did not look at the statistical error. Thanks.
> Just for curiosity. Did you use MC technique for the integration or are you
> using simpson? (so much faster in this case)

Normal MC integration. Note that for NLO processes, you always have 3 more integration dimensions compared to LO, so I doubt that Simpson is much faster. In particular for anything beyond 1->2 decays.

Cheers,
Rikkert

Revision history for this message
Hua-Sheng Shao (erdissshaw) wrote :

Hi Rik,

I have looked at the changes. It looks fine. Moreover, I have checked the total width (LO and QCD corrections) in loop_sm, i.e. w, z, top. It looks same as SMWidth. Moroever, for a 1 > 3 process t > j j j [QCD]. It also works. Hence, I think it is good to merge into trunk.

Cheers,

Hua-Sheng

review: Approve
321. By Rikkert Frederix

merge with latest 2.3.3

322. By marco zaro

the warning for multiparticle definition is not raised for decay processes

Revision history for this message
marco zaro (marco-zaro) wrote :

Hi Rik
sorry for the delay, somehow i forgot about this.
So i had a look at the changes in the fortran code and in the fks python part, everything looks great there.
Green light from me.
For the warning on multiparticle labels, it is not there any more for decay processes.

Cheers,

Marco

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 2015-10-02 07:00:09 +0000
3+++ Template/NLO/SubProcesses/driver_mintFO.f 2015-10-20 10:56:39 +0000
4@@ -170,7 +170,7 @@
5 else
6 flat_grid=.false.
7 endif
8- ndim = 3*(nexternal-2)-4
9+ ndim = 3*(nexternal-nincoming)-4
10 if (abs(lpp(1)) .ge. 1) ndim=ndim+1
11 if (abs(lpp(2)) .ge. 1) ndim=ndim+1
12 c Don't proceed if muF1#muF2 (we need to work out the relevant formulae
13@@ -709,9 +709,14 @@
14 endif
15 elseif(buffer(1:12).eq.'SUM_HELICITY') then
16 read(buffer(15:),*) i
17- if (i.eq.0) then
18- mc_hel=0
19- write (*,*) 'Explicitly summing over helicities'
20+ if (nincoming.eq.1) then
21+ write (*,*) 'Sum over helicities in the virtuals'/
22+ $ /' for decay process'
23+ mc_hel=0
24+ elseif (i.eq.0) then
25+ mc_hel=0
26+ write (*,*) 'Explicitly summing over helicities'/
27+ $ /' for the virtuals'
28 else
29 mc_hel=1
30 write(*,*) 'Do MC over helicities for the virtuals'
31
32=== modified file 'Template/NLO/SubProcesses/driver_mintMC.f'
33--- Template/NLO/SubProcesses/driver_mintMC.f 2015-09-25 14:53:36 +0000
34+++ Template/NLO/SubProcesses/driver_mintMC.f 2015-10-20 10:56:39 +0000
35@@ -108,6 +108,11 @@
36 call cpu_time(tBefore)
37 fixed_order=.false.
38 nlo_ps=.true.
39+ if (nincoming.ne.2) then
40+ write (*,*) 'Decay processes not supported for'/
41+ & /' event generation'
42+ stop 1
43+ endif
44
45 c Read general MadFKS parameters
46 c
47@@ -158,7 +163,7 @@
48 else
49 flat_grid=.false.
50 endif
51- ndim = 3*(nexternal-2)-4
52+ ndim = 3*(nexternal-nincoming)-4
53 if (abs(lpp(1)) .ge. 1) ndim=ndim+1
54 if (abs(lpp(2)) .ge. 1) ndim=ndim+1
55 c Don''t proceed if muF1#muF2 (we need to work out the relevant formulae
56@@ -638,12 +643,17 @@
57
58 write(*,10) 'Exact helicity sum (0 yes, n = number/event)? '
59 read(*,*) i
60- if (i .eq. 0) then
61- mc_hel= 0
62- write(*,*) 'Explicitly summing over helicities for virt'
63+ if (nincoming.eq.1) then
64+ write (*,*) 'Sum over helicities in the virtuals'/
65+ $ /' for decay process'
66+ mc_hel=0
67+ elseif (i.eq.0) then
68+ mc_hel=0
69+ write (*,*) 'Explicitly summing over helicities'/
70+ $ /' for the virtuals'
71 else
72- mc_hel= i
73- write(*,*) 'Summing over',i,' helicities/event for virt'
74+ mc_hel=1
75+ write(*,*) 'Do MC over helicities for the virtuals'
76 endif
77 isum_hel = 0
78
79
80=== modified file 'Template/NLO/SubProcesses/fks_Sij.f'
81--- Template/NLO/SubProcesses/fks_Sij.f 2012-08-28 21:06:34 +0000
82+++ Template/NLO/SubProcesses/fks_Sij.f 2015-10-20 10:56:39 +0000
83@@ -90,9 +90,13 @@
84
85 c Consistency check -- call to set_cms_stuff() must be done prior to
86 c entering this function
87- shattmp=2d0*dot(p(0,1),p(0,2))
88+ if (nincoming.eq.2) then
89+ shattmp=2d0*dot(p(0,1),p(0,2))
90+ else
91+ shattmp=p(0,1)**2
92+ endif
93 if(abs(shattmp/shat-1.d0).gt.1.d-5)then
94- write(*,*)'Error in fks_Sij: inconsistent shat'
95+ write(*,*)'Error in fks_Sij: inconsistent shat #1'
96 write(*,*)shattmp,shat
97 stop
98 endif
99@@ -148,6 +152,7 @@
100 do j=1,fks_j_from_i(i,0)
101 kk = i
102 ll = fks_j_from_i(i,j)
103+ if (nincoming.ne.2 .and. ll.le.nincoming) cycle
104 if ( ijskip(kk,ll).eq.0 .and. ijskip(ll,kk).eq.0 ) then
105 ijskip(kk,ll) = 1
106 elseif ( ijskip(kk,ll).eq.0 .and. ijskip(ll,kk).eq.1 ) then
107@@ -178,6 +183,7 @@
108 do j=1,fks_j_from_i(i,0)
109 kk = i
110 ll = fks_j_from_i(i,j)
111+ if (nincoming.ne.2 .and. ll.le.nincoming) cycle
112 if(ijskip(kk,ll).ne.1)goto 222
113 if(particle_type(ll).eq.8.and.particle_type(kk).ne.8.and.
114 # ll.gt.nincoming)then
115@@ -567,7 +573,11 @@
116
117 c Consistency check -- call to set_cms_stuff() must be done prior to
118 c entering this function
119- shattmp=2d0*dot(p(0,1),p(0,2))
120+ if (nincoming.eq.2) then
121+ shattmp=2d0*dot(p(0,1),p(0,2))
122+ else
123+ shattmp=p(0,1)**2
124+ endif
125 if(abs(shattmp/shat-1.d0).gt.1.d-5)then
126 write(*,*)'Error in fks_Hij: inconsistent shat'
127 write(*,*)shattmp,shat
128
129=== modified file 'Template/NLO/SubProcesses/fks_singular.f'
130--- Template/NLO/SubProcesses/fks_singular.f 2015-09-14 07:31:51 +0000
131+++ Template/NLO/SubProcesses/fks_singular.f 2015-10-20 10:56:39 +0000
132@@ -1230,7 +1230,12 @@
133 c PDG codes
134 niproc(ict)=iproc
135 do j=1,iproc
136- parton_iproc(j,ict)=pd(j)*conv
137+ if (nincoming.eq.2) then
138+ parton_iproc(j,ict)=pd(j)*conv
139+ else
140+c Keep GeV's for decay processes (no conv. factor needed)
141+ parton_iproc(j,ict)=pd(j)
142+ endif
143 do k=1,nexternal
144 parton_pdg(k,j,ict)=idup_d(iFKS,k,j)
145 if (k.lt.fks_j_d(iFKS)) then
146@@ -2199,9 +2204,15 @@
147 do ii=1,iproc_save(nFKS(ict))
148 if (eto(ii,nFKS(ict)).ne.ipr) cycle
149 n_ctr_found=n_ctr_found+1
150- write (n_ctr_str(n_ctr_found),'(3(1x,d18.12),1x,i2)')
151- & (wgt(j,ict)*conv,j=1,3),
152- & nexternal
153+ if (nincoming.eq.2) then
154+ write (n_ctr_str(n_ctr_found),'(3(1x,d18.12),1x,i2)')
155+ & (wgt(j,ict)*conv,j=1,3),
156+ & nexternal
157+ else
158+ write (n_ctr_str(n_ctr_found),'(3(1x,d18.12),1x,i2)')
159+ & (wgt(j,ict),j=1,3),
160+ & nexternal
161+ endif
162 procid=''
163 do j=1,nexternal
164 write (str_temp,*) parton_pdg(j,ii,ict)
165@@ -2227,9 +2238,15 @@
166 c H-event
167 ipr=iproc_picked
168 n_ctr_found=n_ctr_found+1
169- write (n_ctr_str(n_ctr_found),'(3(1x,d18.12),1x,i2)')
170- & (wgt(j,ict)*conv,j=1,3),
171- & nexternal
172+ if (nincoming.eq.2) then
173+ write (n_ctr_str(n_ctr_found),'(3(1x,d18.12),1x,i2)')
174+ & (wgt(j,ict)*conv,j=1,3),
175+ & nexternal
176+ else
177+ write (n_ctr_str(n_ctr_found),'(3(1x,d18.12),1x,i2)')
178+ & (wgt(j,ict),j=1,3),
179+ & nexternal
180+ endif
181 procid=''
182 do j=1,nexternal
183 write (str_temp,*) parton_pdg(j,ipr,ict)
184@@ -2342,7 +2359,7 @@
185 do i=0,3
186 xsum(i)=0.d0
187 xsuma(i)=0.d0
188- do j=3,npart
189+ do j=nincoming+1,npart
190 xsum(i)=xsum(i)+xmom(i,j)
191 xsuma(i)=xsuma(i)+abs(xmom(i,j))
192 enddo
193@@ -2409,9 +2426,14 @@
194 pass=.true.
195 jflag=0
196 do i=0,3
197- xsum(i)=-xmom(i,1)-xmom(i,2)
198- xsuma(i)=abs(xmom(i,1))+abs(xmom(i,2))
199- do j=3,npart
200+ if (nincoming.eq.2) then
201+ xsum(i)=-xmom(i,1)-xmom(i,2)
202+ xsuma(i)=abs(xmom(i,1))+abs(xmom(i,2))
203+ elseif(nincoming.eq.1) then
204+ xsum(i)=-xmom(i,1)
205+ xsuma(i)=abs(xmom(i,1))
206+ endif
207+ do j=nincoming+1,npart
208 xsum(i)=xsum(i)+xmom(i,j)
209 xsuma(i)=xsuma(i)+abs(xmom(i,j))
210 enddo
211@@ -2424,14 +2446,14 @@
212 write(*,*)'Momentum is not conserved [nocms]'
213 write(*,*)'i=',i
214 do j=1,npart
215- write(*,'(4(d14.8,1x))') (xmom(jj,j),jj=0,3)
216+ write(*,'(i2,1x,4(d14.8,1x))') j,(xmom(jj,j),jj=0,3)
217 enddo
218 jflag=1
219 endif
220 enddo
221 if(jflag.eq.1)then
222- write(*,'(4(d14.8,1x))') (xsum(jj),jj=0,3)
223- write(*,'(4(d14.8,1x))') (xrat(jj),jj=0,3)
224+ write(*,'(a3,1x,4(d14.8,1x))') 'sum',(xsum(jj),jj=0,3)
225+ write(*,'(a3,1x,4(d14.8,1x))') 'rat',(xrat(jj),jj=0,3)
226 pass=.false.
227 return
228 endif
229@@ -2458,7 +2480,11 @@
230 endif
231 enddo
232 c
233- ecmtmp=sqrt(2d0*dot(xmom(0,1),xmom(0,2)))
234+ if (nincoming.eq.2) then
235+ ecmtmp=sqrt(2d0*dot(xmom(0,1),xmom(0,2)))
236+ elseif (nincoming.eq.1) then
237+ ecmtmp=xmom(0,1)
238+ endif
239 if(abs(ecm-ecmtmp).gt.vtiny)then
240 write(*,*)'Inconsistent shat [nocms]'
241 write(*,*)'ecm given= ',ecm
242@@ -2716,7 +2742,11 @@
243
244 c Consistency check -- call to set_cms_stuff() must be done prior to
245 c entering this function
246- shattmp=2d0*dot(pp(0,1),pp(0,2))
247+ if (nincoming.eq.2) then
248+ shattmp=2d0*dot(pp(0,1),pp(0,2))
249+ else
250+ shattmp=pp(0,1)**2
251+ endif
252 if(abs(shattmp/shat-1.d0).gt.1.d-5)then
253 write(*,*)'Error in sreal: inconsistent shat'
254 write(*,*)shattmp,shat
255@@ -2724,9 +2754,9 @@
256 endif
257
258 if (1d0-y_ij_fks.lt.tiny)then
259- if (pmass(j_fks).eq.zero.and.j_fks.le.2)then
260+ if (pmass(j_fks).eq.zero.and.j_fks.le.nincoming)then
261 call sborncol_isr(pp,xi_i_fks,y_ij_fks,wgt)
262- elseif (pmass(j_fks).eq.zero.and.j_fks.ge.3)then
263+ elseif (pmass(j_fks).eq.zero.and.j_fks.ge.nincoming+1)then
264 call sborncol_fsr(pp,xi_i_fks,y_ij_fks,wgt)
265 else
266 wgt=0d0
267@@ -2830,7 +2860,7 @@
268 E_i_fks = p(0,i_fks)
269 z = 1d0 - E_i_fks/(E_i_fks+E_j_fks)
270 t = z * shat/4d0
271- if(rotategranny .and. nexternal-1.ne.3)then
272+ if(rotategranny .and. nexternal-1.ne.3 .and. nincoming.eq.2)then
273 c Exclude 2->1 (at the Born level) processes: matrix elements are
274 c independent of the PS point, but non-zero helicity configurations
275 c might flip when rotating the momenta.
276@@ -2950,7 +2980,7 @@
277 c Thus, an extra factor z (implicit in the flux of the reduced Born
278 c in FKS) has to be inserted here
279 t = z*shat/4d0
280- if(j_fks.eq.2 .and. nexternal-1.ne.3)then
281+ if(j_fks.eq.2 .and. nexternal-1.ne.3 .and. nincoming.eq.2)then
282 c Rotation according to innerpin.m. Use rotate_invar() if a more
283 c general rotation is needed.
284 c Exclude 2->1 (at the Born level) processes: matrix elements are
285@@ -2981,7 +3011,7 @@
286 pi(i)=p_i_fks_ev(i)
287 pj(i)=p(i,j_fks)
288 enddo
289- if(j_fks.eq.2)then
290+ if(j_fks.eq.2 .and. nincoming.eq.2)then
291 c Rotation according to innerpin.m. Use rotate_invar() if a more
292 c general rotation is needed
293 pi(1)=-pi(1)
294@@ -3002,7 +3032,7 @@
295 azifact=Wij_angle/Wij_recta
296 endif
297 c Insert the extra factor due to Madgraph convention for polarization vectors
298- if(j_fks.eq.2)then
299+ if(j_fks.eq.2 .and. nincoming.eq.2)then
300 cphi_mother=-1.d0
301 sphi_mother=0.d0
302 else
303@@ -3477,7 +3507,11 @@
304
305 c Consistency check -- call to set_cms_stuff() must be done prior to
306 c entering this function
307- shattmp=2d0*dot(p(0,1),p(0,2))
308+ if (nincoming.eq.2) then
309+ shattmp=2d0*dot(p(0,1),p(0,2))
310+ else
311+ shattmp=p(0,1)**2
312+ endif
313 if(abs(shattmp/shat-1.d0).gt.1.d-5)then
314 write(*,*)'Error in sreal: inconsistent shat'
315 write(*,*)shattmp,shat
316@@ -3786,7 +3820,7 @@
317 enddo
318 enddo
319 do i=0,3
320- if(j_fks.gt.2)then
321+ if(j_fks.gt.nincoming)then
322 xnum=p1_cnt(i,i_fks,inum)+p1_cnt(i,j_fks,inum)
323 xden=p1_cnt(i,i_fks,iden)+p1_cnt(i,j_fks,iden)
324 else
325@@ -4386,7 +4420,11 @@
326
327 c Consistency check -- call to set_cms_stuff() must be done prior to
328 c entering this function
329- shattmp=2d0*dot(p(0,1),p(0,2))
330+ if (nincoming.eq.2) then
331+ shattmp=2d0*dot(p(0,1),p(0,2))
332+ else
333+ shattmp=p(0,1)**2
334+ endif
335 if(abs(shattmp/shat-1.d0).gt.1.d-5)then
336 write(*,*)'Error in sreal: inconsistent shat'
337 write(*,*)shattmp,shat
338@@ -4463,7 +4501,7 @@
339 enddo
340 c
341 do i=1,nincoming
342- if (particle_type(i).ne.1)then
343+ if (particle_type(i).ne.1 .and. pmass(i).eq.ZERO) then
344 if (particle_type(i).eq.8) then
345 aj=0
346 elseif(abs(particle_type(i)).eq.3) then
347@@ -4988,8 +5026,13 @@
348 elseif(abrv.ne.'virt' .and. abrv.ne.'viSC' .and.
349 # abrv.ne.'viLC')then
350 c 1+2+3+4
351- tmp=dlog(xicut_used**2*shat/QES2)-
352- # 1/betai*dlog((1+betai)/(1-betai))
353+ if (betai.gt.1d-6) then
354+ tmp=dlog(xicut_used**2*shat/QES2)-
355+ & 1/betai*dlog((1+betai)/(1-betai))
356+ else
357+ tmp=dlog(xicut_used**2*shat/QES2)-
358+ & 2d0*(1d0+betai**2/3d0+betai**4/5d0)
359+ endif
360 else
361 write(*,*)'Error #14 in eikonal_Ireg',abrv
362 stop
363@@ -5216,7 +5259,11 @@
364 elseif(pmass(m).ne.zero.and.pmass(n).ne.zero)then
365 kikj=dot(p(0,n),p(0,m))
366 vij=sqrt(1-(pmass(n)*pmass(m)/kikj)**2)
367- single=single+0.5d0*1/vij*log((1+vij)/(1-vij))*wgt
368+ if (vij .gt. 1d-6) then
369+ single=single+0.5d0*1/vij*log((1+vij)/(1-vij))*wgt
370+ else
371+ single=single+(1d0+vij**2/3d0+vij**4/5d0)*wgt
372+ endif
373 else
374 write(*,*)'Error in getpoles',i,j,n,m,pmass(n),pmass(m)
375 stop
376
377=== modified file 'Template/NLO/SubProcesses/genps_fks.f'
378--- Template/NLO/SubProcesses/genps_fks.f 2015-02-04 13:26:19 +0000
379+++ Template/NLO/SubProcesses/genps_fks.f 2015-10-20 10:56:39 +0000
380@@ -182,15 +182,19 @@
381 endif
382 enddo
383 if( firsttime .or. iconfig0.ne.iconfigsave ) then
384- stot = 4d0*ebeam(1)*ebeam(2)
385+ if (nincoming.eq.2) then
386+ stot = 4d0*ebeam(1)*ebeam(2)
387+ else
388+ stot=pmass(1)**2
389+ endif
390 c Make sure have enough mass for external particles
391 totmassin=0d0
392- do i=3-nincoming,2
393+ do i=1,nincoming
394 totmassin=totmassin+m(i)
395 enddo
396 totmass=0d0
397 nbranch = nexternal-3 ! nexternal is for n+1-body, while itree uses n-body
398- do i=3,nbranch+2
399+ do i=nincoming+1,nexternal-1
400 totmass=totmass+m(i)
401 enddo
402 fksmass=totmass
403@@ -294,7 +298,7 @@
404 else
405 pb(0,1)=sqrtshat_born
406 do i=1,2
407- pb(0,1)=0d0
408+ pb(i,1)=0d0
409 enddo
410 p(3,1)=1e-14 ! For HELAS routine ixxxxx for neg. mass
411 endif
412@@ -453,22 +457,22 @@
413 isolsign=1
414 call generate_momenta_massless_final(icountevts,i_fks,j_fks
415 & ,p_born(0,imother),shat,sqrtshat ,x(ixEi),xmrec2,xp
416- & ,phi_i_fks, xiimax,xinorm,xi_i_fks,y_ij_fks,p_i_fks
417+ & ,phi_i_fks,xiimax,xinorm,xi_i_fks,y_ij_fks,p_i_fks
418 & ,xjac,xpswgt,pass)
419 if (.not.pass) goto 112
420 elseif(m_j_fks.gt.0d0) then
421 call generate_momenta_massive_final(icountevts,isolsign
422- & ,i_fks,j_fks,p_born(0,imother),shat,sqrtshat ,m_j_fks
423- & ,x(ixEi),xmrec2,xp,phi_i_fks, xiimax,xinorm
424+ & ,i_fks,j_fks,p_born(0,imother),shat,sqrtshat,m_j_fks
425+ & ,x(ixEi),xmrec2,xp,phi_i_fks,xiimax,xinorm
426 & ,xi_i_fks,y_ij_fks,p_i_fks,xjac,xpswgt,pass)
427 if (.not.pass) goto 112
428 endif
429 elseif(j_fks.le.nincoming) then
430 isolsign=1
431 call generate_momenta_initial(icountevts,i_fks,j_fks,xbjrk_born
432- & ,tau_born,ycm_born,ycmhat,shat_born,phi_i_fks ,xp ,x(ixEi)
433- & ,shat,stot ,sqrtshat,tau,ycm,xbjrk ,p_i_fks,xiimax,xinorm
434- & ,xi_i_fks,y_ij_fks ,xpswgt,xjac ,pass)
435+ & ,tau_born,ycm_born,ycmhat,shat_born,phi_i_fks,xp ,x(ixEi)
436+ & ,shat,stot,sqrtshat,tau,ycm,xbjrk,p_i_fks,xiimax,xinorm
437+ & ,xi_i_fks,y_ij_fks ,xpswgt,xjac,pass)
438 if (.not.pass) goto 112
439 else
440 write (*,*) 'Error #2 in genps_fks.f',j_fks
441@@ -750,6 +754,7 @@
442 c remove the following if no importance sampling towards soft
443 c singularity is performed when integrating over xi_i_hat
444 xjac=xjac*2d0*x(1)
445+
446 c Check that xii is in the allowed range
447 if( icountevts.eq.-100 .or. abs(icountevts).eq.1 )then
448 if(xi_i_fks.gt.(1-xmrec2/shat))then
449@@ -829,7 +834,11 @@
450 c mother four momenta
451 do i=0,3
452 xp_mother(i)=xp(i,i_fks)+xp(i,j_fks)
453- recoil(i)=xp(i,1)+xp(i,2)-xp_mother(i)
454+ if (nincoming.eq.2) then
455+ recoil(i)=xp(i,1)+xp(i,2)-xp_mother(i)
456+ else
457+ recoil(i)=xp(i,1)-xp_mother(i)
458+ endif
459 enddo
460 sumrec=recoil(0)+rho(recoil)
461 sumrec2=sumrec**2
462@@ -843,7 +852,7 @@
463 xdir(j)=xp_mother(j)/x3len_fks_mother
464 enddo
465 c Perform the boost here
466- do i=3,nexternal
467+ do i=nincoming+1,nexternal
468 if(i.ne.i_fks.and.i.ne.j_fks.and.shybst.ne.0.d0)
469 & call boostwdir2(chybst,shybst,chybstmo,xdir,xp(0,i),xp(0,i))
470 enddo
471@@ -1145,7 +1154,11 @@
472 c mother four momenta
473 do i=0,3
474 xp_mother(i)=xp(i,i_fks)+xp(i,j_fks)
475- recoil(i)=xp(i,1)+xp(i,2)-xp_mother(i)
476+ if (nincoming.eq.2) then
477+ recoil(i)=xp(i,1)+xp(i,2)-xp_mother(i)
478+ else
479+ recoil(i)=xp(i,1)-xp_mother(i)
480+ endif
481 enddo
482 c
483 sumrec=recoil(0)+rho(recoil)
484@@ -1168,7 +1181,7 @@
485 xdir(j)=xp_mother(j)/x3len_fks_mother
486 enddo
487 c Boost the momenta
488- do i=3,nexternal
489+ do i=nincoming+1,nexternal
490 if(i.ne.i_fks.and.i.ne.j_fks.and.shybst.ne.0.d0)
491 & call boostwdir2(chybst,shybst,chybstmo,xdir,xp(0,i),xp(0,i))
492 enddo
493@@ -2357,7 +2370,11 @@
494 external dot
495 pass=.true.
496 do i=0,3
497- recoilbar(i)=p_born(i,1)+p_born(i,2)-p_born(i,imother)
498+ if (nincoming.eq.2) then
499+ recoilbar(i)=p_born(i,1)+p_born(i,2)-p_born(i,imother)
500+ else
501+ recoilbar(i)=p_born(i,1)-p_born(i,imother)
502+ endif
503 enddo
504 xmrec2=dot(recoilbar,recoilbar)
505 if(xmrec2.lt.0.d0)then
506
507=== modified file 'Template/NLO/SubProcesses/setcuts.f'
508--- Template/NLO/SubProcesses/setcuts.f 2015-07-24 18:59:18 +0000
509+++ Template/NLO/SubProcesses/setcuts.f 2015-10-20 10:56:39 +0000
510@@ -91,8 +91,6 @@
511 lpp(2)=0
512 ebeam(1)=pmass(1)/2d0
513 ebeam(2)=pmass(1)/2d0
514- scale=pmass(1)
515- fixed_ren_scale=.true.
516 endif
517 c-check consistency of maxjetflavor in the run_card and with Nf
518 c specified in coupl.inc
519
520=== modified file 'Template/NLO/SubProcesses/setscales.f'
521--- Template/NLO/SubProcesses/setscales.f 2015-09-11 13:19:28 +0000
522+++ Template/NLO/SubProcesses/setscales.f 2015-10-20 10:56:39 +0000
523@@ -237,7 +237,10 @@
524 $ ,FxFx_fac_scale
525 c
526 tmp=0
527- if(ickkw.eq.3)then
528+ if (nincoming.eq.1) then
529+ tmp=pp(0,1) ! mass of the decaying particle
530+ temp_scale_id='Mass of decaying particle'
531+ elseif(ickkw.eq.3)then
532 c FxFx merging scale:
533 c Note that nFxFx_ren_scales includes the one scale that corresponds
534 c to the real-emission one (and is zero for the n-body conf.). Skip
535@@ -490,7 +493,10 @@
536 parameter (iQEStype=1)
537 c
538 tmp=0
539- if(iQEStype.eq.1)then
540+ if (nincoming.eq.1) then
541+ tmp=pp(0,1) ! mass of the decaying particle
542+ temp_scale_id='Mass of decaying particle'
543+ elseif(iQEStype.eq.1)then
544 tmp=scale_global_reference(pp)
545 elseif(iQEStype.eq.2)then
546 do i=nincoming+1,nexternal
547
548=== modified file 'UpdateNotes.txt'
549--- UpdateNotes.txt 2015-10-15 20:22:39 +0000
550+++ UpdateNotes.txt 2015-10-20 10:56:39 +0000
551@@ -11,6 +11,7 @@
552 processes which have jets at Born level, but do not require generation cut (like t-channel single-top).
553 RF: Added an option to the run_card to allow for easier variation of the shower starting scale (NLO only).
554 RF: Fixed a problem in the setting of the flavour map used for runs with iAPPL >= 1.
555+ RF: Allow for decay processes to compute (partial) decay widths at NLO accuracy (fixed order only).
556 OM: (SysCalc interface) Allow to bypass the pdf reweighting/alpsfact reweighting
557 MZ: fixed bug related to slurm clusters
558 OM: remove the addmasses.py script of running by default on gridpack mode.
559
560=== modified file 'madgraph/fks/fks_base.py'
561--- madgraph/fks/fks_base.py 2015-10-01 16:00:08 +0000
562+++ madgraph/fks/fks_base.py 2015-10-20 10:56:39 +0000
563@@ -132,6 +132,9 @@
564 perturbation = []
565 for procdef in self['process_definitions']:
566 soft_particles = []
567+ # do not warn for decay processes
568+ if [ i['state'] for i in procdef['legs']].count(False) == 1:
569+ continue
570 for pert in procdef['perturbation_couplings']:
571 if pert not in perturbation:
572 perturbation.append(pert)
573@@ -550,10 +553,19 @@
574 """finds the FKS real configurations for a given process"""
575 if range(len(self.leglist)) != [l['number']-1 for l in self.leglist]:
576 raise fks_common.FKSProcessError('Disordered numbers of leglist')
577+
578+ if [ i['state'] for i in self.leglist].count(False) == 1:
579+ decay_process=True
580+ else:
581+ decay_process=False
582+
583 for i in self.leglist:
584 i_i = i['number'] - 1
585 self.reals.append([])
586- self.splittings[i_i] = fks_common.find_splittings(i, self.born_proc['model'], {}, pert_order)
587+ if decay_process and not i['state']:
588+ self.splittings[i_i]=[]
589+ else:
590+ self.splittings[i_i] = fks_common.find_splittings(i, self.born_proc['model'], {}, pert_order)
591 for split in self.splittings[i_i]:
592 self.reals[i_i].append(
593 fks_common.insert_legs(self.leglist, i, split,pert=pert_order))
594
595=== modified file 'madgraph/interface/amcatnlo_interface.py'
596--- madgraph/interface/amcatnlo_interface.py 2015-10-11 19:18:37 +0000
597+++ madgraph/interface/amcatnlo_interface.py 2015-10-20 10:56:39 +0000
598@@ -543,8 +543,13 @@
599 me.get('processes')[0].set('uid', uid)
600 for fksreal in me.real_processes:
601 # Pick out all initial state particles for the two beams
602- initial_states.append(sorted(list(set((p.get_initial_pdg(1),p.get_initial_pdg(2)) for \
603- p in fksreal.matrix_element.get('processes')))))
604+ try:
605+ initial_states.append(sorted(list(set((p.get_initial_pdg(1),p.get_initial_pdg(2)) for \
606+ p in fksreal.matrix_element.get('processes')))))
607+ except IndexError:
608+ initial_states.append(sorted(list(set((p.get_initial_pdg(1)) for \
609+ p in fksreal.matrix_element.get('processes')))))
610+
611
612 # remove doubles from the list
613 checked = []
614@@ -570,10 +575,10 @@
615
616 #_curr_matrix_element is a FKSHelasMultiProcess Object
617 self._fks_directories = []
618- proc_charac = banner_mod.ProcCharacteristic()
619+ proc_charac = self._curr_exporter.proc_characteristic
620 for charac in ['has_isr', 'has_fsr', 'has_loops']:
621 proc_charac[charac] = self._curr_matrix_elements[charac]
622- proc_charac.write(pjoin(path, 'proc_characteristics'))
623+
624
625 for ime, me in \
626 enumerate(self._curr_matrix_elements.get('matrix_elements')):
627
628=== modified file 'madgraph/interface/amcatnlo_run_interface.py'
629--- madgraph/interface/amcatnlo_run_interface.py 2015-10-16 14:52:37 +0000
630+++ madgraph/interface/amcatnlo_run_interface.py 2015-10-20 10:56:39 +0000
631@@ -1364,6 +1364,8 @@
632 return
633
634 elif mode in ['aMC@NLO','aMC@LO','noshower','noshowerLO']:
635+ if self.ninitial == 1:
636+ raise aMCatNLOError('Decay processes can only be run at fixed order.')
637 mode_dict = {'aMC@NLO': 'all', 'aMC@LO': 'born',\
638 'noshower': 'all', 'noshowerLO': 'born'}
639 shower = self.run_card['parton_shower'].upper()
640@@ -1448,8 +1450,12 @@
641 npoints = self.run_card['npoints_FO_grid']
642 niters = self.run_card['niters_FO_grid']
643 for p_dir in p_dirs:
644- with open(pjoin(self.me_dir,'SubProcesses',p_dir,'channels.txt')) as chan_file:
645- channels=chan_file.readline().split()
646+ try:
647+ with open(pjoin(self.me_dir,'SubProcesses',p_dir,'channels.txt')) as chan_file:
648+ channels=chan_file.readline().split()
649+ except IOError:
650+ logger.warning('No integration channels found for contribution %s' % p_dir)
651+ continue
652 for channel in channels:
653 job={}
654 job['p_dir']=p_dir
655@@ -2152,10 +2158,21 @@
656 if line.startswith('generate') or line.startswith('add process'):
657 process = process+(line.replace('generate ', '')).replace('add process ','')+' ; '
658 lpp = {0:'l', 1:'p', -1:'pbar'}
659- proc_info = '\n Process %s\n Run at %s-%s collider (%s + %s GeV)' % \
660- (process[:-3], lpp[self.run_card['lpp1']], lpp[self.run_card['lpp2']],
661- self.run_card['ebeam1'], self.run_card['ebeam2'])
662-
663+ if self.ninitial == 1:
664+ proc_info = '\n Process %s' % process[:-3]
665+ else:
666+ proc_info = '\n Process %s\n Run at %s-%s collider (%s + %s GeV)' % \
667+ (process[:-3], lpp[self.run_card['lpp1']], lpp[self.run_card['lpp2']],
668+ self.run_card['ebeam1'], self.run_card['ebeam2'])
669+
670+ if self.ninitial == 1:
671+ self.cross_sect_dict['unit']='GeV'
672+ self.cross_sect_dict['xsec_string']='(Partial) decay width'
673+ self.cross_sect_dict['axsec_string']='(Partial) abs(decay width)'
674+ else:
675+ self.cross_sect_dict['unit']='pb'
676+ self.cross_sect_dict['xsec_string']='Total cross-section'
677+ self.cross_sect_dict['axsec_string']='Total abs(cross-section)'
678 # Gather some basic statistics for the run and extracted from the log files.
679 if mode in ['aMC@NLO', 'aMC@LO', 'noshower', 'noshowerLO']:
680 log_GV_files = glob.glob(pjoin(self.me_dir, \
681@@ -2181,13 +2198,13 @@
682 if step != 2:
683 message = status[step] + '\n\n Intermediate results:' + \
684 ('\n Random seed: %(randinit)d' + \
685- '\n Total cross-section: %(xsect)8.3e +- %(errt)6.1e pb' + \
686- '\n Total abs(cross-section): %(xseca)8.3e +- %(erra)6.1e pb \n') \
687+ '\n %(xsec_string)s: %(xsect)8.3e +- %(errt)6.1e %(unit)s' + \
688+ '\n %(axsec_string)s: %(xseca)8.3e +- %(erra)6.1e %(unit)s \n') \
689 % self.cross_sect_dict
690 else:
691
692 message = '\n ' + status[step] + proc_info + \
693- '\n Total cross-section: %(xsect)8.3e +- %(errt)6.1e pb' % \
694+ '\n %(xsec_string)s: %(xsect)8.3e +- %(errt)6.1e %(unit)s' % \
695 self.cross_sect_dict
696
697 if self.run_card['nevents']>=10000 and self.run_card['reweight_scale']:
698@@ -2216,15 +2233,15 @@
699 'Final results and run summary:']
700 if (not done) and (step == 0):
701 message = '\n ' + status[0] + \
702- '\n Total cross-section: %(xsect)8.3e +- %(errt)6.1e pb' % \
703+ '\n %(xsec_string)s: %(xsect)8.3e +- %(errt)6.1e %(unit)s' % \
704 self.cross_sect_dict
705 elif not done:
706 message = '\n ' + status[1] + \
707- '\n Total cross-section: %(xsect)8.3e +- %(errt)6.1e pb' % \
708+ '\n %(xsec_string)s: %(xsect)8.3e +- %(errt)6.1e %(unit)s' % \
709 self.cross_sect_dict
710 elif done:
711 message = '\n ' + status[2] + proc_info + \
712- '\n Total cross-section: %(xsect)8.3e +- %(errt)6.1e pb' % \
713+ '\n %(xsec_string)s: %(xsect)8.3e +- %(errt)6.1e %(unit)s' % \
714 self.cross_sect_dict
715 if self.run_card['reweight_scale']:
716 if self.run_card['ickkw'] != -1:
717@@ -4280,11 +4297,17 @@
718 else:
719 switch.update(dict((k,value) for k,v in switch_default.items() if k not in switch))
720 default_switch = ['ON', 'OFF']
721+
722+
723 allowed_switch_value = {'order': ['LO', 'NLO'],
724 'fixed_order': default_switch,
725 'shower': default_switch,
726 'madspin': default_switch,
727 'reweight': default_switch}
728+
729+
730+
731+
732
733 description = {'order': 'Perturbative order of the calculation:',
734 'fixed_order': 'Fixed order (no event generation and no MC@[N]LO matching):',
735@@ -4300,22 +4323,35 @@
736 special_values = ['LO', 'NLO', 'aMC@NLO', 'aMC@LO', 'noshower', 'noshowerLO']
737
738 assign_switch = lambda key, value: switch.__setitem__(key, value if switch[key] != void else void )
739-
740+
741+ if self.proc_characteristics['ninitial'] == 1:
742+ switch['fixed_order'] = 'ON'
743+ switch['shower'] = 'Not available for decay'
744+ switch['madspin'] = 'Not available for decay'
745+ switch['reweight'] = 'Not available for decay'
746+ allowed_switch_value['fixed_order'] = ['ON']
747+ allowed_switch_value['shower'] = ['OFF']
748+ allowed_switch_value['madspin'] = ['OFF']
749+ allowed_switch_value['reweight'] = ['OFF']
750+ available_mode = ['0','1']
751+ special_values = ['LO', 'NLO']
752+ else:
753+ # Init the switch value according to the current status
754+ available_mode = ['0', '1', '2','3']
755
756 if mode == 'auto':
757 mode = None
758 if not mode and (options['parton'] or options['reweightonly']):
759 mode = 'noshower'
760
761- # Init the switch value according to the current status
762- available_mode = ['0', '1', '2']
763- available_mode.append('3')
764- if os.path.exists(pjoin(self.me_dir, 'Cards', 'shower_card.dat')):
765- switch['shower'] = 'ON'
766- else:
767- switch['shower'] = 'OFF'
768+
769+ if '3' in available_mode:
770+ if os.path.exists(pjoin(self.me_dir, 'Cards', 'shower_card.dat')):
771+ switch['shower'] = 'ON'
772+ else:
773+ switch['shower'] = 'OFF'
774
775- if not aMCatNLO or self.options['mg5_path']:
776+ if (not aMCatNLO or self.options['mg5_path']) and '3' in available_mode:
777 available_mode.append('4')
778 if os.path.exists(pjoin(self.me_dir,'Cards','madspin_card.dat')):
779 switch['madspin'] = 'ON'
780@@ -4330,8 +4366,7 @@
781 else:
782 switch['reweight'] = 'Not available (requires NumPy)'
783
784-
785- if 'do_reweight' in options and options['do_reweight']:
786+ if 'do_reweight' in options and options['do_reweight'] and '3' in available_mode:
787 if switch['reweight'] == "OFF":
788 switch['reweight'] = "ON"
789 elif switch['reweight'] != "ON":
790@@ -4341,12 +4376,12 @@
791 switch['madspin'] = 'ON'
792 elif switch['madspin'] != "ON":
793 logger.critical("Cannot run MadSpin module: %s" % switch['reweight'])
794-
795-
796+
797 answers = list(available_mode) + ['auto', 'done']
798 alias = {}
799 for id, key in enumerate(switch_order):
800- if switch[key] != void and switch[key] in allowed_switch_value[key]:
801+ if switch[key] != void and switch[key] in allowed_switch_value[key] and \
802+ len(allowed_switch_value[key]) >1:
803 answers += ['%s=%s' % (key, s) for s in allowed_switch_value[key]]
804 #allow lower case for on/off
805 alias.update(dict(('%s=%s' % (key, s.lower()), '%s=%s' % (key, s))
806@@ -4408,7 +4443,6 @@
807 return
808 return switch
809
810-
811 modify_switch(mode, self.last_mode, switch)
812 if switch['madspin'] == 'OFF' and os.path.exists(pjoin(self.me_dir,'Cards','madspin_card.dat')):
813 assign_switch('madspin', 'ON')
814
815=== modified file 'madgraph/interface/common_run_interface.py'
816--- madgraph/interface/common_run_interface.py 2015-10-15 10:10:38 +0000
817+++ madgraph/interface/common_run_interface.py 2015-10-20 10:56:39 +0000
818@@ -658,7 +658,7 @@
819
820 if amcatnlo and not keepwidth:
821 # force particle in final states to have zero width
822- pids = self.get_pid_final_states()
823+ pids = self.get_pid_final_initial_states()
824 # check those which are charged under qcd
825 if not MADEVENT and pjoin(self.me_dir,'bin','internal') not in sys.path:
826 sys.path.insert(0,pjoin(self.me_dir,'bin','internal'))
827@@ -1351,8 +1351,8 @@
828 self.update_status('delphes done', level='delphes', makehtml=False)
829
830 ############################################################################
831- def get_pid_final_states(self):
832- """Find the pid of all particles in the final states"""
833+ def get_pid_final_initial_states(self):
834+ """Find the pid of all particles in the final and initial states"""
835 pids = set()
836 subproc = [l.strip() for l in open(pjoin(self.me_dir,'SubProcesses',
837 'subproc.mg'))]
838@@ -1363,7 +1363,7 @@
839 group = pat.findall(text)
840 for particles in group:
841 particles = particles.split(',')
842- pids.update(set(particles[nb_init:]))
843+ pids.update(set(particles))
844
845 return pids
846
847
848=== modified file 'madgraph/iolibs/export_fks.py'
849--- madgraph/iolibs/export_fks.py 2015-10-01 16:00:08 +0000
850+++ madgraph/iolibs/export_fks.py 2015-10-20 10:56:39 +0000
851@@ -383,8 +383,11 @@
852 text=text+str(i+1)+' '+str(len(e))
853 for t in e:
854 text=text+' '
855- for p in t:
856- text=text+' '+str(p)
857+ try:
858+ for p in t:
859+ text=text+' '+str(p)
860+ except TypeError:
861+ text=text+' '+str(t)
862 text=text+'\n'
863
864 ff = open(file_pos, 'w')
865@@ -536,6 +539,8 @@
866 (nexternal, ninitial) = matrix_element.get_nexternal_ninitial()
867 self.write_nexternal_file(writers.FortranWriter(filename),
868 nexternal, ninitial)
869+ self.proc_characteristic['ninitial'] = ninitial
870+ self.proc_characteristic['nexternal'] = max(self.proc_characteristic['nexternal'], nexternal)
871
872 filename = 'pmass.inc'
873 try:
874@@ -701,7 +706,8 @@
875 pages,proc_card_mg5.dat and madevent.tar.gz."""
876
877 self.proc_characteristic['grouped_matrix'] = False
878-
879+ self.create_proc_charac()
880+
881 self.create_run_card(matrix_elements, history)
882 # modelname = self.model.get('name')
883 # if modelname == 'mssm' or modelname.startswith('mssm-'):
884@@ -1221,6 +1227,8 @@
885 def write_real_matrix_elements(self, matrix_element, fortran_model):
886 """writes the matrix_i.f files which contain the real matrix elements"""
887
888+
889+
890 for n, fksreal in enumerate(matrix_element.real_processes):
891 filename = 'matrix_%d.f' % (n + 1)
892 self.write_matrix_element_fks(writers.FortranWriter(filename),
893
894=== modified file 'madgraph/iolibs/template_files/parton_lum_n_fks.inc'
895--- madgraph/iolibs/template_files/parton_lum_n_fks.inc 2013-05-31 14:58:30 +0000
896+++ madgraph/iolibs/template_files/parton_lum_n_fks.inc 2015-10-20 10:56:39 +0000
897@@ -54,7 +54,11 @@
898 %(pdf_lines)s
899 endif
900 do i=1,IPROC
901- lum = lum + pd(i) * conv
902+ if (nincoming.eq.2) then
903+ lum = lum + pd(i) * conv
904+ else
905+ lum = lum + pd(i)
906+ endif
907 enddo
908 return
909 END
910
911=== modified file 'madgraph/madevent/sum_html.py'
912--- madgraph/madevent/sum_html.py 2015-10-01 16:00:08 +0000
913+++ madgraph/madevent/sum_html.py 2015-10-20 10:56:39 +0000
914@@ -664,24 +664,27 @@
915 P_path = pjoin(cmd.me_dir, 'SubProcesses', Pdir)
916 G_dir = [G for G in os.listdir(P_path) if G.startswith('G') and
917 os.path.isdir(pjoin(P_path,G))]
918-
919- for line in open(pjoin(P_path, 'symfact.dat')):
920- name, mfactor = line.split()
921- if float(mfactor) < 0:
922- continue
923- if os.path.exists(pjoin(P_path, 'ajob.no_ps.log')):
924- continue
925-
926- if not folder_names:
927- name = 'G' + name
928- P_comb.add_results(name, pjoin(P_path,name,'results.dat'), mfactor)
929- else:
930- for folder in folder_names:
931- if 'G' in folder:
932- dir = folder.replace('*', name)
933- else:
934- dir = folder.replace('*', '_G' + name)
935- P_comb.add_results(dir, pjoin(P_path,dir,'results.dat'), mfactor)
936+
937+ try:
938+ for line in open(pjoin(P_path, 'symfact.dat')):
939+ name, mfactor = line.split()
940+ if float(mfactor) < 0:
941+ continue
942+ if os.path.exists(pjoin(P_path, 'ajob.no_ps.log')):
943+ continue
944+
945+ if not folder_names:
946+ name = 'G' + name
947+ P_comb.add_results(name, pjoin(P_path,name,'results.dat'), mfactor)
948+ else:
949+ for folder in folder_names:
950+ if 'G' in folder:
951+ dir = folder.replace('*', name)
952+ else:
953+ dir = folder.replace('*', '_G' + name)
954+ P_comb.add_results(dir, pjoin(P_path,dir,'results.dat'), mfactor)
955+ except IOError:
956+ continue
957 P_comb.compute_values()
958 all.append(P_comb)
959 all.compute_values()
960
961=== modified file 'madgraph/various/banner.py'
962--- madgraph/various/banner.py 2015-10-12 12:35:23 +0000
963+++ madgraph/various/banner.py 2015-10-20 10:56:39 +0000
964@@ -1119,7 +1119,7 @@
965
966 def write(self, outputpath):
967 """write the file"""
968-
969+
970 template ="# Information about the process #\n"
971 template +="#########################################\n"
972
973@@ -1430,6 +1430,7 @@
974 fsock.writelines(line)
975 fsock.close()
976
977+
978 def get_banner_init_information(self):
979 """return a dictionary with the information needed to write
980 the first line of the <init> block of the lhe file."""
981@@ -1468,7 +1469,22 @@
982 output["pdfsup1"] = get_pdf_id(self["pdlabel"])
983 output["pdfsup2"] = get_pdf_id(self["pdlabel"])
984 return output
985-
986+
987+ def remove_all_cut(self):
988+ """remove all the cut"""
989+
990+ for name in self.cuts_parameter:
991+ targettype = type(self[name])
992+ if targettype == bool:
993+ self[name] = False
994+ elif 'min' in name:
995+ self[name] = 0
996+ elif 'max' in name:
997+ self[name] = -1
998+ elif 'eta' in name:
999+ self[name] = -1
1000+ else:
1001+ self[name] = 0
1002
1003 class RunCardLO(RunCard):
1004 """an object to handle in a nice way the run_card infomration"""
1005@@ -1798,22 +1814,6 @@
1006 self['drjl'] = 0
1007 self['sys_alpsfact'] = "0.5 1 2"
1008
1009-
1010- def remove_all_cut(self):
1011- """remove all the cut"""
1012-
1013- for name in self.cuts_parameter:
1014- targettype = type(self[name])
1015- if targettype == bool:
1016- self[name] = False
1017- elif 'min' in name:
1018- self[name] = 0
1019- elif 'max' in name:
1020- self[name] = -1
1021- elif 'eta' in name:
1022- self[name] = -1
1023- else:
1024- self[name] = 0
1025
1026 def write(self, output_file, template=None, python_template=False):
1027 """Write the run_card in output_file according to template
1028@@ -1984,7 +1984,7 @@
1029 """Rules
1030 e+ e- beam -> lpp:0 ebeam:500
1031 p p beam -> set maxjetflavor automatically
1032- """
1033+ """
1034
1035 # check for beam_id
1036 beam_id = set()
1037@@ -2004,6 +2004,10 @@
1038 else:
1039 self['lpp1'] = 0
1040 self['lpp2'] = 0
1041+
1042+ if proc_characteristic['ninitial'] == 1:
1043+ #remove all cut
1044+ self.remove_all_cut()
1045
1046 class MadLoopParam(ConfigFile):
1047 """ a class for storing/dealing with the file MadLoopParam.dat
1048
1049=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%parton_lum_0.f'
1050--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%parton_lum_0.f 2015-03-10 08:54:03 +0000
1051+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_gg_ttx%parton_lum_0.f 2015-10-20 10:56:39 +0000
1052@@ -92,7 +92,11 @@
1053 PD(IPROC) = G1*G2
1054 ENDIF
1055 DO I=1,IPROC
1056- LUM = LUM + PD(I) * CONV
1057+ IF (NINCOMING.EQ.2) THEN
1058+ LUM = LUM + PD(I) * CONV
1059+ ELSE
1060+ LUM = LUM + PD(I)
1061+ ENDIF
1062 ENDDO
1063 RETURN
1064 END
1065
1066=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%parton_lum_0.f'
1067--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%parton_lum_0.f 2015-03-10 08:54:03 +0000
1068+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uux_ttx%parton_lum_0.f 2015-10-20 10:56:39 +0000
1069@@ -119,7 +119,11 @@
1070 PD(IPROC) = S1*SX2
1071 ENDIF
1072 DO I=1,IPROC
1073- LUM = LUM + PD(I) * CONV
1074+ IF (NINCOMING.EQ.2) THEN
1075+ LUM = LUM + PD(I) * CONV
1076+ ELSE
1077+ LUM = LUM + PD(I)
1078+ ENDIF
1079 ENDDO
1080 RETURN
1081 END
1082
1083=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%parton_lum_0.f'
1084--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%parton_lum_0.f 2015-03-10 08:54:03 +0000
1085+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fks_loonly/%SubProcesses%P0_uxu_ttx%parton_lum_0.f 2015-10-20 10:56:39 +0000
1086@@ -119,7 +119,11 @@
1087 PD(IPROC) = SX1*S2
1088 ENDIF
1089 DO I=1,IPROC
1090- LUM = LUM + PD(I) * CONV
1091+ IF (NINCOMING.EQ.2) THEN
1092+ LUM = LUM + PD(I) * CONV
1093+ ELSE
1094+ LUM = LUM + PD(I)
1095+ ENDIF
1096 ENDDO
1097 RETURN
1098 END
1099
1100=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_1.f'
1101--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_1.f 2014-10-20 01:07:00 +0000
1102+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_1.f 2015-10-20 10:56:39 +0000
1103@@ -92,7 +92,11 @@
1104 PD(IPROC) = G1*G2
1105 ENDIF
1106 DO I=1,IPROC
1107- LUM = LUM + PD(I) * CONV
1108+ IF (NINCOMING.EQ.2) THEN
1109+ LUM = LUM + PD(I) * CONV
1110+ ELSE
1111+ LUM = LUM + PD(I)
1112+ ENDIF
1113 ENDDO
1114 RETURN
1115 END
1116
1117=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_2.f'
1118--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_2.f 2014-10-20 01:07:00 +0000
1119+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_2.f 2015-10-20 10:56:39 +0000
1120@@ -113,7 +113,11 @@
1121 PD(IPROC) = CX1*G2
1122 ENDIF
1123 DO I=1,IPROC
1124- LUM = LUM + PD(I) * CONV
1125+ IF (NINCOMING.EQ.2) THEN
1126+ LUM = LUM + PD(I) * CONV
1127+ ELSE
1128+ LUM = LUM + PD(I)
1129+ ENDIF
1130 ENDDO
1131 RETURN
1132 END
1133
1134=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_3.f'
1135--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_3.f 2014-10-20 01:07:00 +0000
1136+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_3.f 2015-10-20 10:56:39 +0000
1137@@ -113,7 +113,11 @@
1138 PD(IPROC) = C1*G2
1139 ENDIF
1140 DO I=1,IPROC
1141- LUM = LUM + PD(I) * CONV
1142+ IF (NINCOMING.EQ.2) THEN
1143+ LUM = LUM + PD(I) * CONV
1144+ ELSE
1145+ LUM = LUM + PD(I)
1146+ ENDIF
1147 ENDDO
1148 RETURN
1149 END
1150
1151=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_4.f'
1152--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_4.f 2014-10-20 01:07:00 +0000
1153+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_4.f 2015-10-20 10:56:39 +0000
1154@@ -113,7 +113,11 @@
1155 PD(IPROC) = G1*CX2
1156 ENDIF
1157 DO I=1,IPROC
1158- LUM = LUM + PD(I) * CONV
1159+ IF (NINCOMING.EQ.2) THEN
1160+ LUM = LUM + PD(I) * CONV
1161+ ELSE
1162+ LUM = LUM + PD(I)
1163+ ENDIF
1164 ENDDO
1165 RETURN
1166 END
1167
1168=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_5.f'
1169--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_5.f 2014-10-20 01:07:00 +0000
1170+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_gg_ttx%parton_lum_5.f 2015-10-20 10:56:39 +0000
1171@@ -113,7 +113,11 @@
1172 PD(IPROC) = G1*C2
1173 ENDIF
1174 DO I=1,IPROC
1175- LUM = LUM + PD(I) * CONV
1176+ IF (NINCOMING.EQ.2) THEN
1177+ LUM = LUM + PD(I) * CONV
1178+ ELSE
1179+ LUM = LUM + PD(I)
1180+ ENDIF
1181 ENDDO
1182 RETURN
1183 END
1184
1185=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_1.f'
1186--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_1.f 2014-10-20 01:07:00 +0000
1187+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_1.f 2015-10-20 10:56:39 +0000
1188@@ -119,7 +119,11 @@
1189 PD(IPROC) = S1*SX2
1190 ENDIF
1191 DO I=1,IPROC
1192- LUM = LUM + PD(I) * CONV
1193+ IF (NINCOMING.EQ.2) THEN
1194+ LUM = LUM + PD(I) * CONV
1195+ ELSE
1196+ LUM = LUM + PD(I)
1197+ ENDIF
1198 ENDDO
1199 RETURN
1200 END
1201
1202=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_2.f'
1203--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_2.f 2014-10-20 01:07:00 +0000
1204+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_2.f 2015-10-20 10:56:39 +0000
1205@@ -113,7 +113,11 @@
1206 PD(IPROC) = G1*SX2
1207 ENDIF
1208 DO I=1,IPROC
1209- LUM = LUM + PD(I) * CONV
1210+ IF (NINCOMING.EQ.2) THEN
1211+ LUM = LUM + PD(I) * CONV
1212+ ELSE
1213+ LUM = LUM + PD(I)
1214+ ENDIF
1215 ENDDO
1216 RETURN
1217 END
1218
1219=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_3.f'
1220--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_3.f 2014-10-20 01:07:00 +0000
1221+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uux_ttx%parton_lum_3.f 2015-10-20 10:56:39 +0000
1222@@ -113,7 +113,11 @@
1223 PD(IPROC) = S1*G2
1224 ENDIF
1225 DO I=1,IPROC
1226- LUM = LUM + PD(I) * CONV
1227+ IF (NINCOMING.EQ.2) THEN
1228+ LUM = LUM + PD(I) * CONV
1229+ ELSE
1230+ LUM = LUM + PD(I)
1231+ ENDIF
1232 ENDDO
1233 RETURN
1234 END
1235
1236=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_1.f'
1237--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_1.f 2014-10-20 01:07:00 +0000
1238+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_1.f 2015-10-20 10:56:39 +0000
1239@@ -119,7 +119,11 @@
1240 PD(IPROC) = SX1*S2
1241 ENDIF
1242 DO I=1,IPROC
1243- LUM = LUM + PD(I) * CONV
1244+ IF (NINCOMING.EQ.2) THEN
1245+ LUM = LUM + PD(I) * CONV
1246+ ELSE
1247+ LUM = LUM + PD(I)
1248+ ENDIF
1249 ENDDO
1250 RETURN
1251 END
1252
1253=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_2.f'
1254--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_2.f 2014-10-20 01:07:00 +0000
1255+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_2.f 2015-10-20 10:56:39 +0000
1256@@ -113,7 +113,11 @@
1257 PD(IPROC) = G1*S2
1258 ENDIF
1259 DO I=1,IPROC
1260- LUM = LUM + PD(I) * CONV
1261+ IF (NINCOMING.EQ.2) THEN
1262+ LUM = LUM + PD(I) * CONV
1263+ ELSE
1264+ LUM = LUM + PD(I)
1265+ ENDIF
1266 ENDDO
1267 RETURN
1268 END
1269
1270=== modified file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_3.f'
1271--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_3.f 2014-10-20 01:07:00 +0000
1272+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_pptt_fksreal/%SubProcesses%P0_uxu_ttx%parton_lum_3.f 2015-10-20 10:56:39 +0000
1273@@ -113,7 +113,11 @@
1274 PD(IPROC) = SX1*G2
1275 ENDIF
1276 DO I=1,IPROC
1277- LUM = LUM + PD(I) * CONV
1278+ IF (NINCOMING.EQ.2) THEN
1279+ LUM = LUM + PD(I) * CONV
1280+ ELSE
1281+ LUM = LUM + PD(I)
1282+ ENDIF
1283 ENDDO
1284 RETURN
1285 END
1286
1287=== added directory 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal'
1288=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_001.f'
1289--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_001.f 1970-01-01 00:00:00 +0000
1290+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_001.f 2015-10-20 10:56:39 +0000
1291@@ -0,0 +1,153 @@
1292+ SUBROUTINE SB_SF_001(P1,ANS)
1293+C
1294+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1295+C By the MadGraph5_aMC@NLO Development Team
1296+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1297+C
1298+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1299+C AND HELICITIES
1300+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
1301+C
1302+C Process: t > b u d~ [ real = QCD ]
1303+C Process: t > b c s~ [ real = QCD ]
1304+C spectators: 1 1
1305+
1306+C
1307+ IMPLICIT NONE
1308+C
1309+C CONSTANTS
1310+C
1311+ INCLUDE 'nexternal.inc'
1312+ INTEGER NCOMB
1313+ PARAMETER ( NCOMB= 16 )
1314+ INTEGER THEL
1315+ PARAMETER (THEL=NCOMB*3)
1316+ INTEGER NGRAPHS
1317+ PARAMETER (NGRAPHS= 1)
1318+C
1319+C ARGUMENTS
1320+C
1321+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
1322+C
1323+C LOCAL VARIABLES
1324+C
1325+ INTEGER IHEL,IDEN,J
1326+ REAL*8 B_SF_001
1327+ INTEGER IDEN_VALUES(3)
1328+ DATA IDEN_VALUES /6, 6, 6/
1329+C
1330+C GLOBAL VARIABLES
1331+C
1332+ LOGICAL GOODHEL(NCOMB,3)
1333+ COMMON /C_GOODHEL/ GOODHEL
1334+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
1335+ COMMON/TO_SAVEMOM/SAVEMOM
1336+ LOGICAL CALCULATEDBORN
1337+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1338+ INTEGER NFKSPROCESS
1339+ COMMON/C_NFKSPROCESS/NFKSPROCESS
1340+C ----------
1341+C BEGIN CODE
1342+C ----------
1343+ IDEN=IDEN_VALUES(NFKSPROCESS)
1344+ IF (CALCULATEDBORN) THEN
1345+ DO J=1,NEXTERNAL-1
1346+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
1347+ $ ,J)) THEN
1348+ CALCULATEDBORN=.FALSE.
1349+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
1350+ $ //'e born'
1351+ STOP
1352+ ENDIF
1353+ ENDDO
1354+ ELSE
1355+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
1356+ $ //'e called only with calculatedborn = true'
1357+ STOP
1358+ ENDIF
1359+ ANS = 0D0
1360+ DO IHEL=1,NCOMB
1361+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
1362+ ANS=ANS+B_SF_001(P1,IHEL)
1363+ ENDIF
1364+ ENDDO
1365+ ANS=ANS/DBLE(IDEN)
1366+ END
1367+
1368+
1369+ REAL*8 FUNCTION B_SF_001(P,HELL)
1370+C
1371+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1372+C By the MadGraph5_aMC@NLO Development Team
1373+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1374+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1375+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
1376+
1377+C Process: t > b u d~ [ real = QCD ]
1378+C Process: t > b c s~ [ real = QCD ]
1379+C spectators: 1 1
1380+
1381+C
1382+ IMPLICIT NONE
1383+C
1384+C CONSTANTS
1385+C
1386+ INTEGER NGRAPHS
1387+ PARAMETER ( NGRAPHS = 1 )
1388+ INTEGER NCOLOR1, NCOLOR2
1389+ PARAMETER (NCOLOR1=1, NCOLOR2=1)
1390+ REAL*8 ZERO
1391+ PARAMETER (ZERO=0D0)
1392+ COMPLEX*16 IMAG1
1393+ PARAMETER (IMAG1 = (0D0,1D0))
1394+ INCLUDE 'nexternal.inc'
1395+ INCLUDE 'born_nhel.inc'
1396+C
1397+C ARGUMENTS
1398+C
1399+ REAL*8 P(0:3,NEXTERNAL-1)
1400+ INTEGER HELL
1401+C
1402+C LOCAL VARIABLES
1403+C
1404+ INTEGER I,J
1405+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
1406+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
1407+C
1408+C GLOBAL VARIABLES
1409+C
1410+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
1411+ COMMON/TO_SAVEAMP/SAVEAMP
1412+ LOGICAL CALCULATEDBORN
1413+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1414+C
1415+C COLOR DATA
1416+C
1417+ DATA DENOM(1)/1/
1418+ DATA (CF(I, 1),I= 1, 1) / 9/
1419+C ----------
1420+C BEGIN CODE
1421+C ----------
1422+ IF (.NOT. CALCULATEDBORN) THEN
1423+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
1424+ $ //'d only with calculatedborn = true'
1425+ STOP
1426+ ELSEIF (CALCULATEDBORN) THEN
1427+ DO I=1,NGRAPHS
1428+ AMP(I)=SAVEAMP(I,HELL)
1429+ ENDDO
1430+ ENDIF
1431+ JAMP1(1)=-AMP(1)
1432+ JAMP2(1)=+1D0/4D0*(-3D0*AMP(1)+1D0/3D0*AMP(1))
1433+ B_SF_001 = 0.D0
1434+ DO I = 1, NCOLOR1
1435+ ZTEMP = (0.D0,0.D0)
1436+ DO J = 1, NCOLOR2
1437+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
1438+ ENDDO
1439+ B_SF_001 =B_SF_001+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
1440+ ENDDO
1441+ END
1442+
1443+
1444+
1445
1446=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_002.f'
1447--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_002.f 1970-01-01 00:00:00 +0000
1448+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_002.f 2015-10-20 10:56:39 +0000
1449@@ -0,0 +1,153 @@
1450+ SUBROUTINE SB_SF_002(P1,ANS)
1451+C
1452+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1453+C By the MadGraph5_aMC@NLO Development Team
1454+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1455+C
1456+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1457+C AND HELICITIES
1458+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
1459+C
1460+C Process: t > b u d~ [ real = QCD ]
1461+C Process: t > b c s~ [ real = QCD ]
1462+C spectators: 1 2
1463+
1464+C
1465+ IMPLICIT NONE
1466+C
1467+C CONSTANTS
1468+C
1469+ INCLUDE 'nexternal.inc'
1470+ INTEGER NCOMB
1471+ PARAMETER ( NCOMB= 16 )
1472+ INTEGER THEL
1473+ PARAMETER (THEL=NCOMB*3)
1474+ INTEGER NGRAPHS
1475+ PARAMETER (NGRAPHS= 1)
1476+C
1477+C ARGUMENTS
1478+C
1479+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
1480+C
1481+C LOCAL VARIABLES
1482+C
1483+ INTEGER IHEL,IDEN,J
1484+ REAL*8 B_SF_002
1485+ INTEGER IDEN_VALUES(3)
1486+ DATA IDEN_VALUES /6, 6, 6/
1487+C
1488+C GLOBAL VARIABLES
1489+C
1490+ LOGICAL GOODHEL(NCOMB,3)
1491+ COMMON /C_GOODHEL/ GOODHEL
1492+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
1493+ COMMON/TO_SAVEMOM/SAVEMOM
1494+ LOGICAL CALCULATEDBORN
1495+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1496+ INTEGER NFKSPROCESS
1497+ COMMON/C_NFKSPROCESS/NFKSPROCESS
1498+C ----------
1499+C BEGIN CODE
1500+C ----------
1501+ IDEN=IDEN_VALUES(NFKSPROCESS)
1502+ IF (CALCULATEDBORN) THEN
1503+ DO J=1,NEXTERNAL-1
1504+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
1505+ $ ,J)) THEN
1506+ CALCULATEDBORN=.FALSE.
1507+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
1508+ $ //'e born'
1509+ STOP
1510+ ENDIF
1511+ ENDDO
1512+ ELSE
1513+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
1514+ $ //'e called only with calculatedborn = true'
1515+ STOP
1516+ ENDIF
1517+ ANS = 0D0
1518+ DO IHEL=1,NCOMB
1519+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
1520+ ANS=ANS+B_SF_002(P1,IHEL)
1521+ ENDIF
1522+ ENDDO
1523+ ANS=ANS/DBLE(IDEN)
1524+ END
1525+
1526+
1527+ REAL*8 FUNCTION B_SF_002(P,HELL)
1528+C
1529+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1530+C By the MadGraph5_aMC@NLO Development Team
1531+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1532+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1533+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
1534+
1535+C Process: t > b u d~ [ real = QCD ]
1536+C Process: t > b c s~ [ real = QCD ]
1537+C spectators: 1 2
1538+
1539+C
1540+ IMPLICIT NONE
1541+C
1542+C CONSTANTS
1543+C
1544+ INTEGER NGRAPHS
1545+ PARAMETER ( NGRAPHS = 1 )
1546+ INTEGER NCOLOR1, NCOLOR2
1547+ PARAMETER (NCOLOR1=1, NCOLOR2=1)
1548+ REAL*8 ZERO
1549+ PARAMETER (ZERO=0D0)
1550+ COMPLEX*16 IMAG1
1551+ PARAMETER (IMAG1 = (0D0,1D0))
1552+ INCLUDE 'nexternal.inc'
1553+ INCLUDE 'born_nhel.inc'
1554+C
1555+C ARGUMENTS
1556+C
1557+ REAL*8 P(0:3,NEXTERNAL-1)
1558+ INTEGER HELL
1559+C
1560+C LOCAL VARIABLES
1561+C
1562+ INTEGER I,J
1563+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
1564+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
1565+C
1566+C GLOBAL VARIABLES
1567+C
1568+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
1569+ COMMON/TO_SAVEAMP/SAVEAMP
1570+ LOGICAL CALCULATEDBORN
1571+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1572+C
1573+C COLOR DATA
1574+C
1575+ DATA DENOM(1)/1/
1576+ DATA (CF(I, 1),I= 1, 1) / 9/
1577+C ----------
1578+C BEGIN CODE
1579+C ----------
1580+ IF (.NOT. CALCULATEDBORN) THEN
1581+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
1582+ $ //'d only with calculatedborn = true'
1583+ STOP
1584+ ELSEIF (CALCULATEDBORN) THEN
1585+ DO I=1,NGRAPHS
1586+ AMP(I)=SAVEAMP(I,HELL)
1587+ ENDDO
1588+ ENDIF
1589+ JAMP1(1)=-AMP(1)
1590+ JAMP2(1)=+1D0/2D0*(+3D0*AMP(1)-1D0/3D0*AMP(1))
1591+ B_SF_002 = 0.D0
1592+ DO I = 1, NCOLOR1
1593+ ZTEMP = (0.D0,0.D0)
1594+ DO J = 1, NCOLOR2
1595+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
1596+ ENDDO
1597+ B_SF_002 =B_SF_002+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
1598+ ENDDO
1599+ END
1600+
1601+
1602+
1603
1604=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_003.f'
1605--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_003.f 1970-01-01 00:00:00 +0000
1606+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_003.f 2015-10-20 10:56:39 +0000
1607@@ -0,0 +1,154 @@
1608+ SUBROUTINE SB_SF_003(P1,ANS)
1609+C
1610+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1611+C By the MadGraph5_aMC@NLO Development Team
1612+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1613+C
1614+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1615+C AND HELICITIES
1616+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
1617+C
1618+C Process: t > b u d~ [ real = QCD ]
1619+C Process: t > b c s~ [ real = QCD ]
1620+C spectators: 1 3
1621+
1622+C
1623+ IMPLICIT NONE
1624+C
1625+C CONSTANTS
1626+C
1627+ INCLUDE 'nexternal.inc'
1628+ INTEGER NCOMB
1629+ PARAMETER ( NCOMB= 16 )
1630+ INTEGER THEL
1631+ PARAMETER (THEL=NCOMB*3)
1632+ INTEGER NGRAPHS
1633+ PARAMETER (NGRAPHS= 1)
1634+C
1635+C ARGUMENTS
1636+C
1637+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
1638+C
1639+C LOCAL VARIABLES
1640+C
1641+ INTEGER IHEL,IDEN,J
1642+ REAL*8 B_SF_003
1643+ INTEGER IDEN_VALUES(3)
1644+ DATA IDEN_VALUES /6, 6, 6/
1645+C
1646+C GLOBAL VARIABLES
1647+C
1648+ LOGICAL GOODHEL(NCOMB,3)
1649+ COMMON /C_GOODHEL/ GOODHEL
1650+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
1651+ COMMON/TO_SAVEMOM/SAVEMOM
1652+ LOGICAL CALCULATEDBORN
1653+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1654+ INTEGER NFKSPROCESS
1655+ COMMON/C_NFKSPROCESS/NFKSPROCESS
1656+C ----------
1657+C BEGIN CODE
1658+C ----------
1659+ IDEN=IDEN_VALUES(NFKSPROCESS)
1660+ IF (CALCULATEDBORN) THEN
1661+ DO J=1,NEXTERNAL-1
1662+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
1663+ $ ,J)) THEN
1664+ CALCULATEDBORN=.FALSE.
1665+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
1666+ $ //'e born'
1667+ STOP
1668+ ENDIF
1669+ ENDDO
1670+ ELSE
1671+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
1672+ $ //'e called only with calculatedborn = true'
1673+ STOP
1674+ ENDIF
1675+ ANS = 0D0
1676+ DO IHEL=1,NCOMB
1677+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
1678+ ANS=ANS+B_SF_003(P1,IHEL)
1679+ ENDIF
1680+ ENDDO
1681+ ANS=ANS/DBLE(IDEN)
1682+ END
1683+
1684+
1685+ REAL*8 FUNCTION B_SF_003(P,HELL)
1686+C
1687+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1688+C By the MadGraph5_aMC@NLO Development Team
1689+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1690+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1691+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
1692+
1693+C Process: t > b u d~ [ real = QCD ]
1694+C Process: t > b c s~ [ real = QCD ]
1695+C spectators: 1 3
1696+
1697+C
1698+ IMPLICIT NONE
1699+C
1700+C CONSTANTS
1701+C
1702+ INTEGER NGRAPHS
1703+ PARAMETER ( NGRAPHS = 1 )
1704+ INTEGER NCOLOR1, NCOLOR2
1705+ PARAMETER (NCOLOR1=1, NCOLOR2=2)
1706+ REAL*8 ZERO
1707+ PARAMETER (ZERO=0D0)
1708+ COMPLEX*16 IMAG1
1709+ PARAMETER (IMAG1 = (0D0,1D0))
1710+ INCLUDE 'nexternal.inc'
1711+ INCLUDE 'born_nhel.inc'
1712+C
1713+C ARGUMENTS
1714+C
1715+ REAL*8 P(0:3,NEXTERNAL-1)
1716+ INTEGER HELL
1717+C
1718+C LOCAL VARIABLES
1719+C
1720+ INTEGER I,J
1721+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
1722+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
1723+C
1724+C GLOBAL VARIABLES
1725+C
1726+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
1727+ COMMON/TO_SAVEAMP/SAVEAMP
1728+ LOGICAL CALCULATEDBORN
1729+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1730+C
1731+C COLOR DATA
1732+C
1733+ DATA DENOM(1)/1/
1734+ DATA (CF(I, 1),I= 1, 2) / 9, 3/
1735+C ----------
1736+C BEGIN CODE
1737+C ----------
1738+ IF (.NOT. CALCULATEDBORN) THEN
1739+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
1740+ $ //'d only with calculatedborn = true'
1741+ STOP
1742+ ELSEIF (CALCULATEDBORN) THEN
1743+ DO I=1,NGRAPHS
1744+ AMP(I)=SAVEAMP(I,HELL)
1745+ ENDDO
1746+ ENDIF
1747+ JAMP1(1)=-AMP(1)
1748+ JAMP2(1)=+1D0/2D0*(-1D0/3D0*AMP(1))
1749+ JAMP2(2)=+1D0/2D0*(+AMP(1))
1750+ B_SF_003 = 0.D0
1751+ DO I = 1, NCOLOR1
1752+ ZTEMP = (0.D0,0.D0)
1753+ DO J = 1, NCOLOR2
1754+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
1755+ ENDDO
1756+ B_SF_003 =B_SF_003+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
1757+ ENDDO
1758+ END
1759+
1760+
1761+
1762
1763=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_004.f'
1764--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_004.f 1970-01-01 00:00:00 +0000
1765+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_004.f 2015-10-20 10:56:39 +0000
1766@@ -0,0 +1,154 @@
1767+ SUBROUTINE SB_SF_004(P1,ANS)
1768+C
1769+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1770+C By the MadGraph5_aMC@NLO Development Team
1771+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1772+C
1773+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1774+C AND HELICITIES
1775+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
1776+C
1777+C Process: t > b u d~ [ real = QCD ]
1778+C Process: t > b c s~ [ real = QCD ]
1779+C spectators: 1 4
1780+
1781+C
1782+ IMPLICIT NONE
1783+C
1784+C CONSTANTS
1785+C
1786+ INCLUDE 'nexternal.inc'
1787+ INTEGER NCOMB
1788+ PARAMETER ( NCOMB= 16 )
1789+ INTEGER THEL
1790+ PARAMETER (THEL=NCOMB*3)
1791+ INTEGER NGRAPHS
1792+ PARAMETER (NGRAPHS= 1)
1793+C
1794+C ARGUMENTS
1795+C
1796+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
1797+C
1798+C LOCAL VARIABLES
1799+C
1800+ INTEGER IHEL,IDEN,J
1801+ REAL*8 B_SF_004
1802+ INTEGER IDEN_VALUES(3)
1803+ DATA IDEN_VALUES /6, 6, 6/
1804+C
1805+C GLOBAL VARIABLES
1806+C
1807+ LOGICAL GOODHEL(NCOMB,3)
1808+ COMMON /C_GOODHEL/ GOODHEL
1809+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
1810+ COMMON/TO_SAVEMOM/SAVEMOM
1811+ LOGICAL CALCULATEDBORN
1812+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1813+ INTEGER NFKSPROCESS
1814+ COMMON/C_NFKSPROCESS/NFKSPROCESS
1815+C ----------
1816+C BEGIN CODE
1817+C ----------
1818+ IDEN=IDEN_VALUES(NFKSPROCESS)
1819+ IF (CALCULATEDBORN) THEN
1820+ DO J=1,NEXTERNAL-1
1821+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
1822+ $ ,J)) THEN
1823+ CALCULATEDBORN=.FALSE.
1824+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
1825+ $ //'e born'
1826+ STOP
1827+ ENDIF
1828+ ENDDO
1829+ ELSE
1830+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
1831+ $ //'e called only with calculatedborn = true'
1832+ STOP
1833+ ENDIF
1834+ ANS = 0D0
1835+ DO IHEL=1,NCOMB
1836+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
1837+ ANS=ANS+B_SF_004(P1,IHEL)
1838+ ENDIF
1839+ ENDDO
1840+ ANS=ANS/DBLE(IDEN)
1841+ END
1842+
1843+
1844+ REAL*8 FUNCTION B_SF_004(P,HELL)
1845+C
1846+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1847+C By the MadGraph5_aMC@NLO Development Team
1848+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1849+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1850+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
1851+
1852+C Process: t > b u d~ [ real = QCD ]
1853+C Process: t > b c s~ [ real = QCD ]
1854+C spectators: 1 4
1855+
1856+C
1857+ IMPLICIT NONE
1858+C
1859+C CONSTANTS
1860+C
1861+ INTEGER NGRAPHS
1862+ PARAMETER ( NGRAPHS = 1 )
1863+ INTEGER NCOLOR1, NCOLOR2
1864+ PARAMETER (NCOLOR1=1, NCOLOR2=2)
1865+ REAL*8 ZERO
1866+ PARAMETER (ZERO=0D0)
1867+ COMPLEX*16 IMAG1
1868+ PARAMETER (IMAG1 = (0D0,1D0))
1869+ INCLUDE 'nexternal.inc'
1870+ INCLUDE 'born_nhel.inc'
1871+C
1872+C ARGUMENTS
1873+C
1874+ REAL*8 P(0:3,NEXTERNAL-1)
1875+ INTEGER HELL
1876+C
1877+C LOCAL VARIABLES
1878+C
1879+ INTEGER I,J
1880+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
1881+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
1882+C
1883+C GLOBAL VARIABLES
1884+C
1885+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
1886+ COMMON/TO_SAVEAMP/SAVEAMP
1887+ LOGICAL CALCULATEDBORN
1888+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1889+C
1890+C COLOR DATA
1891+C
1892+ DATA DENOM(1)/1/
1893+ DATA (CF(I, 1),I= 1, 2) / 9, 3/
1894+C ----------
1895+C BEGIN CODE
1896+C ----------
1897+ IF (.NOT. CALCULATEDBORN) THEN
1898+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
1899+ $ //'d only with calculatedborn = true'
1900+ STOP
1901+ ELSEIF (CALCULATEDBORN) THEN
1902+ DO I=1,NGRAPHS
1903+ AMP(I)=SAVEAMP(I,HELL)
1904+ ENDDO
1905+ ENDIF
1906+ JAMP1(1)=-AMP(1)
1907+ JAMP2(1)=+1D0/2D0*(+1D0/3D0*AMP(1))
1908+ JAMP2(2)=+1D0/2D0*(-AMP(1))
1909+ B_SF_004 = 0.D0
1910+ DO I = 1, NCOLOR1
1911+ ZTEMP = (0.D0,0.D0)
1912+ DO J = 1, NCOLOR2
1913+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
1914+ ENDDO
1915+ B_SF_004 =B_SF_004+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
1916+ ENDDO
1917+ END
1918+
1919+
1920+
1921
1922=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_005.f'
1923--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_005.f 1970-01-01 00:00:00 +0000
1924+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_005.f 2015-10-20 10:56:39 +0000
1925@@ -0,0 +1,153 @@
1926+ SUBROUTINE SB_SF_005(P1,ANS)
1927+C
1928+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
1929+C By the MadGraph5_aMC@NLO Development Team
1930+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
1931+C
1932+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
1933+C AND HELICITIES
1934+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
1935+C
1936+C Process: t > b u d~ [ real = QCD ]
1937+C Process: t > b c s~ [ real = QCD ]
1938+C spectators: 2 2
1939+
1940+C
1941+ IMPLICIT NONE
1942+C
1943+C CONSTANTS
1944+C
1945+ INCLUDE 'nexternal.inc'
1946+ INTEGER NCOMB
1947+ PARAMETER ( NCOMB= 16 )
1948+ INTEGER THEL
1949+ PARAMETER (THEL=NCOMB*3)
1950+ INTEGER NGRAPHS
1951+ PARAMETER (NGRAPHS= 1)
1952+C
1953+C ARGUMENTS
1954+C
1955+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
1956+C
1957+C LOCAL VARIABLES
1958+C
1959+ INTEGER IHEL,IDEN,J
1960+ REAL*8 B_SF_005
1961+ INTEGER IDEN_VALUES(3)
1962+ DATA IDEN_VALUES /6, 6, 6/
1963+C
1964+C GLOBAL VARIABLES
1965+C
1966+ LOGICAL GOODHEL(NCOMB,3)
1967+ COMMON /C_GOODHEL/ GOODHEL
1968+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
1969+ COMMON/TO_SAVEMOM/SAVEMOM
1970+ LOGICAL CALCULATEDBORN
1971+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
1972+ INTEGER NFKSPROCESS
1973+ COMMON/C_NFKSPROCESS/NFKSPROCESS
1974+C ----------
1975+C BEGIN CODE
1976+C ----------
1977+ IDEN=IDEN_VALUES(NFKSPROCESS)
1978+ IF (CALCULATEDBORN) THEN
1979+ DO J=1,NEXTERNAL-1
1980+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
1981+ $ ,J)) THEN
1982+ CALCULATEDBORN=.FALSE.
1983+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
1984+ $ //'e born'
1985+ STOP
1986+ ENDIF
1987+ ENDDO
1988+ ELSE
1989+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
1990+ $ //'e called only with calculatedborn = true'
1991+ STOP
1992+ ENDIF
1993+ ANS = 0D0
1994+ DO IHEL=1,NCOMB
1995+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
1996+ ANS=ANS+B_SF_005(P1,IHEL)
1997+ ENDIF
1998+ ENDDO
1999+ ANS=ANS/DBLE(IDEN)
2000+ END
2001+
2002+
2003+ REAL*8 FUNCTION B_SF_005(P,HELL)
2004+C
2005+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2006+C By the MadGraph5_aMC@NLO Development Team
2007+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2008+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2009+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
2010+
2011+C Process: t > b u d~ [ real = QCD ]
2012+C Process: t > b c s~ [ real = QCD ]
2013+C spectators: 2 2
2014+
2015+C
2016+ IMPLICIT NONE
2017+C
2018+C CONSTANTS
2019+C
2020+ INTEGER NGRAPHS
2021+ PARAMETER ( NGRAPHS = 1 )
2022+ INTEGER NCOLOR1, NCOLOR2
2023+ PARAMETER (NCOLOR1=1, NCOLOR2=1)
2024+ REAL*8 ZERO
2025+ PARAMETER (ZERO=0D0)
2026+ COMPLEX*16 IMAG1
2027+ PARAMETER (IMAG1 = (0D0,1D0))
2028+ INCLUDE 'nexternal.inc'
2029+ INCLUDE 'born_nhel.inc'
2030+C
2031+C ARGUMENTS
2032+C
2033+ REAL*8 P(0:3,NEXTERNAL-1)
2034+ INTEGER HELL
2035+C
2036+C LOCAL VARIABLES
2037+C
2038+ INTEGER I,J
2039+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
2040+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
2041+C
2042+C GLOBAL VARIABLES
2043+C
2044+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
2045+ COMMON/TO_SAVEAMP/SAVEAMP
2046+ LOGICAL CALCULATEDBORN
2047+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2048+C
2049+C COLOR DATA
2050+C
2051+ DATA DENOM(1)/1/
2052+ DATA (CF(I, 1),I= 1, 1) / 9/
2053+C ----------
2054+C BEGIN CODE
2055+C ----------
2056+ IF (.NOT. CALCULATEDBORN) THEN
2057+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
2058+ $ //'d only with calculatedborn = true'
2059+ STOP
2060+ ELSEIF (CALCULATEDBORN) THEN
2061+ DO I=1,NGRAPHS
2062+ AMP(I)=SAVEAMP(I,HELL)
2063+ ENDDO
2064+ ENDIF
2065+ JAMP1(1)=-AMP(1)
2066+ JAMP2(1)=+1D0/4D0*(-3D0*AMP(1)+1D0/3D0*AMP(1))
2067+ B_SF_005 = 0.D0
2068+ DO I = 1, NCOLOR1
2069+ ZTEMP = (0.D0,0.D0)
2070+ DO J = 1, NCOLOR2
2071+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
2072+ ENDDO
2073+ B_SF_005 =B_SF_005+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
2074+ ENDDO
2075+ END
2076+
2077+
2078+
2079
2080=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_006.f'
2081--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_006.f 1970-01-01 00:00:00 +0000
2082+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_006.f 2015-10-20 10:56:39 +0000
2083@@ -0,0 +1,154 @@
2084+ SUBROUTINE SB_SF_006(P1,ANS)
2085+C
2086+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2087+C By the MadGraph5_aMC@NLO Development Team
2088+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2089+C
2090+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2091+C AND HELICITIES
2092+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
2093+C
2094+C Process: t > b u d~ [ real = QCD ]
2095+C Process: t > b c s~ [ real = QCD ]
2096+C spectators: 2 3
2097+
2098+C
2099+ IMPLICIT NONE
2100+C
2101+C CONSTANTS
2102+C
2103+ INCLUDE 'nexternal.inc'
2104+ INTEGER NCOMB
2105+ PARAMETER ( NCOMB= 16 )
2106+ INTEGER THEL
2107+ PARAMETER (THEL=NCOMB*3)
2108+ INTEGER NGRAPHS
2109+ PARAMETER (NGRAPHS= 1)
2110+C
2111+C ARGUMENTS
2112+C
2113+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
2114+C
2115+C LOCAL VARIABLES
2116+C
2117+ INTEGER IHEL,IDEN,J
2118+ REAL*8 B_SF_006
2119+ INTEGER IDEN_VALUES(3)
2120+ DATA IDEN_VALUES /6, 6, 6/
2121+C
2122+C GLOBAL VARIABLES
2123+C
2124+ LOGICAL GOODHEL(NCOMB,3)
2125+ COMMON /C_GOODHEL/ GOODHEL
2126+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
2127+ COMMON/TO_SAVEMOM/SAVEMOM
2128+ LOGICAL CALCULATEDBORN
2129+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2130+ INTEGER NFKSPROCESS
2131+ COMMON/C_NFKSPROCESS/NFKSPROCESS
2132+C ----------
2133+C BEGIN CODE
2134+C ----------
2135+ IDEN=IDEN_VALUES(NFKSPROCESS)
2136+ IF (CALCULATEDBORN) THEN
2137+ DO J=1,NEXTERNAL-1
2138+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
2139+ $ ,J)) THEN
2140+ CALCULATEDBORN=.FALSE.
2141+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
2142+ $ //'e born'
2143+ STOP
2144+ ENDIF
2145+ ENDDO
2146+ ELSE
2147+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
2148+ $ //'e called only with calculatedborn = true'
2149+ STOP
2150+ ENDIF
2151+ ANS = 0D0
2152+ DO IHEL=1,NCOMB
2153+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
2154+ ANS=ANS+B_SF_006(P1,IHEL)
2155+ ENDIF
2156+ ENDDO
2157+ ANS=ANS/DBLE(IDEN)
2158+ END
2159+
2160+
2161+ REAL*8 FUNCTION B_SF_006(P,HELL)
2162+C
2163+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2164+C By the MadGraph5_aMC@NLO Development Team
2165+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2166+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2167+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
2168+
2169+C Process: t > b u d~ [ real = QCD ]
2170+C Process: t > b c s~ [ real = QCD ]
2171+C spectators: 2 3
2172+
2173+C
2174+ IMPLICIT NONE
2175+C
2176+C CONSTANTS
2177+C
2178+ INTEGER NGRAPHS
2179+ PARAMETER ( NGRAPHS = 1 )
2180+ INTEGER NCOLOR1, NCOLOR2
2181+ PARAMETER (NCOLOR1=1, NCOLOR2=2)
2182+ REAL*8 ZERO
2183+ PARAMETER (ZERO=0D0)
2184+ COMPLEX*16 IMAG1
2185+ PARAMETER (IMAG1 = (0D0,1D0))
2186+ INCLUDE 'nexternal.inc'
2187+ INCLUDE 'born_nhel.inc'
2188+C
2189+C ARGUMENTS
2190+C
2191+ REAL*8 P(0:3,NEXTERNAL-1)
2192+ INTEGER HELL
2193+C
2194+C LOCAL VARIABLES
2195+C
2196+ INTEGER I,J
2197+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
2198+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
2199+C
2200+C GLOBAL VARIABLES
2201+C
2202+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
2203+ COMMON/TO_SAVEAMP/SAVEAMP
2204+ LOGICAL CALCULATEDBORN
2205+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2206+C
2207+C COLOR DATA
2208+C
2209+ DATA DENOM(1)/1/
2210+ DATA (CF(I, 1),I= 1, 2) / 9, 3/
2211+C ----------
2212+C BEGIN CODE
2213+C ----------
2214+ IF (.NOT. CALCULATEDBORN) THEN
2215+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
2216+ $ //'d only with calculatedborn = true'
2217+ STOP
2218+ ELSEIF (CALCULATEDBORN) THEN
2219+ DO I=1,NGRAPHS
2220+ AMP(I)=SAVEAMP(I,HELL)
2221+ ENDDO
2222+ ENDIF
2223+ JAMP1(1)=-AMP(1)
2224+ JAMP2(1)=+1D0/2D0*(+1D0/3D0*AMP(1))
2225+ JAMP2(2)=+1D0/2D0*(-AMP(1))
2226+ B_SF_006 = 0.D0
2227+ DO I = 1, NCOLOR1
2228+ ZTEMP = (0.D0,0.D0)
2229+ DO J = 1, NCOLOR2
2230+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
2231+ ENDDO
2232+ B_SF_006 =B_SF_006+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
2233+ ENDDO
2234+ END
2235+
2236+
2237+
2238
2239=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_007.f'
2240--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_007.f 1970-01-01 00:00:00 +0000
2241+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_007.f 2015-10-20 10:56:39 +0000
2242@@ -0,0 +1,154 @@
2243+ SUBROUTINE SB_SF_007(P1,ANS)
2244+C
2245+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2246+C By the MadGraph5_aMC@NLO Development Team
2247+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2248+C
2249+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2250+C AND HELICITIES
2251+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
2252+C
2253+C Process: t > b u d~ [ real = QCD ]
2254+C Process: t > b c s~ [ real = QCD ]
2255+C spectators: 2 4
2256+
2257+C
2258+ IMPLICIT NONE
2259+C
2260+C CONSTANTS
2261+C
2262+ INCLUDE 'nexternal.inc'
2263+ INTEGER NCOMB
2264+ PARAMETER ( NCOMB= 16 )
2265+ INTEGER THEL
2266+ PARAMETER (THEL=NCOMB*3)
2267+ INTEGER NGRAPHS
2268+ PARAMETER (NGRAPHS= 1)
2269+C
2270+C ARGUMENTS
2271+C
2272+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
2273+C
2274+C LOCAL VARIABLES
2275+C
2276+ INTEGER IHEL,IDEN,J
2277+ REAL*8 B_SF_007
2278+ INTEGER IDEN_VALUES(3)
2279+ DATA IDEN_VALUES /6, 6, 6/
2280+C
2281+C GLOBAL VARIABLES
2282+C
2283+ LOGICAL GOODHEL(NCOMB,3)
2284+ COMMON /C_GOODHEL/ GOODHEL
2285+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
2286+ COMMON/TO_SAVEMOM/SAVEMOM
2287+ LOGICAL CALCULATEDBORN
2288+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2289+ INTEGER NFKSPROCESS
2290+ COMMON/C_NFKSPROCESS/NFKSPROCESS
2291+C ----------
2292+C BEGIN CODE
2293+C ----------
2294+ IDEN=IDEN_VALUES(NFKSPROCESS)
2295+ IF (CALCULATEDBORN) THEN
2296+ DO J=1,NEXTERNAL-1
2297+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
2298+ $ ,J)) THEN
2299+ CALCULATEDBORN=.FALSE.
2300+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
2301+ $ //'e born'
2302+ STOP
2303+ ENDIF
2304+ ENDDO
2305+ ELSE
2306+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
2307+ $ //'e called only with calculatedborn = true'
2308+ STOP
2309+ ENDIF
2310+ ANS = 0D0
2311+ DO IHEL=1,NCOMB
2312+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
2313+ ANS=ANS+B_SF_007(P1,IHEL)
2314+ ENDIF
2315+ ENDDO
2316+ ANS=ANS/DBLE(IDEN)
2317+ END
2318+
2319+
2320+ REAL*8 FUNCTION B_SF_007(P,HELL)
2321+C
2322+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2323+C By the MadGraph5_aMC@NLO Development Team
2324+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2325+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2326+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
2327+
2328+C Process: t > b u d~ [ real = QCD ]
2329+C Process: t > b c s~ [ real = QCD ]
2330+C spectators: 2 4
2331+
2332+C
2333+ IMPLICIT NONE
2334+C
2335+C CONSTANTS
2336+C
2337+ INTEGER NGRAPHS
2338+ PARAMETER ( NGRAPHS = 1 )
2339+ INTEGER NCOLOR1, NCOLOR2
2340+ PARAMETER (NCOLOR1=1, NCOLOR2=2)
2341+ REAL*8 ZERO
2342+ PARAMETER (ZERO=0D0)
2343+ COMPLEX*16 IMAG1
2344+ PARAMETER (IMAG1 = (0D0,1D0))
2345+ INCLUDE 'nexternal.inc'
2346+ INCLUDE 'born_nhel.inc'
2347+C
2348+C ARGUMENTS
2349+C
2350+ REAL*8 P(0:3,NEXTERNAL-1)
2351+ INTEGER HELL
2352+C
2353+C LOCAL VARIABLES
2354+C
2355+ INTEGER I,J
2356+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
2357+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
2358+C
2359+C GLOBAL VARIABLES
2360+C
2361+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
2362+ COMMON/TO_SAVEAMP/SAVEAMP
2363+ LOGICAL CALCULATEDBORN
2364+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2365+C
2366+C COLOR DATA
2367+C
2368+ DATA DENOM(1)/1/
2369+ DATA (CF(I, 1),I= 1, 2) / 9, 3/
2370+C ----------
2371+C BEGIN CODE
2372+C ----------
2373+ IF (.NOT. CALCULATEDBORN) THEN
2374+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
2375+ $ //'d only with calculatedborn = true'
2376+ STOP
2377+ ELSEIF (CALCULATEDBORN) THEN
2378+ DO I=1,NGRAPHS
2379+ AMP(I)=SAVEAMP(I,HELL)
2380+ ENDDO
2381+ ENDIF
2382+ JAMP1(1)=-AMP(1)
2383+ JAMP2(1)=+1D0/2D0*(-1D0/3D0*AMP(1))
2384+ JAMP2(2)=+1D0/2D0*(+AMP(1))
2385+ B_SF_007 = 0.D0
2386+ DO I = 1, NCOLOR1
2387+ ZTEMP = (0.D0,0.D0)
2388+ DO J = 1, NCOLOR2
2389+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
2390+ ENDDO
2391+ B_SF_007 =B_SF_007+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
2392+ ENDDO
2393+ END
2394+
2395+
2396+
2397
2398=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_008.f'
2399--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_008.f 1970-01-01 00:00:00 +0000
2400+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%b_sf_008.f 2015-10-20 10:56:39 +0000
2401@@ -0,0 +1,153 @@
2402+ SUBROUTINE SB_SF_008(P1,ANS)
2403+C
2404+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2405+C By the MadGraph5_aMC@NLO Development Team
2406+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2407+C
2408+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2409+C AND HELICITIES
2410+C FOR THE POINT IN PHASE SPACE P(0:3,NEXTERNAL-1)
2411+C
2412+C Process: t > b u d~ [ real = QCD ]
2413+C Process: t > b c s~ [ real = QCD ]
2414+C spectators: 3 4
2415+
2416+C
2417+ IMPLICIT NONE
2418+C
2419+C CONSTANTS
2420+C
2421+ INCLUDE 'nexternal.inc'
2422+ INTEGER NCOMB
2423+ PARAMETER ( NCOMB= 16 )
2424+ INTEGER THEL
2425+ PARAMETER (THEL=NCOMB*3)
2426+ INTEGER NGRAPHS
2427+ PARAMETER (NGRAPHS= 1)
2428+C
2429+C ARGUMENTS
2430+C
2431+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
2432+C
2433+C LOCAL VARIABLES
2434+C
2435+ INTEGER IHEL,IDEN,J
2436+ REAL*8 B_SF_008
2437+ INTEGER IDEN_VALUES(3)
2438+ DATA IDEN_VALUES /6, 6, 6/
2439+C
2440+C GLOBAL VARIABLES
2441+C
2442+ LOGICAL GOODHEL(NCOMB,3)
2443+ COMMON /C_GOODHEL/ GOODHEL
2444+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
2445+ COMMON/TO_SAVEMOM/SAVEMOM
2446+ LOGICAL CALCULATEDBORN
2447+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2448+ INTEGER NFKSPROCESS
2449+ COMMON/C_NFKSPROCESS/NFKSPROCESS
2450+C ----------
2451+C BEGIN CODE
2452+C ----------
2453+ IDEN=IDEN_VALUES(NFKSPROCESS)
2454+ IF (CALCULATEDBORN) THEN
2455+ DO J=1,NEXTERNAL-1
2456+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
2457+ $ ,J)) THEN
2458+ CALCULATEDBORN=.FALSE.
2459+ WRITE(*,*) 'Error in sb_sf: momenta not the same in th'
2460+ $ //'e born'
2461+ STOP
2462+ ENDIF
2463+ ENDDO
2464+ ELSE
2465+ WRITE(*,*) 'Error in sb_sf: color_linked borns should b'
2466+ $ //'e called only with calculatedborn = true'
2467+ STOP
2468+ ENDIF
2469+ ANS = 0D0
2470+ DO IHEL=1,NCOMB
2471+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
2472+ ANS=ANS+B_SF_008(P1,IHEL)
2473+ ENDIF
2474+ ENDDO
2475+ ANS=ANS/DBLE(IDEN)
2476+ END
2477+
2478+
2479+ REAL*8 FUNCTION B_SF_008(P,HELL)
2480+C
2481+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2482+C By the MadGraph5_aMC@NLO Development Team
2483+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2484+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2485+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
2486+
2487+C Process: t > b u d~ [ real = QCD ]
2488+C Process: t > b c s~ [ real = QCD ]
2489+C spectators: 3 4
2490+
2491+C
2492+ IMPLICIT NONE
2493+C
2494+C CONSTANTS
2495+C
2496+ INTEGER NGRAPHS
2497+ PARAMETER ( NGRAPHS = 1 )
2498+ INTEGER NCOLOR1, NCOLOR2
2499+ PARAMETER (NCOLOR1=1, NCOLOR2=1)
2500+ REAL*8 ZERO
2501+ PARAMETER (ZERO=0D0)
2502+ COMPLEX*16 IMAG1
2503+ PARAMETER (IMAG1 = (0D0,1D0))
2504+ INCLUDE 'nexternal.inc'
2505+ INCLUDE 'born_nhel.inc'
2506+C
2507+C ARGUMENTS
2508+C
2509+ REAL*8 P(0:3,NEXTERNAL-1)
2510+ INTEGER HELL
2511+C
2512+C LOCAL VARIABLES
2513+C
2514+ INTEGER I,J
2515+ REAL*8 DENOM(NCOLOR1), CF(NCOLOR2,NCOLOR1)
2516+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP1(NCOLOR1), JAMP2(NCOLOR2)
2517+C
2518+C GLOBAL VARIABLES
2519+C
2520+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
2521+ COMMON/TO_SAVEAMP/SAVEAMP
2522+ LOGICAL CALCULATEDBORN
2523+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2524+C
2525+C COLOR DATA
2526+C
2527+ DATA DENOM(1)/1/
2528+ DATA (CF(I, 1),I= 1, 1) / 9/
2529+C ----------
2530+C BEGIN CODE
2531+C ----------
2532+ IF (.NOT. CALCULATEDBORN) THEN
2533+ WRITE(*,*) 'Error in b_sf: color_linked borns should be calle'
2534+ $ //'d only with calculatedborn = true'
2535+ STOP
2536+ ELSEIF (CALCULATEDBORN) THEN
2537+ DO I=1,NGRAPHS
2538+ AMP(I)=SAVEAMP(I,HELL)
2539+ ENDDO
2540+ ENDIF
2541+ JAMP1(1)=-AMP(1)
2542+ JAMP2(1)=+1D0/2D0*(+3D0*AMP(1)-1D0/3D0*AMP(1))
2543+ B_SF_008 = 0.D0
2544+ DO I = 1, NCOLOR1
2545+ ZTEMP = (0.D0,0.D0)
2546+ DO J = 1, NCOLOR2
2547+ ZTEMP = ZTEMP + CF(J,I)*JAMP2(J)
2548+ ENDDO
2549+ B_SF_008 =B_SF_008+ZTEMP*DCONJG(JAMP1(I))/DENOM(I)
2550+ ENDDO
2551+ END
2552+
2553+
2554+
2555
2556=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born.f'
2557--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born.f 1970-01-01 00:00:00 +0000
2558+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born.f 2015-10-20 10:56:39 +0000
2559@@ -0,0 +1,298 @@
2560+ SUBROUTINE SBORN(P1,ANS)
2561+C
2562+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2563+C By the MadGraph5_aMC@NLO Development Team
2564+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2565+C
2566+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2567+C AND HELICITIES
2568+C FOR THE POINT IN PHASE SPACE P1(0:3,NEXTERNAL-1)
2569+C
2570+C Process: t > b u d~ [ real = QCD ]
2571+C Process: t > b c s~ [ real = QCD ]
2572+C
2573+ IMPLICIT NONE
2574+C
2575+C CONSTANTS
2576+C
2577+ INCLUDE 'nexternal.inc'
2578+ INCLUDE 'born_nhel.inc'
2579+ INCLUDE 'genps.inc'
2580+ INTEGER NCOMB
2581+ PARAMETER ( NCOMB= 16 )
2582+ INTEGER THEL
2583+ PARAMETER (THEL=NCOMB*3)
2584+ INTEGER NGRAPHS
2585+ PARAMETER (NGRAPHS= 1)
2586+C
2587+C ARGUMENTS
2588+C
2589+ REAL*8 P1(0:3,NEXTERNAL-1)
2590+ COMPLEX*16 ANS(2)
2591+C
2592+C LOCAL VARIABLES
2593+C
2594+ INTEGER IHEL,IDEN,I,J,JJ,GLU_IJ
2595+ REAL*8 BORN,BORNS(2)
2596+ COMPLEX*16 BORNTILDE
2597+ INTEGER NTRY(3)
2598+ DATA NTRY /3*0/
2599+ INTEGER NHEL(NEXTERNAL-1,NCOMB)
2600+ DATA (NHEL(I, 1),I=1,4) / 1,-1,-1, 1/
2601+ DATA (NHEL(I, 2),I=1,4) / 1,-1,-1,-1/
2602+ DATA (NHEL(I, 3),I=1,4) / 1,-1, 1, 1/
2603+ DATA (NHEL(I, 4),I=1,4) / 1,-1, 1,-1/
2604+ DATA (NHEL(I, 5),I=1,4) / 1, 1,-1, 1/
2605+ DATA (NHEL(I, 6),I=1,4) / 1, 1,-1,-1/
2606+ DATA (NHEL(I, 7),I=1,4) / 1, 1, 1, 1/
2607+ DATA (NHEL(I, 8),I=1,4) / 1, 1, 1,-1/
2608+ DATA (NHEL(I, 9),I=1,4) /-1,-1,-1, 1/
2609+ DATA (NHEL(I, 10),I=1,4) /-1,-1,-1,-1/
2610+ DATA (NHEL(I, 11),I=1,4) /-1,-1, 1, 1/
2611+ DATA (NHEL(I, 12),I=1,4) /-1,-1, 1,-1/
2612+ DATA (NHEL(I, 13),I=1,4) /-1, 1,-1, 1/
2613+ DATA (NHEL(I, 14),I=1,4) /-1, 1,-1,-1/
2614+ DATA (NHEL(I, 15),I=1,4) /-1, 1, 1, 1/
2615+ DATA (NHEL(I, 16),I=1,4) /-1, 1, 1,-1/
2616+ INTEGER IDEN_VALUES(3)
2617+ DATA IDEN_VALUES /6, 6, 6/
2618+ INTEGER IJ_VALUES(3)
2619+ DATA IJ_VALUES /2, 3, 4/
2620+C
2621+C GLOBAL VARIABLES
2622+C
2623+ DOUBLE PRECISION AMP2(MAXAMPS), JAMP2(0:MAXAMPS)
2624+ COMMON/TO_AMPS/ AMP2, JAMP2
2625+ DATA JAMP2(0) / 1/
2626+ LOGICAL GOODHEL(NCOMB,3)
2627+ COMMON /C_GOODHEL/GOODHEL
2628+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
2629+ COMMON/TO_SAVEAMP/SAVEAMP
2630+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
2631+ COMMON/TO_SAVEMOM/SAVEMOM
2632+ DOUBLE PRECISION HEL_FAC
2633+ INTEGER GET_HEL,SKIP(3)
2634+ COMMON/CBORN/HEL_FAC,GET_HEL,SKIP
2635+ LOGICAL CALCULATEDBORN
2636+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2637+ INTEGER NFKSPROCESS
2638+ COMMON/C_NFKSPROCESS/NFKSPROCESS
2639+C ----------
2640+C BEGIN CODE
2641+C ----------
2642+ IDEN=IDEN_VALUES(NFKSPROCESS)
2643+ GLU_IJ = IJ_VALUES(NFKSPROCESS)
2644+ NTRY(NFKSPROCESS)=NTRY(NFKSPROCESS)+1
2645+ IF (NTRY(NFKSPROCESS).LT.2) THEN
2646+ SKIP(NFKSPROCESS)=1
2647+ DO WHILE(NHEL(GLU_IJ ,SKIP(NFKSPROCESS)).NE.-NHEL(GLU_IJ ,1))
2648+ SKIP(NFKSPROCESS)=SKIP(NFKSPROCESS)+1
2649+ ENDDO
2650+ SKIP(NFKSPROCESS)=SKIP(NFKSPROCESS)-1
2651+ ENDIF
2652+ DO JJ=1,NGRAPHS
2653+ AMP2(JJ)=0D0
2654+ ENDDO
2655+ DO JJ=1,INT(JAMP2(0))
2656+ JAMP2(JJ)=0D0
2657+ ENDDO
2658+ IF (CALCULATEDBORN) THEN
2659+ DO J=1,NEXTERNAL-1
2660+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
2661+ $ ,J)) THEN
2662+ CALCULATEDBORN=.FALSE.
2663+ WRITE (*,*) 'momenta not the same in Born'
2664+ STOP
2665+ ENDIF
2666+ ENDDO
2667+ ENDIF
2668+ IF (.NOT.CALCULATEDBORN) THEN
2669+ DO J=1,NEXTERNAL-1
2670+ SAVEMOM(J,1)=P1(0,J)
2671+ SAVEMOM(J,2)=P1(3,J)
2672+ ENDDO
2673+ DO J=1,MAX_BHEL
2674+ DO JJ=1,NGRAPHS
2675+ SAVEAMP(JJ,J)=(0D0,0D0)
2676+ ENDDO
2677+ ENDDO
2678+ ENDIF
2679+ ANS(1) = 0D0
2680+ ANS(2) = 0D0
2681+ HEL_FAC=1D0
2682+ DO IHEL=1,NCOMB
2683+ IF (NHEL(GLU_IJ,IHEL).EQ.NHEL(GLU_IJ,1)) THEN
2684+ IF ((GOODHEL(IHEL,NFKSPROCESS) .OR. GOODHEL(IHEL+SKIP(NFKSPRO
2685+ $ CESS),NFKSPROCESS) .OR. NTRY(NFKSPROCESS) .LT. 2) ) THEN
2686+ ANS(1)=ANS(1)+BORN(P1,NHEL(1,IHEL),IHEL,BORNTILDE,BORNS)
2687+ ANS(2)=ANS(2)+BORNTILDE
2688+ IF ( BORNS(1).NE.0D0 .AND. .NOT. GOODHEL(IHEL,NFKSPROCESS
2689+ $ ) ) THEN
2690+ GOODHEL(IHEL,NFKSPROCESS)=.TRUE.
2691+ ENDIF
2692+ IF ( BORNS(2).NE.0D0 .AND. .NOT. GOODHEL(IHEL+SKIP(NFKSPROC
2693+ $ ESS),NFKSPROCESS) ) THEN
2694+ GOODHEL(IHEL+SKIP(NFKSPROCESS),NFKSPROCESS)=.TRUE.
2695+ ENDIF
2696+ ENDIF
2697+ ENDIF
2698+ ENDDO
2699+ ANS(1)=ANS(1)/DBLE(IDEN)
2700+ ANS(2)=ANS(2)/DBLE(IDEN)
2701+ CALCULATEDBORN=.TRUE.
2702+ END
2703+
2704+
2705+ REAL*8 FUNCTION BORN(P,NHEL,HELL,BORNTILDE,BORNS)
2706+C
2707+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2708+C By the MadGraph5_aMC@NLO Development Team
2709+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2710+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2711+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
2712+
2713+C Process: t > b u d~ [ real = QCD ]
2714+C Process: t > b c s~ [ real = QCD ]
2715+C
2716+ IMPLICIT NONE
2717+C
2718+C CONSTANTS
2719+C
2720+ INTEGER NGRAPHS, NEIGEN
2721+ PARAMETER (NGRAPHS= 1,NEIGEN= 1)
2722+ INTEGER NWAVEFUNCS, NCOLOR
2723+ PARAMETER (NWAVEFUNCS=5, NCOLOR=1)
2724+ REAL*8 ZERO
2725+ PARAMETER (ZERO=0D0)
2726+ COMPLEX*16 IMAG1
2727+ PARAMETER (IMAG1 = (0D0,1D0))
2728+ INCLUDE 'nexternal.inc'
2729+ INCLUDE 'born_nhel.inc'
2730+ INCLUDE 'coupl.inc'
2731+ INCLUDE 'genps.inc'
2732+C
2733+C ARGUMENTS
2734+C
2735+ REAL*8 P(0:3,NEXTERNAL-1),BORNS(2)
2736+ INTEGER NHEL(NEXTERNAL-1), HELL
2737+ COMPLEX*16 BORNTILDE
2738+C
2739+C LOCAL VARIABLES
2740+C
2741+ INTEGER I,J,IHEL,BACK_HEL,GLU_IJ
2742+ INTEGER IC(NEXTERNAL-1),NMO
2743+ PARAMETER (NMO=NEXTERNAL-1)
2744+ DATA IC /NMO*1/
2745+ REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
2746+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP(NCOLOR), W(8,NWAVEFUNCS)
2747+ $ , JAMPH(2, NCOLOR)
2748+C
2749+C GLOBAL VARIABLES
2750+C
2751+ DOUBLE PRECISION AMP2(MAXAMPS), JAMP2(0:MAXAMPS)
2752+ COMMON/TO_AMPS/ AMP2, JAMP2
2753+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
2754+ COMMON/TO_SAVEAMP/SAVEAMP
2755+ DOUBLE PRECISION HEL_FAC
2756+ INTEGER GET_HEL,SKIP(3)
2757+ COMMON/CBORN/HEL_FAC,GET_HEL,SKIP
2758+ LOGICAL CALCULATEDBORN
2759+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2760+ INTEGER NFKSPROCESS
2761+ COMMON/C_NFKSPROCESS/NFKSPROCESS
2762+ INTEGER STEP_HEL
2763+ INTEGER IJ_VALUES(3)
2764+ DATA IJ_VALUES /2, 3, 4/
2765+C
2766+C COLOR DATA
2767+C
2768+ DATA DENOM(1)/1/
2769+ DATA (CF(I, 1),I= 1, 1) / 9/
2770+C 1 T(2,1) T(3,4)
2771+C ----------
2772+C BEGIN CODE
2773+C ----------
2774+ GLU_IJ = IJ_VALUES(NFKSPROCESS)
2775+ BORN = 0D0
2776+ BORNTILDE = (0D0,0D0)
2777+ BACK_HEL = NHEL(GLU_IJ)
2778+ BORNS(1) = 0D0
2779+ BORNS(2) = 0D0
2780+ IF (BACK_HEL.NE.0) THEN
2781+ STEP_HEL=-2*BACK_HEL
2782+ ELSE
2783+ STEP_HEL=1
2784+ ENDIF
2785+ DO IHEL=BACK_HEL,-BACK_HEL,STEP_HEL
2786+ IF (IHEL.EQ.BACK_HEL.OR.NHEL(GLU_IJ).NE.0) THEN
2787+ IF (NHEL(GLU_IJ).NE.0) NHEL(GLU_IJ) = IHEL
2788+ IF (.NOT. CALCULATEDBORN) THEN
2789+ CALL IXXXXX(P(0,1),MDL_MT,NHEL(1),+1*IC(1),W(1,1))
2790+ CALL OXXXXX(P(0,2),MDL_MB,NHEL(2),+1*IC(2),W(1,2))
2791+ CALL OXXXXX(P(0,3),ZERO,NHEL(3),+1*IC(3),W(1,3))
2792+ CALL IXXXXX(P(0,4),ZERO,NHEL(4),-1*IC(4),W(1,4))
2793+ CALL FFV2_3(W(1,4),W(1,3),GC_100,MDL_MW,MDL_WW,W(1,5))
2794+C Amplitude(s) for diagram number 1
2795+ CALL FFV2_0(W(1,1),W(1,2),W(1,5),GC_100,AMP(1))
2796+ DO I=1,NGRAPHS
2797+ IF(IHEL.EQ.BACK_HEL)THEN
2798+ SAVEAMP(I,HELL)=AMP(I)
2799+ ELSEIF(IHEL.EQ.-BACK_HEL)THEN
2800+ SAVEAMP(I,HELL+SKIP(NFKSPROCESS))=AMP(I)
2801+ ELSE
2802+ WRITE(*,*) 'ERROR #1 in born.f'
2803+ STOP
2804+ ENDIF
2805+ ENDDO
2806+ ELSEIF (CALCULATEDBORN) THEN
2807+ DO I=1,NGRAPHS
2808+ IF(IHEL.EQ.BACK_HEL)THEN
2809+ AMP(I)=SAVEAMP(I,HELL)
2810+ ELSEIF(IHEL.EQ.-BACK_HEL)THEN
2811+ AMP(I)=SAVEAMP(I,HELL+SKIP(NFKSPROCESS))
2812+ ELSE
2813+ WRITE(*,*) 'ERROR #1 in born.f'
2814+ STOP
2815+ ENDIF
2816+ ENDDO
2817+ ENDIF
2818+ JAMP(1)=-AMP(1)
2819+ DO I = 1, NCOLOR
2820+ ZTEMP = (0.D0,0.D0)
2821+ DO J = 1, NCOLOR
2822+ ZTEMP = ZTEMP + CF(J,I)*JAMP(J)
2823+ ENDDO
2824+ BORNS(2-(1+BACK_HEL*IHEL)/2)=BORNS(2-(1+BACK_HEL*IHEL)/2)
2825+ $ +ZTEMP*DCONJG(JAMP(I))/DENOM(I)
2826+ ENDDO
2827+ DO I = 1, NGRAPHS
2828+ AMP2(I)=AMP2(I)+AMP(I)*DCONJG(AMP(I))
2829+ ENDDO
2830+ DO I = 1, NCOLOR
2831+ JAMP2(I)=JAMP2(I)+JAMP(I)*DCONJG(JAMP(I))
2832+ JAMPH(2-(1+BACK_HEL*IHEL)/2,I)=JAMP(I)
2833+ ENDDO
2834+ ENDIF
2835+ ENDDO
2836+ BORN=BORNS(1)+BORNS(2)
2837+ DO I = 1, NCOLOR
2838+ ZTEMP = (0.D0,0.D0)
2839+ DO J = 1, NCOLOR
2840+ ZTEMP = ZTEMP + CF(J,I)*JAMPH(2,J)
2841+ ENDDO
2842+ BORNTILDE = BORNTILDE + ZTEMP*DCONJG(JAMPH(1,I))/DENOM(I)
2843+ ENDDO
2844+ NHEL(GLU_IJ) = BACK_HEL
2845+ END
2846+
2847+
2848+ BLOCK DATA GOODHELS
2849+ INTEGER NCOMB
2850+ PARAMETER ( NCOMB= 16 )
2851+ INTEGER THEL
2852+ PARAMETER (THEL=NCOMB*3)
2853+ LOGICAL GOODHEL(NCOMB,3)
2854+ COMMON /C_GOODHEL/GOODHEL
2855+ DATA GOODHEL/THEL*.FALSE./
2856+ END
2857+
2858
2859=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_conf.inc'
2860--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_conf.inc 1970-01-01 00:00:00 +0000
2861+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_conf.inc 2015-10-20 10:56:39 +0000
2862@@ -0,0 +1,8 @@
2863+C Diagram 1, Amplitude 1
2864+ DATA MAPCONFIG( 1)/ 1/
2865+ DATA (IFOREST(I, -1, 1),I=1,2)/ 4, 3/
2866+ DATA SPROP( -1, 1)/ 24/
2867+ DATA (IFOREST(I, -2, 1),I=1,2)/ -1, 2/
2868+ DATA SPROP( -2, 1)/ 6/
2869+C Number of configs
2870+ DATA MAPCONFIG(0)/ 1/
2871
2872=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_decayBW.inc'
2873--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_decayBW.inc 1970-01-01 00:00:00 +0000
2874+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_decayBW.inc 2015-10-20 10:56:39 +0000
2875@@ -0,0 +1,2 @@
2876+ DATA GFORCEBW(-1,1)/.FALSE./
2877+ DATA GFORCEBW(-2,1)/.FALSE./
2878
2879=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_hel.f'
2880--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_hel.f 1970-01-01 00:00:00 +0000
2881+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_hel.f 2015-10-20 10:56:39 +0000
2882@@ -0,0 +1,151 @@
2883+ SUBROUTINE SBORN_HEL(P1,ANS)
2884+C
2885+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2886+C By the MadGraph5_aMC@NLO Development Team
2887+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2888+C
2889+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2890+C AND HELICITIES
2891+C FOR THE POINT IN PHASE SPACE P1(0:3,NEXTERNAL-1)
2892+C
2893+C Process: t > b u d~ [ real = QCD ]
2894+C Process: t > b c s~ [ real = QCD ]
2895+C
2896+ IMPLICIT NONE
2897+C
2898+C CONSTANTS
2899+C
2900+ INCLUDE 'nexternal.inc'
2901+ INCLUDE 'born_nhel.inc'
2902+ INTEGER NCOMB
2903+ PARAMETER ( NCOMB= 16 )
2904+ INTEGER THEL
2905+ PARAMETER (THEL=NCOMB*3)
2906+ INTEGER NGRAPHS
2907+ PARAMETER (NGRAPHS = 1)
2908+C
2909+C ARGUMENTS
2910+C
2911+ REAL*8 P1(0:3,NEXTERNAL-1),ANS
2912+C
2913+C LOCAL VARIABLES
2914+C
2915+ INTEGER IHEL,IDEN,J
2916+ REAL*8 BORN_HEL
2917+ INTEGER IDEN_VALUES(3)
2918+ DATA IDEN_VALUES /6, 6, 6/
2919+C
2920+C GLOBAL VARIABLES
2921+C
2922+ LOGICAL GOODHEL(NCOMB,3)
2923+ COMMON /C_GOODHEL/ GOODHEL
2924+ DOUBLE PRECISION SAVEMOM(NEXTERNAL-1,2)
2925+ COMMON/TO_SAVEMOM/SAVEMOM
2926+ LOGICAL CALCULATEDBORN
2927+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
2928+ INTEGER NFKSPROCESS
2929+ COMMON/C_NFKSPROCESS/NFKSPROCESS
2930+ DOUBLE PRECISION WGT_HEL(MAX_BHEL)
2931+ COMMON/C_BORN_HEL/WGT_HEL
2932+
2933+C ----------
2934+C BEGIN CODE
2935+C ----------
2936+ IDEN=IDEN_VALUES(NFKSPROCESS)
2937+ IF (CALCULATEDBORN) THEN
2938+ DO J=1,NEXTERNAL-1
2939+ IF (SAVEMOM(J,1).NE.P1(0,J) .OR. SAVEMOM(J,2).NE.P1(3
2940+ $ ,J)) THEN
2941+ CALCULATEDBORN=.FALSE.
2942+ WRITE (*,*) 'momenta not the same in Born_hel'
2943+ STOP
2944+ ENDIF
2945+ ENDDO
2946+ ELSE
2947+ WRITE(*,*) 'Error in born_hel: should be called only wit'
2948+ $ //'h calculatedborn = true'
2949+ STOP
2950+ ENDIF
2951+ ANS = 0D0
2952+ DO IHEL=1,NCOMB
2953+ WGT_HEL(IHEL)=0D0
2954+ IF (GOODHEL(IHEL,NFKSPROCESS)) THEN
2955+ WGT_HEL(IHEL)=BORN_HEL(P1,IHEL)/DBLE(IDEN)
2956+ ANS=ANS+WGT_HEL(IHEL)
2957+ ENDIF
2958+ ENDDO
2959+ END
2960+
2961+
2962+ REAL*8 FUNCTION BORN_HEL(P,HELL)
2963+C
2964+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
2965+C By the MadGraph5_aMC@NLO Development Team
2966+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
2967+C RETURNS AMPLITUDE SQUARED SUMMED/AVG OVER COLORS
2968+C FOR THE POINT WITH EXTERNAL LINES W(0:6,NEXTERNAL-1)
2969+
2970+C Process: t > b u d~ [ real = QCD ]
2971+C Process: t > b c s~ [ real = QCD ]
2972+C
2973+ IMPLICIT NONE
2974+C
2975+C CONSTANTS
2976+C
2977+ INTEGER NGRAPHS
2978+ PARAMETER ( NGRAPHS = 1 )
2979+ INTEGER NCOLOR
2980+ PARAMETER (NCOLOR=1)
2981+ REAL*8 ZERO
2982+ PARAMETER (ZERO=0D0)
2983+ COMPLEX*16 IMAG1
2984+ PARAMETER (IMAG1 = (0D0,1D0))
2985+ INCLUDE 'nexternal.inc'
2986+ INCLUDE 'born_nhel.inc'
2987+C
2988+C ARGUMENTS
2989+C
2990+ REAL*8 P(0:3,NEXTERNAL-1)
2991+ INTEGER HELL
2992+C
2993+C LOCAL VARIABLES
2994+C
2995+ INTEGER I,J
2996+ REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
2997+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP(NCOLOR)
2998+C
2999+C GLOBAL VARIABLES
3000+C
3001+ DOUBLE COMPLEX SAVEAMP(NGRAPHS,MAX_BHEL)
3002+ COMMON/TO_SAVEAMP/SAVEAMP
3003+ LOGICAL CALCULATEDBORN
3004+ COMMON/CCALCULATEDBORN/CALCULATEDBORN
3005+C
3006+C COLOR DATA
3007+C
3008+ DATA DENOM(1)/1/
3009+ DATA (CF(I, 1),I= 1, 1) / 9/
3010+C 1 T(2,1) T(3,4)
3011+C ----------
3012+C BEGIN CODE
3013+C ----------
3014+ IF (.NOT. CALCULATEDBORN) THEN
3015+ WRITE(*,*) 'Error in born_hel.f: this should be called onl'
3016+ $ //'y with calculatedborn = true'
3017+ STOP
3018+ ELSEIF (CALCULATEDBORN) THEN
3019+ DO I=1,NGRAPHS
3020+ AMP(I)=SAVEAMP(I,HELL)
3021+ ENDDO
3022+ ENDIF
3023+ JAMP(1)=-AMP(1)
3024+ BORN_HEL = 0.D0
3025+ DO I = 1, NCOLOR
3026+ ZTEMP = (0.D0,0.D0)
3027+ DO J = 1, NCOLOR
3028+ ZTEMP = ZTEMP + CF(J,I)*JAMP(J)
3029+ ENDDO
3030+ BORN_HEL =BORN_HEL+ZTEMP*DCONJG(JAMP(I))/DENOM(I)
3031+ ENDDO
3032+ END
3033+
3034
3035=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_leshouche.inc'
3036--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_leshouche.inc 1970-01-01 00:00:00 +0000
3037+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_leshouche.inc 2015-10-20 10:56:39 +0000
3038@@ -0,0 +1,8 @@
3039+ DATA (IDUP(I,1),I=1,4)/6,5,2,-1/
3040+ DATA (MOTHUP(1,I, 1),I=1, 4)/ 0, 1, 1, 1/
3041+ DATA (MOTHUP(2,I, 1),I=1, 4)/ 0, 2, 2, 2/
3042+ DATA (ICOLUP(1,I, 1),I=1, 4)/501,501,502, 0/
3043+ DATA (ICOLUP(2,I, 1),I=1, 4)/ 0, 0, 0,502/
3044+ DATA (IDUP(I,2),I=1,4)/6,5,4,-3/
3045+ DATA (MOTHUP(1,I, 2),I=1, 4)/ 0, 1, 1, 1/
3046+ DATA (MOTHUP(2,I, 2),I=1, 4)/ 0, 2, 2, 2/
3047
3048=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_maxamps.inc'
3049--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_maxamps.inc 1970-01-01 00:00:00 +0000
3050+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_maxamps.inc 2015-10-20 10:56:39 +0000
3051@@ -0,0 +1,3 @@
3052+ INTEGER MAXAMPS, MAXFLOW, MAXPROC, MAXSPROC
3053+ PARAMETER (MAXAMPS=1, MAXFLOW=1)
3054+ PARAMETER (MAXPROC=2, MAXSPROC=1)
3055
3056=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_ngraphs.inc'
3057--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_ngraphs.inc 1970-01-01 00:00:00 +0000
3058+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_ngraphs.inc 2015-10-20 10:56:39 +0000
3059@@ -0,0 +1,2 @@
3060+ INTEGER N_MAX_CG
3061+ PARAMETER (N_MAX_CG=1)
3062
3063=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_nhel.inc'
3064--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_nhel.inc 1970-01-01 00:00:00 +0000
3065+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_nhel.inc 2015-10-20 10:56:39 +0000
3066@@ -0,0 +1,3 @@
3067+ INTEGER MAX_BHEL, MAX_BCOL
3068+ PARAMETER (MAX_BHEL=16)
3069+ PARAMETER(MAX_BCOL=1)
3070
3071=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_props.inc'
3072--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_props.inc 1970-01-01 00:00:00 +0000
3073+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%born_props.inc 2015-10-20 10:56:39 +0000
3074@@ -0,0 +1,6 @@
3075+ PMASS( -1, 1) = ABS(MDL_MW)
3076+ PWIDTH( -1, 1) = ABS(MDL_WW)
3077+ POW( -1, 1) = 2
3078+ PMASS( -2, 1) = ABS(MDL_MT)
3079+ PWIDTH( -2, 1) = ABS(MDL_WT)
3080+ POW( -2, 1) = 1
3081
3082=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%coloramps.inc'
3083--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%coloramps.inc 1970-01-01 00:00:00 +0000
3084+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%coloramps.inc 2015-10-20 10:56:39 +0000
3085@@ -0,0 +1,2 @@
3086+ LOGICAL ICOLAMP(1,1,1)
3087+ DATA(ICOLAMP(I,1,1),I=1,1)/.TRUE./
3088
3089=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%config_subproc_map.inc'
3090--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%config_subproc_map.inc 1970-01-01 00:00:00 +0000
3091+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%config_subproc_map.inc 2015-10-20 10:56:39 +0000
3092@@ -0,0 +1,1 @@
3093+ DATA CONFSUB(1,1)/1/
3094
3095=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%configs_and_props_decl.inc'
3096--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%configs_and_props_decl.inc 1970-01-01 00:00:00 +0000
3097+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%configs_and_props_decl.inc 2015-10-20 10:56:39 +0000
3098@@ -0,0 +1,12 @@
3099+ INTEGER IFR,LMAXCONFIGS_USED,MAX_BRANCH_USED
3100+ PARAMETER (LMAXCONFIGS_USED= 4)
3101+ PARAMETER (MAX_BRANCH_USED = 3)
3102+ INTEGER MAPCONFIG_D( 3,0:LMAXCONFIGS_USED)
3103+ INTEGER IFOREST_D( 3,2,-MAX_BRANCH_USED:-1,LMAXCONFIGS_USED)
3104+ INTEGER SPROP_D( 3,-MAX_BRANCH_USED:-1,LMAXCONFIGS_USED)
3105+ INTEGER TPRID_D( 3,-MAX_BRANCH_USED:-1,LMAXCONFIGS_USED)
3106+ DOUBLE PRECISION PMASS_D( 3,-MAX_BRANCH_USED:-1,LMAXCONFIGS_USED
3107+ $ )
3108+ DOUBLE PRECISION PWIDTH_D( 3,-MAX_BRANCH_USED:-1,LMAXCONFIGS_USE
3109+ $ D)
3110+ INTEGER POW_D( 3,-MAX_BRANCH_USED:-1,LMAXCONFIGS_USED)
3111
3112=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%fks_info.inc'
3113--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%fks_info.inc 1970-01-01 00:00:00 +0000
3114+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%fks_info.inc 2015-10-20 10:56:39 +0000
3115@@ -0,0 +1,46 @@
3116+ INTEGER IPOS, JPOS
3117+ INTEGER FKS_I_D(3), FKS_J_D(3)
3118+ INTEGER FKS_J_FROM_I_D(3, NEXTERNAL, 0:NEXTERNAL)
3119+ INTEGER PARTICLE_TYPE_D(3, NEXTERNAL), PDG_TYPE_D(3, NEXTERNAL)
3120+ REAL*8 PARTICLE_CHARGE_D(3, NEXTERNAL)
3121+
3122+ DATA FKS_I_D / 5, 5, 5 /
3123+ DATA FKS_J_D / 2, 3, 4 /
3124+
3125+ DATA (FKS_J_FROM_I_D(1, 5, JPOS), JPOS = 0, 4) / 4, 1, 2, 3, 4 /
3126+
3127+ DATA (FKS_J_FROM_I_D(2, 5, JPOS), JPOS = 0, 4) / 4, 1, 2, 3, 4 /
3128+
3129+ DATA (FKS_J_FROM_I_D(3, 5, JPOS), JPOS = 0, 4) / 4, 1, 2, 3, 4 /
3130+
3131+
3132+C
3133+C Particle type:
3134+C octet = 8, triplet = 3, singlet = 1
3135+ DATA (PARTICLE_TYPE_D(1, IPOS), IPOS=1, NEXTERNAL) / 3, 3, 3,
3136+ $ -3, 8 /
3137+ DATA (PARTICLE_TYPE_D(2, IPOS), IPOS=1, NEXTERNAL) / 3, 3, 3,
3138+ $ -3, 8 /
3139+ DATA (PARTICLE_TYPE_D(3, IPOS), IPOS=1, NEXTERNAL) / 3, 3, 3,
3140+ $ -3, 8 /
3141+
3142+C
3143+C Particle type according to PDG:
3144+C
3145+ DATA (PDG_TYPE_D(1, IPOS), IPOS=1, NEXTERNAL) / 6, 5, 2, -1, 21 /
3146+ DATA (PDG_TYPE_D(2, IPOS), IPOS=1, NEXTERNAL) / 6, 5, 2, -1, 21 /
3147+ DATA (PDG_TYPE_D(3, IPOS), IPOS=1, NEXTERNAL) / 6, 5, 2, -1, 21 /
3148+
3149+C
3150+C Particle charge:
3151+C charge is set 0. with QCD corrections, which is irrelevant
3152+ DATA (PARTICLE_CHARGE_D(1, IPOS), IPOS=1, NEXTERNAL) /
3153+ $ 0.000000000000000D0, 0.000000000000000D0, 0.000000000000000
3154+ $ D0, 0.000000000000000D0, 0.000000000000000D0 /
3155+ DATA (PARTICLE_CHARGE_D(2, IPOS), IPOS=1, NEXTERNAL) /
3156+ $ 0.000000000000000D0, 0.000000000000000D0, 0.000000000000000
3157+ $ D0, 0.000000000000000D0, 0.000000000000000D0 /
3158+ DATA (PARTICLE_CHARGE_D(3, IPOS), IPOS=1, NEXTERNAL) /
3159+ $ 0.000000000000000D0, 0.000000000000000D0, 0.000000000000000
3160+ $ D0, 0.000000000000000D0, 0.000000000000000D0 /
3161+
3162
3163=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%get_color.f'
3164--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%get_color.f 1970-01-01 00:00:00 +0000
3165+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%get_color.f 2015-10-20 10:56:39 +0000
3166@@ -0,0 +1,54 @@
3167+ FUNCTION GET_COLOR(IPDG)
3168+ IMPLICIT NONE
3169+ INTEGER GET_COLOR, IPDG
3170+
3171+ IF(IPDG.EQ.-24)THEN
3172+ GET_COLOR=1
3173+ RETURN
3174+ ELSE IF(IPDG.EQ.-6)THEN
3175+ GET_COLOR=-3
3176+ RETURN
3177+ ELSE IF(IPDG.EQ.-5)THEN
3178+ GET_COLOR=-3
3179+ RETURN
3180+ ELSE IF(IPDG.EQ.-3)THEN
3181+ GET_COLOR=-3
3182+ RETURN
3183+ ELSE IF(IPDG.EQ.-2)THEN
3184+ GET_COLOR=-3
3185+ RETURN
3186+ ELSE IF(IPDG.EQ.-1)THEN
3187+ GET_COLOR=-3
3188+ RETURN
3189+ ELSE IF(IPDG.EQ.1)THEN
3190+ GET_COLOR=3
3191+ RETURN
3192+ ELSE IF(IPDG.EQ.2)THEN
3193+ GET_COLOR=3
3194+ RETURN
3195+ ELSE IF(IPDG.EQ.4)THEN
3196+ GET_COLOR=3
3197+ RETURN
3198+ ELSE IF(IPDG.EQ.5)THEN
3199+ GET_COLOR=3
3200+ RETURN
3201+ ELSE IF(IPDG.EQ.6)THEN
3202+ GET_COLOR=3
3203+ RETURN
3204+ ELSE IF(IPDG.EQ.21)THEN
3205+ GET_COLOR=8
3206+ RETURN
3207+ ELSE IF(IPDG.EQ.24)THEN
3208+ GET_COLOR=1
3209+ RETURN
3210+ ELSE IF(IPDG.EQ.7)THEN
3211+C This is dummy particle used in multiparticle vertices
3212+ GET_COLOR=2
3213+ RETURN
3214+ ELSE
3215+ WRITE(*,*)'Error: No color given for pdg ',IPDG
3216+ GET_COLOR=0
3217+ RETURN
3218+ ENDIF
3219+ END
3220+
3221
3222=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%leshouche_decl.inc'
3223--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%leshouche_decl.inc 1970-01-01 00:00:00 +0000
3224+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%leshouche_decl.inc 2015-10-20 10:56:39 +0000
3225@@ -0,0 +1,6 @@
3226+ INTEGER MAXPROC_USED, MAXFLOW_USED
3227+ PARAMETER (MAXPROC_USED = 2)
3228+ PARAMETER (MAXFLOW_USED = 2)
3229+ INTEGER IDUP_D(3,5,MAXPROC_USED)
3230+ INTEGER MOTHUP_D(3,2,5,MAXPROC_USED)
3231+ INTEGER ICOLUP_D(3,2,5,MAXFLOW_USED)
3232
3233=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%matrix_1.f'
3234--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%matrix_1.f 1970-01-01 00:00:00 +0000
3235+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%matrix_1.f 2015-10-20 10:56:39 +0000
3236@@ -0,0 +1,194 @@
3237+ SUBROUTINE SMATRIX_1(P,ANS)
3238+C
3239+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
3240+C By the MadGraph5_aMC@NLO Development Team
3241+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
3242+C
3243+C Returns amplitude squared summed/avg over colors
3244+C and helicities
3245+C for the point in phase space P(0:3,NEXTERNAL)
3246+C
3247+C Process: t > b u d~ g WEIGHTED=5 QED=2 [ real = QCD ]
3248+C Process: t > b c s~ g WEIGHTED=5 QED=2 [ real = QCD ]
3249+C
3250+ IMPLICIT NONE
3251+C
3252+C CONSTANTS
3253+C
3254+ INCLUDE 'nexternal.inc'
3255+ INTEGER NCOMB
3256+ PARAMETER ( NCOMB=32)
3257+C
3258+C ARGUMENTS
3259+C
3260+ REAL*8 P(0:3,NEXTERNAL),ANS
3261+C
3262+C LOCAL VARIABLES
3263+C
3264+ INTEGER IHEL,IDEN,I,T_IDENT(NCOMB)
3265+ REAL*8 MATRIX_1
3266+ REAL*8 T,T_SAVE(NCOMB)
3267+ SAVE T_SAVE,T_IDENT
3268+ INTEGER NHEL(NEXTERNAL,NCOMB)
3269+ DATA (NHEL(I, 1),I=1,5) / 1,-1,-1, 1,-1/
3270+ DATA (NHEL(I, 2),I=1,5) / 1,-1,-1, 1, 1/
3271+ DATA (NHEL(I, 3),I=1,5) / 1,-1,-1,-1,-1/
3272+ DATA (NHEL(I, 4),I=1,5) / 1,-1,-1,-1, 1/
3273+ DATA (NHEL(I, 5),I=1,5) / 1,-1, 1, 1,-1/
3274+ DATA (NHEL(I, 6),I=1,5) / 1,-1, 1, 1, 1/
3275+ DATA (NHEL(I, 7),I=1,5) / 1,-1, 1,-1,-1/
3276+ DATA (NHEL(I, 8),I=1,5) / 1,-1, 1,-1, 1/
3277+ DATA (NHEL(I, 9),I=1,5) / 1, 1,-1, 1,-1/
3278+ DATA (NHEL(I, 10),I=1,5) / 1, 1,-1, 1, 1/
3279+ DATA (NHEL(I, 11),I=1,5) / 1, 1,-1,-1,-1/
3280+ DATA (NHEL(I, 12),I=1,5) / 1, 1,-1,-1, 1/
3281+ DATA (NHEL(I, 13),I=1,5) / 1, 1, 1, 1,-1/
3282+ DATA (NHEL(I, 14),I=1,5) / 1, 1, 1, 1, 1/
3283+ DATA (NHEL(I, 15),I=1,5) / 1, 1, 1,-1,-1/
3284+ DATA (NHEL(I, 16),I=1,5) / 1, 1, 1,-1, 1/
3285+ DATA (NHEL(I, 17),I=1,5) /-1,-1,-1, 1,-1/
3286+ DATA (NHEL(I, 18),I=1,5) /-1,-1,-1, 1, 1/
3287+ DATA (NHEL(I, 19),I=1,5) /-1,-1,-1,-1,-1/
3288+ DATA (NHEL(I, 20),I=1,5) /-1,-1,-1,-1, 1/
3289+ DATA (NHEL(I, 21),I=1,5) /-1,-1, 1, 1,-1/
3290+ DATA (NHEL(I, 22),I=1,5) /-1,-1, 1, 1, 1/
3291+ DATA (NHEL(I, 23),I=1,5) /-1,-1, 1,-1,-1/
3292+ DATA (NHEL(I, 24),I=1,5) /-1,-1, 1,-1, 1/
3293+ DATA (NHEL(I, 25),I=1,5) /-1, 1,-1, 1,-1/
3294+ DATA (NHEL(I, 26),I=1,5) /-1, 1,-1, 1, 1/
3295+ DATA (NHEL(I, 27),I=1,5) /-1, 1,-1,-1,-1/
3296+ DATA (NHEL(I, 28),I=1,5) /-1, 1,-1,-1, 1/
3297+ DATA (NHEL(I, 29),I=1,5) /-1, 1, 1, 1,-1/
3298+ DATA (NHEL(I, 30),I=1,5) /-1, 1, 1, 1, 1/
3299+ DATA (NHEL(I, 31),I=1,5) /-1, 1, 1,-1,-1/
3300+ DATA (NHEL(I, 32),I=1,5) /-1, 1, 1,-1, 1/
3301+ LOGICAL GOODHEL(NCOMB)
3302+ DATA GOODHEL/NCOMB*.FALSE./
3303+ INTEGER NTRY
3304+ DATA NTRY/0/
3305+ DATA IDEN/ 6/
3306+C ----------
3307+C BEGIN CODE
3308+C ----------
3309+ NTRY=NTRY+1
3310+ ANS = 0D0
3311+ DO IHEL=1,NCOMB
3312+ IF (GOODHEL(IHEL) .OR. NTRY .LT. 2) THEN
3313+ IF (NTRY.LT.2) THEN
3314+C for the first ps-point, check for helicities that give
3315+C identical matrix elements
3316+ T=MATRIX_1(P ,NHEL(1,IHEL))
3317+ T_SAVE(IHEL)=T
3318+ T_IDENT(IHEL)=-1
3319+ DO I=1,IHEL-1
3320+ IF (T.EQ.0D0) EXIT
3321+ IF (T_SAVE(I).EQ.0D0) CYCLE
3322+ IF (ABS(T/T_SAVE(I)-1D0) .LT. 1D-12) THEN
3323+C WRITE (*,*) 'FOUND IDENTICAL',T,IHEL,T_SAVE(I),I
3324+ T_IDENT(IHEL) = I
3325+ ENDIF
3326+ ENDDO
3327+ ELSE
3328+ IF (T_IDENT(IHEL).GT.0) THEN
3329+C if two helicity states are identical, dont recompute
3330+ T=T_SAVE(T_IDENT(IHEL))
3331+ T_SAVE(IHEL)=T
3332+ ELSE
3333+ T=MATRIX_1(P ,NHEL(1,IHEL))
3334+ T_SAVE(IHEL)=T
3335+ ENDIF
3336+ ENDIF
3337+C add to the sum of helicities
3338+ ANS=ANS+T
3339+ IF (T .NE. 0D0 .AND. .NOT. GOODHEL(IHEL)) THEN
3340+ GOODHEL(IHEL)=.TRUE.
3341+ ENDIF
3342+ ENDIF
3343+ ENDDO
3344+ ANS=ANS/DBLE(IDEN)
3345+ END
3346+
3347+
3348+ REAL*8 FUNCTION MATRIX_1(P,NHEL)
3349+C
3350+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
3351+C By the MadGraph5_aMC@NLO Development Team
3352+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
3353+C
3354+C Returns amplitude squared summed/avg over colors
3355+C for the point with external lines W(0:6,NEXTERNAL)
3356+C
3357+C Process: t > b u d~ g WEIGHTED=5 QED=2 [ real = QCD ]
3358+C Process: t > b c s~ g WEIGHTED=5 QED=2 [ real = QCD ]
3359+C
3360+ IMPLICIT NONE
3361+C
3362+C CONSTANTS
3363+C
3364+ INTEGER NGRAPHS
3365+ PARAMETER (NGRAPHS=4)
3366+ INTEGER NWAVEFUNCS, NCOLOR
3367+ PARAMETER (NWAVEFUNCS=7, NCOLOR=2)
3368+ REAL*8 ZERO
3369+ PARAMETER (ZERO=0D0)
3370+ COMPLEX*16 IMAG1
3371+ PARAMETER (IMAG1=(0D0,1D0))
3372+ INCLUDE 'nexternal.inc'
3373+ INCLUDE 'coupl.inc'
3374+C
3375+C ARGUMENTS
3376+C
3377+ REAL*8 P(0:3,NEXTERNAL)
3378+ INTEGER NHEL(NEXTERNAL)
3379+C
3380+C LOCAL VARIABLES
3381+C
3382+ INTEGER I,J
3383+ INTEGER IC(NEXTERNAL)
3384+ DATA IC /NEXTERNAL*1/
3385+ REAL*8 DENOM(NCOLOR), CF(NCOLOR,NCOLOR)
3386+ COMPLEX*16 ZTEMP, AMP(NGRAPHS), JAMP(NCOLOR), W(8,NWAVEFUNCS)
3387+C
3388+C COLOR DATA
3389+C
3390+ DATA DENOM(1)/1/
3391+ DATA (CF(I, 1),I= 1, 2) / 12, 0/
3392+C 1 T(2,1) T(5,3,4)
3393+ DATA DENOM(2)/1/
3394+ DATA (CF(I, 2),I= 1, 2) / 0, 12/
3395+C 1 T(3,4) T(5,2,1)
3396+C ----------
3397+C BEGIN CODE
3398+C ----------
3399+ CALL IXXXXX(P(0,1),MDL_MT,NHEL(1),+1*IC(1),W(1,1))
3400+ CALL OXXXXX(P(0,2),MDL_MB,NHEL(2),+1*IC(2),W(1,2))
3401+ CALL OXXXXX(P(0,3),ZERO,NHEL(3),+1*IC(3),W(1,3))
3402+ CALL IXXXXX(P(0,4),ZERO,NHEL(4),-1*IC(4),W(1,4))
3403+ CALL VXXXXX(P(0,5),ZERO,NHEL(5),+1*IC(5),W(1,5))
3404+ CALL FFV1_1(W(1,2),W(1,5),GC_11,MDL_MB,ZERO,W(1,6))
3405+ CALL FFV2_3(W(1,4),W(1,3),GC_100,MDL_MW,MDL_WW,W(1,7))
3406+C Amplitude(s) for diagram number 1
3407+ CALL FFV2_0(W(1,1),W(1,6),W(1,7),GC_100,AMP(1))
3408+ CALL FFV2_1(W(1,2),W(1,7),GC_100,MDL_MT,MDL_WT,W(1,6))
3409+C Amplitude(s) for diagram number 2
3410+ CALL FFV1_0(W(1,1),W(1,6),W(1,5),GC_11,AMP(2))
3411+ CALL FFV1_1(W(1,3),W(1,5),GC_11,ZERO,ZERO,W(1,6))
3412+ CALL FFV2_3(W(1,4),W(1,6),GC_100,MDL_MW,MDL_WW,W(1,7))
3413+C Amplitude(s) for diagram number 3
3414+ CALL FFV2_0(W(1,1),W(1,2),W(1,7),GC_100,AMP(3))
3415+ CALL FFV1_2(W(1,4),W(1,5),GC_11,ZERO,ZERO,W(1,7))
3416+ CALL FFV2_3(W(1,7),W(1,3),GC_100,MDL_MW,MDL_WW,W(1,5))
3417+C Amplitude(s) for diagram number 4
3418+ CALL FFV2_0(W(1,1),W(1,2),W(1,5),GC_100,AMP(4))
3419+ JAMP(1)=-AMP(3)-AMP(4)
3420+ JAMP(2)=-AMP(1)-AMP(2)
3421+ MATRIX_1 = 0.D0
3422+ DO I = 1, NCOLOR
3423+ ZTEMP = (0.D0,0.D0)
3424+ DO J = 1, NCOLOR
3425+ ZTEMP = ZTEMP + CF(J,I)*JAMP(J)
3426+ ENDDO
3427+ MATRIX_1 = MATRIX_1+ZTEMP*DCONJG(JAMP(I))/DENOM(I)
3428+ ENDDO
3429+ END
3430+
3431
3432=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nFKSconfigs.inc'
3433--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nFKSconfigs.inc 1970-01-01 00:00:00 +0000
3434+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nFKSconfigs.inc 2015-10-20 10:56:39 +0000
3435@@ -0,0 +1,4 @@
3436+ INTEGER FKS_CONFIGS
3437+ PARAMETER (FKS_CONFIGS=3)
3438+
3439+
3440
3441=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ncombs.inc'
3442--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ncombs.inc 1970-01-01 00:00:00 +0000
3443+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ncombs.inc 2015-10-20 10:56:39 +0000
3444@@ -0,0 +1,2 @@
3445+ INTEGER N_MAX_CL
3446+ PARAMETER (N_MAX_CL=32)
3447
3448=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nexternal.inc'
3449--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nexternal.inc 1970-01-01 00:00:00 +0000
3450+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%nexternal.inc 2015-10-20 10:56:39 +0000
3451@@ -0,0 +1,4 @@
3452+ INTEGER NEXTERNAL
3453+ PARAMETER (NEXTERNAL=5)
3454+ INTEGER NINCOMING
3455+ PARAMETER (NINCOMING=1)
3456
3457=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ngraphs.inc'
3458--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ngraphs.inc 1970-01-01 00:00:00 +0000
3459+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%ngraphs.inc 2015-10-20 10:56:39 +0000
3460@@ -0,0 +1,2 @@
3461+ INTEGER N_MAX_CG
3462+ PARAMETER (N_MAX_CG=4)
3463
3464=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_1.f'
3465--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_1.f 1970-01-01 00:00:00 +0000
3466+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_1.f 2015-10-20 10:56:39 +0000
3467@@ -0,0 +1,98 @@
3468+ SUBROUTINE DLUM_1(LUM)
3469+C ****************************************************
3470+C
3471+C Generated by MadGraph5_aMC@NLO v. %(version)s, %(date)s
3472+C By the MadGraph5_aMC@NLO Development Team
3473+C Visit launchpad.net/madgraph5 and amcatnlo.web.cern.ch
3474+C RETURNS PARTON LUMINOSITIES FOR MADFKS
3475+C
3476+C
3477+C Process: t > b u d~ g WEIGHTED=5 QED=2 [ real = QCD ]
3478+C Process: t > b c s~ g WEIGHTED=5 QED=2 [ real = QCD ]
3479+C
3480+C ****************************************************
3481+C
3482+ IMPLICIT NONE
3483+C
3484+C CONSTANTS
3485+C
3486+C
3487+ INCLUDE 'genps.inc'
3488+ INCLUDE 'nexternal.inc'
3489+ DOUBLE PRECISION CONV
3490+ PARAMETER (CONV=389379660D0) !CONV TO PICOBARNS
3491+C
3492+C ARGUMENTS
3493+C
3494+C
3495+ DOUBLE PRECISION PP(0:3,NEXTERNAL), LUM
3496+C
3497+C LOCAL VARIABLES
3498+C
3499+C
3500+ INTEGER I, ICROSS,ITYPE,LP
3501+ DOUBLE PRECISION P1(0:3,NEXTERNAL)
3502+
3503+ DOUBLE PRECISION XPQ(-7:7)
3504+C
3505+C EXTERNAL FUNCTIONS
3506+C
3507+C
3508+ DOUBLE PRECISION ALPHAS2,REWGT,PDG2PDF
3509+C
3510+C GLOBAL VARIABLES
3511+C
3512+C
3513+ INTEGER IPROC
3514+ DOUBLE PRECISION PD(0:MAXPROC)
3515+ COMMON /SUBPROC/ PD, IPROC
3516+ INCLUDE 'coupl.inc'
3517+ INCLUDE 'run.inc'
3518+ INTEGER IMIRROR
3519+ COMMON/CMIRROR/IMIRROR
3520+C
3521+C DATA
3522+C
3523+C
3524+
3525+ DATA ICROSS/1/
3526+C ----------
3527+C
3528+C BEGIN CODE
3529+C
3530+C ----------
3531+C
3532+ LUM = 0D0
3533+ IF (IMIRROR.EQ.2) THEN
3534+ PD(0) = 0D0
3535+ IPROC = 0
3536+ IPROC=IPROC+1 ! t > b u d~ g
3537+ PD(IPROC) = 1D0
3538+
3539+ PD(0)=PD(0)+PD(IPROC)
3540+ IPROC=IPROC+1 ! t > b c s~ g
3541+ PD(IPROC) = 1D0
3542+
3543+ PD(0)=PD(0)+PD(IPROC)
3544+ ELSE
3545+ PD(0) = 0D0
3546+ IPROC = 0
3547+ IPROC=IPROC+1 ! t > b u d~ g
3548+ PD(IPROC) = 1D0
3549+
3550+ PD(0)=PD(0)+PD(IPROC)
3551+ IPROC=IPROC+1 ! t > b c s~ g
3552+ PD(IPROC) = 1D0
3553+
3554+ PD(0)=PD(0)+PD(IPROC)
3555+ ENDIF
3556+ DO I=1,IPROC
3557+ IF (NINCOMING.EQ.2) THEN
3558+ LUM = LUM + PD(I) * CONV
3559+ ELSE
3560+ LUM = LUM + PD(I)
3561+ ENDIF
3562+ ENDDO
3563+ RETURN
3564+ END
3565+
3566
3567=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_chooser.f'
3568--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_chooser.f 1970-01-01 00:00:00 +0000
3569+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%parton_lum_chooser.f 2015-10-20 10:56:39 +0000
3570@@ -0,0 +1,21 @@
3571+ DOUBLE PRECISION FUNCTION DLUM()
3572+ IMPLICIT NONE
3573+ INCLUDE 'timing_variables.inc'
3574+ INTEGER NFKSPROCESS
3575+ COMMON/C_NFKSPROCESS/NFKSPROCESS
3576+ CALL CPU_TIME(TBEFORE)
3577+ IF (NFKSPROCESS.EQ.1) THEN
3578+ CALL DLUM_1(DLUM)
3579+ ELSEIF (NFKSPROCESS.EQ.2) THEN
3580+ CALL DLUM_1(DLUM)
3581+ ELSEIF (NFKSPROCESS.EQ.3) THEN
3582+ CALL DLUM_1(DLUM)
3583+ ELSE
3584+ WRITE(*,*) 'ERROR: invalid n in dlum :', NFKSPROCESS
3585+ STOP
3586+ ENDIF
3587+ CALL CPU_TIME(TAFTER)
3588+ TPDF = TPDF + (TAFTER-TBEFORE)
3589+ RETURN
3590+ END
3591+
3592
3593=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%pmass.inc'
3594--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%pmass.inc 1970-01-01 00:00:00 +0000
3595+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%pmass.inc 2015-10-20 10:56:39 +0000
3596@@ -0,0 +1,5 @@
3597+ PMASS(1)=ABS(MDL_MT)
3598+ PMASS(2)=ABS(MDL_MB)
3599+ PMASS(3)=ZERO
3600+ PMASS(4)=ZERO
3601+ PMASS(5)=ZERO
3602
3603=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_from_born_configs.inc'
3604--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_from_born_configs.inc 1970-01-01 00:00:00 +0000
3605+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_from_born_configs.inc 2015-10-20 10:56:39 +0000
3606@@ -0,0 +1,5 @@
3607+ INTEGER IRFBC
3608+ INTEGER REAL_FROM_BORN_CONF(1,3)
3609+ DATA (REAL_FROM_BORN_CONF(IRFBC,1),IRFBC=1,1) /1/
3610+ DATA (REAL_FROM_BORN_CONF(IRFBC,2),IRFBC=1,1) /3/
3611+ DATA (REAL_FROM_BORN_CONF(IRFBC,3),IRFBC=1,1) /4/
3612
3613=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_me_chooser.f'
3614--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_me_chooser.f 1970-01-01 00:00:00 +0000
3615+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%real_me_chooser.f 2015-10-20 10:56:39 +0000
3616@@ -0,0 +1,20 @@
3617+ SUBROUTINE SMATRIX_REAL(P, WGT)
3618+ IMPLICIT NONE
3619+ INCLUDE 'nexternal.inc'
3620+ DOUBLE PRECISION P(0:3, NEXTERNAL)
3621+ DOUBLE PRECISION WGT
3622+ INTEGER NFKSPROCESS
3623+ COMMON/C_NFKSPROCESS/NFKSPROCESS
3624+ IF (NFKSPROCESS.EQ.1) THEN
3625+ CALL SMATRIX_1(P, WGT)
3626+ ELSEIF (NFKSPROCESS.EQ.2) THEN
3627+ CALL SMATRIX_1(P, WGT)
3628+ ELSEIF (NFKSPROCESS.EQ.3) THEN
3629+ CALL SMATRIX_1(P, WGT)
3630+ ELSE
3631+ WRITE(*,*) 'ERROR: invalid n in real_matrix :', NFKSPROCESS
3632+ STOP
3633+ ENDIF
3634+ RETURN
3635+ END
3636+
3637
3638=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf.f'
3639--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf.f 1970-01-01 00:00:00 +0000
3640+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf.f 2015-10-20 10:56:39 +0000
3641@@ -0,0 +1,45 @@
3642+ SUBROUTINE SBORN_SF(P_BORN,M,N,WGT)
3643+ IMPLICIT NONE
3644+ INCLUDE 'nexternal.inc'
3645+ DOUBLE PRECISION P_BORN(0:3,NEXTERNAL-1),WGT
3646+ DOUBLE COMPLEX WGT1(2)
3647+ INTEGER M,N
3648+
3649+C b_sf_001 links partons 1 and 1
3650+ IF (M.EQ.1 .AND. N.EQ.1) THEN
3651+ CALL SB_SF_001(P_BORN,WGT)
3652+
3653+C b_sf_002 links partons 1 and 2
3654+ ELSEIF ((M.EQ.1 .AND. N.EQ.2).OR.(M.EQ.2 .AND. N.EQ.1)) THEN
3655+ CALL SB_SF_002(P_BORN,WGT)
3656+
3657+C b_sf_003 links partons 1 and 3
3658+ ELSEIF ((M.EQ.1 .AND. N.EQ.3).OR.(M.EQ.3 .AND. N.EQ.1)) THEN
3659+ CALL SB_SF_003(P_BORN,WGT)
3660+
3661+C b_sf_004 links partons 1 and 4
3662+ ELSEIF ((M.EQ.1 .AND. N.EQ.4).OR.(M.EQ.4 .AND. N.EQ.1)) THEN
3663+ CALL SB_SF_004(P_BORN,WGT)
3664+
3665+C b_sf_005 links partons 2 and 2
3666+ ELSEIF (M.EQ.2 .AND. N.EQ.2) THEN
3667+ CALL SB_SF_005(P_BORN,WGT)
3668+
3669+C b_sf_006 links partons 2 and 3
3670+ ELSEIF ((M.EQ.2 .AND. N.EQ.3).OR.(M.EQ.3 .AND. N.EQ.2)) THEN
3671+ CALL SB_SF_006(P_BORN,WGT)
3672+
3673+C b_sf_007 links partons 2 and 4
3674+ ELSEIF ((M.EQ.2 .AND. N.EQ.4).OR.(M.EQ.4 .AND. N.EQ.2)) THEN
3675+ CALL SB_SF_007(P_BORN,WGT)
3676+
3677+C b_sf_008 links partons 3 and 4
3678+ ELSEIF ((M.EQ.3 .AND. N.EQ.4).OR.(M.EQ.4 .AND. N.EQ.3)) THEN
3679+ CALL SB_SF_008(P_BORN,WGT)
3680+
3681+ ELSE
3682+ WGT = 0D0
3683+ ENDIF
3684+
3685+ RETURN
3686+ END
3687
3688=== added file 'tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf_dum.f'
3689--- tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf_dum.f 1970-01-01 00:00:00 +0000
3690+++ tests/input_files/IOTestsComparison/IOExportFKSTest/test_tdecay_fksreal/%SubProcesses%P0_t_budx%sborn_sf_dum.f 2015-10-20 10:56:39 +0000
3691@@ -0,0 +1,13 @@
3692+ SUBROUTINE SBORN_SF(P_BORN,M,N,WGT)
3693+ IMPLICIT NONE
3694+ INCLUDE 'nexternal.inc'
3695+ DOUBLE PRECISION P_BORN(0:3,NEXTERNAL-1),WGT
3696+ DOUBLE COMPLEX WGT1(2)
3697+ INTEGER M,N
3698+
3699+C This is a dummy function because
3700+C this subdir has no soft singularities
3701+ WGT = 0D0
3702+
3703+ RETURN
3704+ END
3705
3706=== modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc'
3707--- tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc 2015-08-14 03:43:29 +0000
3708+++ tests/input_files/IOTestsComparison/long_ML_SMQCD_default/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc 2015-10-20 10:56:39 +0000
3709@@ -9,6 +9,8 @@
3710 DOUBLE COMPLEX REGLOGM
3711 DOUBLE COMPLEX RECMS
3712 DOUBLE COMPLEX ARG
3713+
3714+
3715 COMPLEX*32 MP_COND
3716 COMPLEX*32 MP_CONDIF
3717 COMPLEX*32 MP_REGLOG
3718@@ -16,3 +18,5 @@
3719 COMPLEX*32 MP_REGLOGM
3720 COMPLEX*32 MP_RECMS
3721 COMPLEX*32 MP_ARG
3722+
3723+
3724
3725=== modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc'
3726--- tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc 2015-08-14 03:43:29 +0000
3727+++ tests/input_files/IOTestsComparison/long_ML_SMQCD_default/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc 2015-10-20 10:56:39 +0000
3728@@ -9,6 +9,8 @@
3729 DOUBLE COMPLEX REGLOGM
3730 DOUBLE COMPLEX RECMS
3731 DOUBLE COMPLEX ARG
3732+
3733+
3734 COMPLEX*32 MP_COND
3735 COMPLEX*32 MP_CONDIF
3736 COMPLEX*32 MP_REGLOG
3737@@ -16,3 +18,5 @@
3738 COMPLEX*32 MP_REGLOGM
3739 COMPLEX*32 MP_RECMS
3740 COMPLEX*32 MP_ARG
3741+
3742+
3743
3744=== modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc'
3745--- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc 2015-08-14 03:43:29 +0000
3746+++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/dux_mumvmxg/%..%..%Source%MODEL%model_functions.inc 2015-10-20 10:56:39 +0000
3747@@ -9,6 +9,8 @@
3748 DOUBLE COMPLEX REGLOGM
3749 DOUBLE COMPLEX RECMS
3750 DOUBLE COMPLEX ARG
3751+
3752+
3753 COMPLEX*32 MP_COND
3754 COMPLEX*32 MP_CONDIF
3755 COMPLEX*32 MP_REGLOG
3756@@ -16,3 +18,5 @@
3757 COMPLEX*32 MP_REGLOGM
3758 COMPLEX*32 MP_RECMS
3759 COMPLEX*32 MP_ARG
3760+
3761+
3762
3763=== modified file 'tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc'
3764--- tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc 2015-08-14 03:43:29 +0000
3765+++ tests/input_files/IOTestsComparison/long_ML_SMQCD_optimized/gg_wmtbx/%..%..%Source%MODEL%model_functions.inc 2015-10-20 10:56:39 +0000
3766@@ -9,6 +9,8 @@
3767 DOUBLE COMPLEX REGLOGM
3768 DOUBLE COMPLEX RECMS
3769 DOUBLE COMPLEX ARG
3770+
3771+
3772 COMPLEX*32 MP_COND
3773 COMPLEX*32 MP_CONDIF
3774 COMPLEX*32 MP_REGLOG
3775@@ -16,3 +18,5 @@
3776 COMPLEX*32 MP_REGLOGM
3777 COMPLEX*32 MP_RECMS
3778 COMPLEX*32 MP_ARG
3779+
3780+
3781
3782=== modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.inc'
3783--- tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.inc 2015-08-14 03:43:29 +0000
3784+++ tests/input_files/IOTestsComparison/short_ML_SMQCD_LoopInduced/gg_hh/%..%..%Source%MODEL%model_functions.inc 2015-10-20 10:56:39 +0000
3785@@ -9,6 +9,8 @@
3786 DOUBLE COMPLEX REGLOGM
3787 DOUBLE COMPLEX RECMS
3788 DOUBLE COMPLEX ARG
3789+
3790+
3791 COMPLEX*32 MP_COND
3792 COMPLEX*32 MP_CONDIF
3793 COMPLEX*32 MP_REGLOG
3794@@ -16,3 +18,5 @@
3795 COMPLEX*32 MP_REGLOGM
3796 COMPLEX*32 MP_RECMS
3797 COMPLEX*32 MP_ARG
3798+
3799+
3800
3801=== modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.inc'
3802--- tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.inc 2015-08-14 03:43:29 +0000
3803+++ tests/input_files/IOTestsComparison/short_ML_SMQCD_default/gg_ttx/%..%..%Source%MODEL%model_functions.inc 2015-10-20 10:56:39 +0000
3804@@ -9,6 +9,8 @@
3805 DOUBLE COMPLEX REGLOGM
3806 DOUBLE COMPLEX RECMS
3807 DOUBLE COMPLEX ARG
3808+
3809+
3810 COMPLEX*32 MP_COND
3811 COMPLEX*32 MP_CONDIF
3812 COMPLEX*32 MP_REGLOG
3813@@ -16,3 +18,5 @@
3814 COMPLEX*32 MP_REGLOGM
3815 COMPLEX*32 MP_RECMS
3816 COMPLEX*32 MP_ARG
3817+
3818+
3819
3820=== modified file 'tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.inc'
3821--- tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.inc 2015-08-14 03:43:29 +0000
3822+++ tests/input_files/IOTestsComparison/short_ML_SMQCD_optimized/gg_ttx/%..%..%Source%MODEL%model_functions.inc 2015-10-20 10:56:39 +0000
3823@@ -9,6 +9,8 @@
3824 DOUBLE COMPLEX REGLOGM
3825 DOUBLE COMPLEX RECMS
3826 DOUBLE COMPLEX ARG
3827+
3828+
3829 COMPLEX*32 MP_COND
3830 COMPLEX*32 MP_CONDIF
3831 COMPLEX*32 MP_REGLOG
3832@@ -16,3 +18,5 @@
3833 COMPLEX*32 MP_REGLOGM
3834 COMPLEX*32 MP_RECMS
3835 COMPLEX*32 MP_ARG
3836+
3837+
3838
3839=== modified file 'tests/unit_tests/iolibs/test_export_fks.py'
3840--- tests/unit_tests/iolibs/test_export_fks.py 2015-10-01 16:00:08 +0000
3841+++ tests/unit_tests/iolibs/test_export_fks.py 2015-10-20 10:56:39 +0000
3842@@ -68,6 +68,10 @@
3843 """ target: SubProcesses/[P0.*\/.+\.(inc|f)]"""
3844 self.generate(['p p > t t~ [real=QCD]'], 'sm')
3845
3846+ @IOTests.createIOTest()
3847+ def testIO_test_tdecay_fksreal(self):
3848+ """ target: SubProcesses/[P0.*\/.+\.(inc|f)]"""
3849+ self.generate(['t > j j b [real=QCD]'], 'sm')
3850
3851 @IOTests.createIOTest()
3852 def testIO_test_pptt_fks_loonly(self):

Subscribers

People subscribed via source and target branches

to all changes: