Package madgraph :: Package loop :: Module loop_exporters :: Class LoopProcessExporterFortranSA
[hide private]
[frames] | no frames]

Class LoopProcessExporterFortranSA

source code

                                 object --+    
                                          |    
                        LoopExporterFortran --+
                                              |
                             object --+       |
                                      |       |
iolibs.export_v4.ProcessExporterFortran --+   |
                                          |   |
  iolibs.export_v4.ProcessExporterFortranSA --+
                                              |
                                             LoopProcessExporterFortranSA
Known Subclasses:

Class to take care of exporting a set of loop matrix elements in the Fortran format.

Instance Methods [hide private]
 
cat_coeff(self, ff_number, frac, is_imaginary, Nc_power, Nc_value=3)
Concatenate the coefficient information to reduce it to (fraction, is_imaginary)
source code
 
compiler_choice(self, compiler)
Different daughter classes might want different compilers.
source code
 
convert_model_to_mg4(self, model, wanted_lorentz=[], wanted_couplings=[])
Caches the aloha model created here when writing out the aloha fortran subroutine.
source code
 
copy_v4template(self, modelname)
Additional actions needed for setup of Template
source code
 
generate_general_replace_dict(self, matrix_element)
Generates the entries for the general replacement dictionary used for the different output codes for this exporter
source code
 
generate_loop_subprocess(self, matrix_element, fortran_model)
Generate the Pxxxxx directory for a loop subprocess in MG4 standalone, including the necessary loop_matrix.f, born_matrix.f and include files.
source code
 
generate_subprocess_directory_v4(self, matrix_element, fortran_model)
To overload the default name for this function such that the correct function is used when called from the command interface
source code
 
get_ME_identifier(self, matrix_element)
A function returning a string uniquely identifying the matrix element given in argument so that it can be used as a prefix to all MadLoop5 subroutines and common blocks related to it.
source code
 
get_amp_to_jamp_map(self, col_amps, n_amps)
Returns a list with element 'i' being a list of tuples corresponding to all apparition of amplitude number 'i' in the jamp number 'j' with coeff 'coeff_j'.
source code
 
get_color_matrix(self, matrix_element)
Return the color matrix definition lines.
source code
 
link_files_from_Subprocesses(self, proc_name='')
To link required files from the Subprocesses directory to the different P* ones
source code
 
make(self)
Compiles the additional dependences for loop (such as CutTools).
source code
 
make_model_symbolic_link(self)
Add the linking of the additional model files for multiple precision
source code
 
make_source_links(self)
In the loop output, we don't need the files from the Source folder
source code
 
split_HELASCALLS(self, writer, replace_dict, template_name, masterfile, helas_calls, entry_name, bunch_name, n_helas=2000, required_so_broadcaster='LOOP_REQ_SO_DONE', continue_label=1000)
Finish the code generation with splitting.
source code
 
turn_to_mp_calls(self, helas_calls_list) source code
 
write_CT_interface(self, writer, matrix_element, optimized_output=False)
Create the file CT_interface.f which contains the subroutine defining the loop HELAS-like calls along with the general interfacing subroutine.
source code
 
write_born_amps_and_wfs(self, writer, matrix_element, fortran_model, noSplit=False)
Writes out the code for the subroutine MP_BORN_AMPS_AND_WFS which computes just the external wavefunction and born amplitudes in multiple precision.
source code
 
write_bornmatrix(self, writer, matrix_element, fortran_model)
Create the born_matrix.f file for the born process as for a standard tree-level computation.
source code
 
write_check_sa(self, writer, matrix_element)
Writes out the steering code check_sa.
source code
 
write_improve_ps(self, writer, matrix_element)
Write out the improve_ps subroutines which modify the PS point given in input and slightly deform it to achieve exact onshellness on all external particles as well as perfect energy-momentum conservation
source code
 
write_loop_num(self, writer, matrix_element, fortran_model)
Create the file containing the core subroutine called by CutTools which contains the Helas calls building the loop
source code
 
write_loopmatrix(self, writer, matrix_element, fortran_model, noSplit=False)
Create the loop_matrix.f file.
source code
 
write_makefile_TIR(self, writer, link_tir_libs, tir_libs, tir_include=[])
Create the file makefile which links to the TIR libraries.
source code
 
write_matrix_element_v4(self, writer, matrix_element, fortran_model, proc_id='', config_map=[])
Writes loop_matrix.f, CT_interface.f and loop_num.f only
source code

Inherited from LoopExporterFortran: __init__, get_aloha_model, link_CutTools, write_mp_files

Inherited from iolibs.export_v4.ProcessExporterFortranSA: export_model_files, finalize_v4_directory, write_check_sa_splitOrders, write_source_makefile

Inherited from iolibs.export_v4.ProcessExporterFortran: coeff, export_helas, format_integer_list, get_JAMP_coefs, get_JAMP_lines, get_JAMP_lines_split_order, get_amp2_lines, get_color_data_lines, get_den_factor_line, get_helicity_lines, get_ic_line, get_icolamp_lines, get_leshouche_lines, get_mg5_info_lines, get_pdf_lines, get_process_info_lines, get_split_orders_lines, replace_make_opt_c_compiler, replace_make_opt_f_compiler, set_chosen_SO_index, set_compiler, set_cpp_compiler, set_fortran_compiler, write_configs_file, write_configs_file_from_diagrams, write_helamp_madspin, write_leshouche_file, write_maxamps_file, write_maxparticles_file, write_nexternal_file, write_nexternal_madspin, write_ngraphs_file, write_pmass_file, write_procdef_mg5, write_props_file

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  MadLoop_banner = 'write(*,*) \' ==============================...
  template_dir = '/Users/omatt/Documents/eclipse/mg5amcnlo/MG5_a...
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

compiler_choice(self, compiler)

source code 

Different daughter classes might want different compilers. Here, the gfortran compiler is used throughout the compilation (mandatory for CutTools written in f90)

Overrides: iolibs.export_v4.ProcessExporterFortranSA.compiler_choice

convert_model_to_mg4(self, model, wanted_lorentz=[], wanted_couplings=[])

source code 

Caches the aloha model created here when writing out the aloha fortran subroutine.

Overrides: iolibs.export_v4.ProcessExporterFortran.convert_model_to_mg4

copy_v4template(self, modelname)

source code 

Additional actions needed for setup of Template

Overrides: iolibs.export_v4.ProcessExporterFortran.copy_v4template

generate_loop_subprocess(self, matrix_element, fortran_model)

source code 

Generate the Pxxxxx directory for a loop subprocess in MG4 standalone, including the necessary loop_matrix.f, born_matrix.f and include files. Notice that this is too different from generate_subprocess_directory_v4 so that there is no point reusing this mother function.

generate_subprocess_directory_v4(self, matrix_element, fortran_model)

source code 

To overload the default name for this function such that the correct function is used when called from the command interface

Overrides: iolibs.export_v4.ProcessExporterFortran.generate_subprocess_directory_v4

get_ME_identifier(self, matrix_element)

source code 

A function returning a string uniquely identifying the matrix element given in argument so that it can be used as a prefix to all MadLoop5 subroutines and common blocks related to it. This allows to compile several processes into one library as requested by the BLHA (Binoth LesHouches Accord) guidelines.

get_amp_to_jamp_map(self, col_amps, n_amps)

source code 

Returns a list with element 'i' being a list of tuples corresponding to all apparition of amplitude number 'i' in the jamp number 'j' with coeff 'coeff_j'. The format of each tuple describing an apparition is (j, coeff_j). where coeff_j is of the form (Fraction, is_imag).

get_color_matrix(self, matrix_element)

source code 

Return the color matrix definition lines. This color matrix is of size NLOOPAMPSxNBORNAMPS and allows for squaring individually each Loop and Born amplitude.

make(self)

source code 

Compiles the additional dependences for loop (such as CutTools).

Overrides: iolibs.export_v4.ProcessExporterFortranSA.make

make_model_symbolic_link(self)

source code 

Add the linking of the additional model files for multiple precision

Overrides: iolibs.export_v4.ProcessExporterFortran.make_model_symbolic_link

make_source_links(self)

source code 

In the loop output, we don't need the files from the Source folder

Overrides: iolibs.export_v4.ProcessExporterFortran.make_source_links

split_HELASCALLS(self, writer, replace_dict, template_name, masterfile, helas_calls, entry_name, bunch_name, n_helas=2000, required_so_broadcaster='LOOP_REQ_SO_DONE', continue_label=1000)

source code 

Finish the code generation with splitting. Split the helas calls in the argument helas_calls into bunches of size n_helas and place them in dedicated subroutine with name <bunch_name>_i. Also setup the corresponding calls to these subroutine in the replace_dict dictionary under the entry entry_name.

write_check_sa(self, writer, matrix_element)

source code 

Writes out the steering code check_sa. In the optimized output mode, All the necessary entries in the replace_dictionary have already been set in write_loopmatrix because it is only there that one has access to the information about split orders.

write_matrix_element_v4(self, writer, matrix_element, fortran_model, proc_id='', config_map=[])

source code 

Writes loop_matrix.f, CT_interface.f and loop_num.f only

Overrides: iolibs.export_v4.ProcessExporterFortran.write_matrix_element_v4

Class Variable Details [hide private]

MadLoop_banner

Value:
'''write(*,*) \' =====================================================\
===================================== \'
write(*,*) \'{                                                        \
                                  }\'
write(*,*) \'{       \'//char(27)//\'[32m\'//\'                       \
                                                     \'//char(27)//\'[\
0m\'//\'       }\'
write(*,*) \'{       \'//char(27)//\'[32m\'//\'                       \
...

template_dir

Value:
'/Users/omatt/Documents/eclipse/mg5amcnlo/MG5_aMC_v2_2_1/madgraph/ioli\
bs/template_files/loop'