lp:~maddevelopers/mg5amcnlo/madweight

Created by Pierre Artoisenet and last modified

In this branch, madweight has been implemented into mg5.
Up to now, the modifications in madgraph itself are rather minimal (see below).
The branch passes all the tests:

./tests/test_manager.py

Ran 473 tests in 38.241s => OK

./tests/test_manager.py -p A

Ran 25 tests in 72.552s => OK

but I haven't added any test for madweight yet.

This preliminary version of madweight is still far from the one discussed at the 2011
mg meeting (in Rome) with Olivier, but it includes essentially all the features
of the previous mw version. The big advantage is that mg5 gives access to a much larger
class of matrix elements, which is actually the main motivation for implementing this
(preliminary) madweight version in mg5. I also implemented several new features, such as the
possibility to use the narrow width approximation, and the possibility to use MINT instead of
VEGAS for the adaptive MC integrator.

USAGE:

output madweight MY_DIR_NAME

creates a madweight directory associated with the generated process.
In this directory, madweight can be used in the same way as before.
When the user types
    ./bin/madweight
for the first time, she/he is asked to specify the tranfer function he wants to consider.

DESCRIPTION OF MODIFICATIONS:

modifications in cmd_interface.py
***************************************

add a new entry for madwight. The modifications are somewhat minimal, and can easily
be traced back with a diff

modifications in export_v4.py
*********************************

1) creation of a new class ProcessExporterFortranMW(ProcessExporterFortran).
   in analogy with the existing classes for madevent and for standalone

2) because several methods are now used BOTH for MW and for ME, I have moved
   these methods from class ProcessExporterFortranME to class
   ProcessExporterFortran. Because of this reorganization, it is harder to identify
   the real modifications with a simple "diff".
   These displaced methods are:

      write_leshouche_file
      get_leshouche_lines
      write_props_file
      write_maxamps_file

modification in the Template
*********************************

1. in setscales.f and setrun.f: comment lines with

      include 'genps.inc'

since none of the variables defined in genps.inc is used in setscales.f or setrun.f

2. add a "MadWeight" directory in Source, see the details below

3. add a script "madweight" in bin to prepare the Template for MadWeight
   (the script "madweight" is analog to the previously existing script "standalone")

modifications in the "Fortran part of MadWeight"
********************************************************

1. All the libraries have been made independent of the variable nexternal, which required
   slight modifications, such as

      nexternal -> max_particles
      max_branch -> max_branches
      double precision momenta(0:3,-max_branch:2*nexternal) -> double precision momenta(0:3,-max_branches:2*max_particles)
      double precision mvir2(-max_branch:2*nexternal) -> double precision mvir2(-max_branches:2*max_particles)

   the new parameters max_particles, max_branches are defined in the new include file "phasespace.inc".

   The fact that the libraries do not depend on "nexternal" also forced other slight modifications,
   such as

   FILL_plot(fct,weight) => FILL_plot(fct,weight,nexternal)

   since the plotting routines in the library "tools" do not know anything about nexternal

2. In the previous MadWeight version, there were many small files with one or two short routines.
   In the new version, beside the libraries, there are four premanent "MadWeight" fortran files:

      driver.f : the driver for the whole calculation
      gen_ps.f : routines connected with the generation of a phase-space point
      initialization.f : initialization routines, such as "global_init", ...
      permutation.f : all routines connected with the permutation of jets

   Note that the routines in next_perm.f have been moved into permutation.f, i.e. they are not part
   of the "tools" library since they depends on process-dependent variables (such as nexternal).

   Beside these permanent files, some files are created on fly, as in the previous version:

      d_choices.f
      main_code.f
      multi_channel.f
      call_TF.f (has been renamed)

3. NO CUTS ARE APPLIED (cuts.f, setcuts.f are not used anymore)

4. The Narrow Width Approximation has been implemented as an option.
   In the MadWeight_card.dat: nwa = .false. means no narrow width approximation
                               nwa = .true. means narrow width approximation ONLY FOR THE MAPPED BREIT-WIGNER DISTRIBUTIONS !!

5. A second integrator (mint) has been intorduced.
   In driver.f: integrator='m' means that mint is used
                  integrator='v' means that vegas is used

modifications in the "Python part of MadWeight"
********************************************************

1. A big modification is that the new version calculates ONLY the UN-NORMALIZED weights,
   i.e. cross sections are not evaluated anymore. The motivation of such a modification is
   that the weights must be normalized by the OBSERVED cross section, which cannot be calculated
   at the parton level. The directories MWP**** have been renamed into P**** (=standard MG names)

   I modified the files cluster.py and cluster_lib.py accordingly, but up to now
   I have taken care of "single machine" and "condor" only.

2. The analyser is still the one of the previous version of MadWeight. The only modification so far
   concerns the reading of the information on the topology of the decay chain. No information
   is read anymore in the proc_card.dat (topo info is read only from the files configs.inc and
   leshouche.inc). For this, I modified the file proc_info.py
   So MadWeight is (in principle) not limited anymore to the decay chain syntax.

3. In the previous version, information on the particles in the model was read from the file "particle.dat",
   which does not exist anymore. Currently the "pid_to_label" info, pid <-> mass/width info have been
   !!!HARDCODED!!! (sm only) in the file Cards.py. Obviously this will be removed in the future,
   when the analyser will be integrated in mg5 itself.

4. Other modifications here and there for the compatibility with mg5. Example given, the format
   of information in leshouche.inc has changed (there is now an additional index), so I had to change
   the script Cards.py accordingly.

Get this branch:
bzr branch lp:~maddevelopers/mg5amcnlo/madweight
Members of MadDevelopers can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
MadDevelopers
Project:
MadGraph5_aMC@NLO
Status:
Merged

Recent revisions

285. By Olivier Mattelaer

fix the unittest for the cuts

284. By Olivier Mattelaer

merge with latest 2.1.0

283. By Olivier Mattelaer

merge with 2.1.0

282. By Olivier Mattelaer

fixing a problem preventing the latest event to be submitted

281. By Olivier Mattelaer

fix case sensitive issue on MW edition of cards

280. By Olivier Mattelaer

merge with latest version of the code

279. By Olivier Mattelaer

change in the UpdateNote

278. By Olivier Mattelaer

Fix an error when trying to launch ./bin/madweight.py -6

277. By Olivier Mattelaer

Allow to restrict the channel of integration used via the MadWeight_card.
This should reduce the amount of time where the hardcoding of main_code.f is required.

276. By Olivier Mattelaer

put back cluster.py in normal mode

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers