|
36 | 36 | import madgraph.iolibs.file_writers as writers |
37 | 37 | import madgraph.iolibs.template_files as template_files |
38 | 38 | import madgraph.iolibs.ufo_expression_parsers as parsers |
39 | | -from madgraph.iolibs.export_mg7 import get_subprocess_info |
40 | 39 | import madgraph.various.banner as banner_mod |
41 | 40 | from madgraph import MadGraph5Error, InvalidCmd, MG5DIR |
42 | 41 | from madgraph.iolibs.files import cp, ln, mv |
@@ -2781,12 +2780,28 @@ def __init__(self, *args, **kwargs): |
2781 | 2780 | def generate_subprocess_directory( |
2782 | 2781 | self, matrix_element, cpp_helas_call_writer, proc_number=None |
2783 | 2782 | ): |
2784 | | - proc_dir_name = super().generate_subprocess_directory( |
2785 | | - matrix_element, cpp_helas_call_writer, proc_number=None |
2786 | | - ) |
2787 | | - name = f"P{matrix_element.get('processes')[0].shell_string()}" |
2788 | | - me_lib_path = self.me_lib_format.format(process_id = name) |
2789 | | - self.process_info.append(get_subprocess_info(matrix_element, proc_dir_name, me_lib_path)) |
| 2783 | + """ Override of super().generate_subprocess_directory """ |
| 2784 | + process_exporter_mg7 = self.oneprocessclass(matrix_element,cpp_helas_call_writer) |
| 2785 | + |
| 2786 | + # Create the directory PN_xx_xxxxx in the specified path |
| 2787 | + proc_dir_name = "P%d_%s" % (process_exporter_mg7.process_number, |
| 2788 | + process_exporter_mg7.process_name) |
| 2789 | + dirpath = pjoin(self.dir_path, 'SubProcesses', proc_dir_name) |
| 2790 | + |
| 2791 | + try: |
| 2792 | + os.mkdir(dirpath) |
| 2793 | + except os.error as error: |
| 2794 | + logger.warning(error.strerror + " " + dirpath) |
| 2795 | + with misc.chdir(dirpath): |
| 2796 | + logger.info('Creating files in directory %s' % dirpath) |
| 2797 | + process_exporter_mg7.path = dirpath |
| 2798 | + # Create the process .h and .cc files |
| 2799 | + process_exporter_mg7.generate_process_files() |
| 2800 | + for file in self.to_link_in_P: |
| 2801 | + ln('../%s' % file) |
| 2802 | + |
| 2803 | + me_lib_path = self.me_lib_format.format(process_id = process_exporter_mg7.name) |
| 2804 | + self.process_info.append(process_exporter_mg7.get_subprocess_info(proc_dir_name, me_lib_path)) |
2790 | 2805 |
|
2791 | 2806 | def copy_template(self, model): |
2792 | 2807 | super().copy_template(model) |
@@ -2816,10 +2831,8 @@ def finalize(self, *args, **kwargs): |
2816 | 2831 | )) |
2817 | 2832 | with open(file_name, 'w') as f: |
2818 | 2833 | json.dump(self.process_info, f) |
2819 | | - |
2820 | | - if self.matrix_element_path is None: |
2821 | | - super().finalize() |
2822 | | - |
| 2834 | + # we don't call super().finalize() since it would call ProcessExporterCPP.finalize() |
| 2835 | + # which would compile the model in src/, and we don't want that |
2823 | 2836 |
|
2824 | 2837 | def ExportCPPFactory(cmd, group_subprocesses=False, cmd_options={}): |
2825 | 2838 | """ Determine which Export class is required. cmd is the command |
|
0 commit comments