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

Class LoopProcessOptimizedExporterFortranSA

source code

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

Class to take care of exporting a set of loop matrix elements in the Fortran format which exploits the Pozzorini method of representing the loop numerators as polynomial to render its evaluations faster.

Instance Methods [hide private]
 
__init__(self, dir_path='', opt=None)
Initiate the LoopProcessOptimizedExporterFortranSA with directory information on where to find all the loop-related source files, like CutTools and TIR
source code
 
copy_template(self, model)
Additional actions needed to setup the Template.
source code
 
finalize(self, matrix_element, cmdhistory, MG5options, outputflag)
create the global information for loops
source code
 
fix_coef_specs(self, overall_max_lwf_spin, overall_max_loop_vert_rank)
If processes with different maximum loop wavefunction size or different maximum loop vertex rank have to be output together, then the file 'coef.inc' in the HELAS Source folder must contain the overall maximum of these quantities.
source code
 
get_context(self, matrix_element, **opts)
Additional contextual information which needs to be created for the optimized output.
source code
 
link_TIR(self, targetPath, libpath, libname, tir_name='TIR')
Link the TIR source directory inside the target path given in argument
source code
 
link_files_from_Subprocesses(self, proc_name)
Does the same as the mother routine except that it also links coef_specs.inc in the HELAS folder.
source code
 
loop_optimized_additional_template_setup(self)
Perform additional actions specific for this class when setting up the template with the copy_template function.
source code
 
set_group_loops(self, matrix_element)
Decides whether we must group loops or not for this matrix element
source code
 
set_optimized_output_specific_replace_dict_entries(self, matrix_element)
Specify the entries of the replacement dictionary which are specific to the optimized output and only relevant to it (the more general entries are set in the the mother class LoopProcessExporterFortranSA.
source code
 
setup_check_sa_replacement_dictionary(self, matrix_element, split_orders, squared_orders, amps_orders)
Sets up the replacement dictionary for the writeout of the steering file check_sa.f
source code
 
write_COLLIER_interface(self, writer, matrix_element)
Create the file COLLIER_interface.f
source code
 
write_CT_interface(self, writer, matrix_element)
We can re-use the mother one for the loop optimized output.
source code
 
write_GOLEM_interface(self, writer, matrix_element)
Create the file GOLEM_interface.f which does NOT contain the subroutine defining the loop HELAS-like calls along with the general interfacing subroutine.
source code
 
write_TIR_interface(self, writer, matrix_element)
Create the file TIR_interface.f which does NOT contain the subroutine defining the loop HELAS-like calls along with the general interfacing subroutine.
source code
 
write_color_flow_coefs_data_file(self, writer, color_amplitudes, color_basis)
Writes the file '(Loop|Born)ColorFlowCoefs.dat using the coefficients list of the color_amplitudes in the argument of this function.
source code
 
write_color_matrix_data_file(self, writer, col_matrix)
Writes out the files (Loop|Born)ColorFlowMatrix.dat corresponding to the color coefficients for JAMP(L|B)*JAMP(L|B).
source code
 
write_compute_color_flows(self, writer, matrix_element, config_map)
Writes the file compute_color_flows.f which uses the AMPL results from a common block to project them onto the color flow space so as to compute the JAMP quantities.
source code
 
write_global_specs(self, matrix_element_list, output_path=None)
From the list of matrix element, or the single matrix element, derive the global quantities to write in global_coef_specs.inc
source code
 
write_loop_matrix_element_v4(self, writer, matrix_element, fortran_model, group_number=None, proc_id=None, config_map=None)
Writes loop_matrix.f, CT_interface.f,TIR_interface.f,GOLEM_inteface.f and loop_num.f only but with the optimized FortranModel.
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, write_auxiliary_files=True)
Create the loop_matrix.f file.
source code
 
write_mp_compute_loop_coefs(self, writer, matrix_element, fortran_model)
Create the write_mp_compute_loop_coefs.f file.
source code
 
write_polynomial_subroutines(self, writer, matrix_element)
Subroutine to create all the subroutines relevant for handling the polynomials representing the loop numerator
source code
 
write_tir_cache_size_include(self, writer)
Write the file 'tir_cache_size.inc' which sets the size of the TIR cache the the user wishes to employ and the default value for it.
source code

Inherited from LoopProcessExporterFortranSA: cat_coeff, compiler_choice, convert_model, generate_general_replace_dict, generate_loop_subprocess, generate_subprocess_directory, get_ME_identifier, get_SubProc_folder_name, get_amp_to_jamp_map, get_color_matrix, loop_additional_template_setup, make, make_model_symbolic_link, make_source_links, split_HELASCALLS, turn_to_mp_calls, write_born_amps_and_wfs, write_bornmatrix, write_check_sa, write_f2py_check_sa, write_f2py_makefile, write_f2py_splitter, write_improve_ps, write_loop_makefile_definitions, write_process_info_file

Inherited from LoopExporterFortran: get_aloha_model, link_CutTools, write_mp_files

Inherited from iolibs.export_v4.ProcessExporterFortranSA: create_MA5_cards, export_model_files, write_check_sa_splitOrders, write_matrix_element_v4, write_procdef_mg5, write_source_makefile

Inherited from iolibs.export_v4.ProcessExporterFortran: coeff, create_default_madanalysis5_cards, create_proc_charac, create_run_card, export_helas, export_processes, 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_source_libraries_list, get_split_orders_lines, modify_grouping, pass_information_from_cmd, 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_pdf_opendata, write_pmass_file, write_props_file

Inherited from iolibs.export_v4.VirtualExporter: helas_call_writer_custom

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

Static Methods [hide private]

Inherited from iolibs.export_v4.VirtualExporter: custom_helas_call

Class Variables [hide private]
  all_tir = ['pjfry', 'iregi', 'ninja', 'golem', 'samurai', 'col...
  forbid_loop_grouping = False
  template_dir = '/Users/omattelaer/Documents/workspace/madgraph...

Inherited from LoopProcessExporterFortranSA: MadLoop_banner, madloop_makefile_name

Inherited from LoopExporterFortran: default_opt, include_names

Inherited from iolibs.export_v4.ProcessExporterFortranSA: matrix_template

Inherited from iolibs.export_v4.ProcessExporterFortran: grouped_mode

Inherited from iolibs.export_v4.VirtualExporter: check, exporter, output, sa_symmetry

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, dir_path='', opt=None)
(Constructor)

source code 

Initiate the LoopProcessOptimizedExporterFortranSA with directory information on where to find all the loop-related source files, like CutTools and TIR

Overrides: object.__init__

copy_template(self, model)

source code 

Additional actions needed to setup the Template.

Overrides: iolibs.export_v4.VirtualExporter.copy_template

finalize(self, matrix_element, cmdhistory, MG5options, outputflag)

source code 

create the global information for loops

Overrides: iolibs.export_v4.VirtualExporter.finalize

fix_coef_specs(self, overall_max_lwf_spin, overall_max_loop_vert_rank)

source code 

If processes with different maximum loop wavefunction size or different maximum loop vertex rank have to be output together, then the file 'coef.inc' in the HELAS Source folder must contain the overall maximum of these quantities. It is not safe though, and the user has been appropriatly warned at the output stage

get_context(self, matrix_element, **opts)

source code 

Additional contextual information which needs to be created for the optimized output.

Overrides: LoopProcessExporterFortranSA.get_context

link_files_from_Subprocesses(self, proc_name)

source code 

Does the same as the mother routine except that it also links coef_specs.inc in the HELAS folder.

Overrides: LoopProcessExporterFortranSA.link_files_from_Subprocesses

write_CT_interface(self, writer, matrix_element)

source code 

We can re-use the mother one for the loop optimized output.

Overrides: LoopProcessExporterFortranSA.write_CT_interface

write_compute_color_flows(self, writer, matrix_element, config_map)

source code 

Writes the file compute_color_flows.f which uses the AMPL results from a common block to project them onto the color flow space so as to compute the JAMP quantities. For loop induced processes, this file will also contain a subroutine computing AMPL**2 for madevent multichanneling.

write_loop_matrix_element_v4(self, writer, matrix_element, fortran_model, group_number=None, proc_id=None, config_map=None)

source code 

Writes loop_matrix.f, CT_interface.f,TIR_interface.f,GOLEM_inteface.f and loop_num.f only but with the optimized FortranModel. The arguments group_number and proc_id are just for the LoopInduced output with MadEvent and only used in get_ME_identifier.

Overrides: LoopProcessExporterFortranSA.write_loop_matrix_element_v4

write_loop_num(self, writer, matrix_element, fortran_model)

source code 

Create the file containing the core subroutine called by CutTools which contains the Helas calls building the loop

Overrides: LoopProcessExporterFortranSA.write_loop_num

write_loopmatrix(self, writer, matrix_element, fortran_model, write_auxiliary_files=True)

source code 

Create the loop_matrix.f file.

Overrides: LoopProcessExporterFortranSA.write_loopmatrix

write_tir_cache_size_include(self, writer)

source code 

Write the file 'tir_cache_size.inc' which sets the size of the TIR cache the the user wishes to employ and the default value for it. This can have an impact on MadLoop speed when using stability checks but also impacts in a non-negligible way MadLoop's memory footprint. It is therefore important that the user can chose its size.


Class Variable Details [hide private]

all_tir

Value:
['pjfry', 'iregi', 'ninja', 'golem', 'samurai', 'collier']

template_dir

Value:
'/Users/omattelaer/Documents/workspace/madgraph5/MG5_aMC_v2_6_5/madgra\
ph/iolibs/template_files/loop_optimized'