Changes between Version 12 and Version 13 of LoopInducedTimesTree


Ignore:
Timestamp:
Jun 16, 2017, 6:05:14 PM (7 years ago)
Author:
Valentin Hirschi
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LoopInducedTimesTree

    v12 v13  
    208208
    209209You can then simply run the command 'prepare_model_for_loopInducedXTrees' to preprocess your model before running loop-induced x tree computation as instructed above.
     210
     211Notice that if the "background" tree-level structure is very different than the loop-induced ones you are interfering against, then it might be a good idea to add the corresponding tree-level topologies to the multi-channel.
     212This can be achieved with the following small modifications. Around line 104 of the file '<MG_root_path>/madgraph/various/diagram_symmetry.py' , to the lines
     213{{{
     214        base_diagrams = base_objects.DiagramList(
     215                   [(d.get_contracted_loop_diagram(base_model,FDStructRepo) if
     216                   isinstance(d,loop_base_objects.LoopDiagram) else d) for d in
     217               matrix_element.get('base_amplitude').get('loop_diagrams') \
     218                                                            if d.get('type')>0])
     219        diagrams = matrix_element.get_loop_diagrams()
     220}}}
     221Add the following ones right below:
     222{{{
     223        base_diagrams.extend([(d.get_contracted_loop_diagram(base_model,FDStructRepo) if
     224                   isinstance(d,loop_base_objects.LoopUVCTDiagram) else d) for d in
     225               matrix_element.get('base_amplitude').get('loop_UVCT_diagrams')])
     226        diagrams.extend(matrix_element.get_loop_UVCT_diagrams())
     227}}}
     228And then around the line 317 of '<MG_root_path>/madgraph/iolibs/group_subprocs.py' , to the line
     229{{{
     230       diagrams = [(d.get_contracted_loop_diagram(model,FDStructRepo) if
     231                   isinstance(d,loop_base_objects.LoopDiagram) else d) for d in
     232                 me.get('base_amplitude').get('loop_diagrams') if d.get('type')>0]
     233}}}
     234Add the following one, right below:
     235{{{
     236      diagrams.extend([(d.get_contracted_loop_diagram(model,FDStructRepo) if
     237                   isinstance(d,loop_base_objects.LoopUVCTDiagram) else d) for d in
     238                  me.get('base_amplitude').get('loop_UVCT_diagrams')])
     239}}}
     240Finally, when using these modifications and in order to activate all these extra integration channels, you must set
     241{{{
     242    MG5_aMC>set group_subprocesses False
     243}}}
     244before the generation of your process (irrespectively of your MG5aMC distribution this time).