Changes between Initial Version and Version 1 of MadWeightDiagramClass


Ignore:
Timestamp:
Mar 20, 2012, 4:16:26 PM (12 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MadWeightDiagramClass

    v1 v1  
     1
     2
     3== MadWeight Analyzer Class ==
     4
     5=== Particle ===
     6==== Particle ====
     7===== !! variable  =====
     8||'''name'''||'''object'''||'''default'''||'''fonction'''||
     9||'''pid'''||int||asked||  pid number||
     10||'''MG'''||int||asked||  MadGraph intern number||
     11||'''mass'''||float||0|| mass of the particle||
     12||'''mother'''||Particle||0|| mother of the particle||
     13||'''neutrino'''||int||0|| 1 if this particle is a neutrino||
     14||'''external'''||int||automatic|| 1 if this is an external particle||
     15||'''twin'''||Particle||0|| Particle comming from the same propagator||
     16Optional  variable:
     17||'''name'''||'''object'''||'''fonction'''||
     18||'''all_mother'''||list of Particle||||list of all mother of the particle||
     19||'''level'''||int|||| number a propa before  himself  (with himself include)||
     20===== !! routine =====
     21||'''name'''||'''input'''||'''output'''||'''fonction'''||
     22||'''add_mother'''||Particle||None|| define particle as the mother of this particle||
     23||'''def_all_mother'''||None||list|| define the list of all the mother of teh particle (and store the info)||
     24||'''def_mass'''||Dict_card||None||define the mass of the particle||
     25||'''detect_neut_in_decay'''||None||Particle,int||detect the nearest neutrino in the decay branch. return this neutrino and its level compare to this particle||
     26==== Propagator ====
     27===== !! variable  =====
     28||'''name'''||'''object'''||'''default'''||'''fonction'''||
     29||'''channel'''||str||input|| say if it is a S or T channel||
     30||'''width'''||float||0|| width of the propagator||
     31===== !! routine =====
     32||'''name'''||'''input'''||'''output'''||'''fonction'''||
     33||'''def_desintegation'''|| 2 Particle ||None|| define this two particle like child and define in this two who are the mother||
     34==== external_part ====
     35===== !! variable  =====
     36||'''name'''||'''object'''||'''default'''||'''fonction'''||
     37||'''neutrino'''||int||automatic|| 1 if this particle is a neutrino||
     38||'''external'''||int||1|| 1 if this is an external particle||
     39||'''width'''||int||-1|| width of the particle (-1 if external particle)||
     40||Optional variable||
     41||'''tf_level'''||int||Error|| 0-1 particle cann't enter in change of variable,<br> 2 can and 3 must (for invisible particle)||
     42===== !! routine =====
     43||'''name'''||'''input'''||'''output'''||'''fonction'''||
     44||'''is_invisible'''||None||None||detect if the external particle is visible in the detector or not||
     45||'''unaligned_propa'''||Particle+(int)||int or 3 int||compute the number of propa in common. Return the total number of propagator before the two particle (default) in addtion it can give the number of uncorelated propagator for the two particle (put total=0) ||
     46=== diagram ===
     47==== diagram ====
     48===== !! variable        =====
     49||'''name'''||'''object'''||'''default'''||'''utility'''||
     50||'''content'''||dict||void||link from MG number to the particle object associated||
     51||'''prop_content'''||listof Propagator||void||list of all propagator in th diagram||
     52||'''ext_content'''||list of Ext_particle||void||list of all external particle in the diagram||
     53||'''neut_content'''||list of Ext_particle||void||list of all neutrino in the diagram||
     54||'''num_propa'''||int||0||number of propa in the diagram||
     55||'''ext_part'''||int||0||number of external particle in the diagram||
     56||'''num_neut'''||int||0||number of neutrino  in the diagram||
     57||'''config'''||int||input||number of the feynman diagram consider||
     58===== !! routine =====
     59||'''name'''||'''input'''||'''output'''||'''fonction'''||
     60||'''add_content'''||MG_id(int),Particle||None|| add particle with MG number in the diagram||
     61||'''contains_particle'''||Particle||logic||chek if the particle belongs to this diagram||
     62||'''define_level'''||None||None|| define for all the content the level: number a propa before  himself  (with himself include)||
     63||'''define_neut_content'''||None||None|| define neutrino content of the diagram||
     64||'''order_in_level'''||None||None|| reordering the ext_content in level order||
     65==== MG_diagram ====
     66===== !! variable  =====
     67||'''name'''||'''object'''||'''default'''||'''utility'''||
     68||'''ECS_sol'''||list of ECS||void||list of possible ECS||
     69||'''blob_content'''||list of BLob||void||list of blob present in (at least) one ECS sector||
     70||'''num_init'''||int||2||number of initial particle||
     71||'''directory'''||str||''||directory in which we read the Feynman diagram||
     72===== !! routine =====
     73||'''charge diagram'''||||||||
     74||'''name'''||'''input'''||'''output'''||'''fonction'''||
     75||'''import_process'''||dir_file(str),config(int)||None||charge the information coming from configs.inc and leshouches.inc||
     76||'''define_neutrino_stuff'''||None||None||put uptodate all neutrino dependent variable||
     77||'''define_parameter'''||param_card(str)||None||define mass-width for all Particle (from param card)||
     78||'''define_tf_width'''||file(str)||None|| associate the TF-level  at each particle||
     79||'''detect_invisible_propa'''||None||None||detect propagator decaying in fully invisible particle and treat this case||
     80||'''creation of ECS'''||||||||
     81||'''name'''||'''input'''||'''output'''||'''fonction'''||
     82||'''define_Constraint_sector'''||None||None||define the constraint sector and the different blob (directing routine)||
     83||'''select_ECS'''||ECS_list,(define_solution=1)||None|| select the best(s) ECS in the list (minimizing unfactorized propagator) and define solution if define==1||
     84||'''define_ECS_as_solution'''||ECS_list||NONE||define ECS for a new (or a list) of new solution(s) for the ECS change of variable||
     85||'''find_ECS_0neut'''||(force=0)||ECS_list||  find ECS containing no neutrino. force authorizes some level 1 to be choose||
     86||'''find_ECS_1neut'''||None||ECS_list||find the lowest(s) neutrino and define ECS||
     87||'''find_ECS_2neut'''||None||ECS_list||return best 2 neutrino ECS||
     88||'''creation of blob'''||||||||
     89||'''name'''||'''input'''||'''output'''||'''fonction'''||
     90||'''solve_blob_sector'''||None||None||resolve the change of variable for blob (scheduler)||
     91||* write Solution*||||||||
     92||'''name'''||'''input'''||'''output'''||'''fonction'''||
     93||'''create_fortran_code'''||None||None|| create the code(sceduler)||
     94||'''create_MadWeight_data'''||object,i(int)||None||create the data_$i.inc for solution||
     95||'''create_MadWeight_main'''||object,i(int)||None||create the main_code_$i.inc for solution||
     96||'''create_pmass2'''||object,i(int)||None||create the pmass2_$i.inc for solution||
     97||'''already_generated_in_decay'''||particle,generated_propa||generated_propa||give (recurently) all the first particle already generated in the branchs of desintegration||
     98||check_invisible_decay||None||text||check if one of the invisible particle decay in 2 invisible particle.<br>\
     99            return 0 if not<br>\
     100            return a text with the call of the equivalent subroutine<br>||
     101||'''collect_generated_propa'''||ECS,blob_sol_list||propa_list||return all the propagator that must be generated following BW distibution||
     102||'''return_propa_generation'''||list,pos||line(str)||return the line for the definition of how to generate the mass||
     103||* Other function*||||||||
     104||'''name'''||'''input'''||'''output'''||'''fonction'''||
     105||'''find_lowest_particle'''||(3 options)||Particle_list||find the one/two lowest (lower level) neutrino/particle, if the are ambiguity return more than two||
     106||'''find_num_neut_decay'''||None||None||find the number of neutrino in the decay of each particle||
     107||'''set_option'''||info(str,dict,void)||None||store the different option linked to the generation of this MG_diagram||
     108
     109
     110==== ECS_sector ====
     111ECS sector have multiple heritage. See in The Level_generation heritage class to find all this specific caracteristic
     112
     113
     114==== blob_sector ====
     115===== !! variable =====
     116||'''name'''||'''object'''||'''default'''||'''utility'''||
     117||main|| Particle||define||gives the Particle wich generates all the blob||
     118||sol||list||void||list of the different solution of this blob||
     119===== !! routine =====
     120||'''name'''||'''input'''||'''output'''||'''fonction'''||
     121||find_solutions||None||None||find a first solution to resolve the blob.<br>\
     122            The idea is to take the more local possibility in all case<br>\
     123            this is perhaps not the best solution but it's only the beginning of the resolution<br>||
     124||generate_content||None||None||import all the information for the blog||
     125||put_in_ecs||ECS||None|| put this blob in the blob content of ECS||
     126||supress_identical_solution||None||None|| supress identical solution ||
     127
     128
     129=== Level_generation ===
     130==== Level_generation ====
     131===== !! variable =====
     132||'''name'''||'''object'''||'''default'''||'''utility'''||
     133||num_fuse||int||0|| number of fuse particle in the solution||
     134||sol_tag||str||def|| type of solution description||
     135||step||list_Block||void||list of the block to use for the generation (must be most of the time  in the correct order)||
     136
     137===== !! routine =====
     138||'''name'''||'''input'''||'''output'''||'''fonction'''||
     139||define_fuse_region||fuse_list||fuse_Particle||define a fuse part(Block '2' but with new particle) for the particle in the list ||
     140||order_block||Block||None||(re)ordrer so that the new order follow the generation order||
     141==== ECS_sector ====
     142May Attention this object have multi heritage-> from Diagram (number 1) and secondly from Level_generation
     143===== !! variable =====
     144||'''name'''||'''object'''||'''default'''||'''utility'''||
     145||MG_sec||MG_diagram||def||link to the Feynam object||
     146||chgt_var||str||def||a letter (lowercase) describe a change of variable in the ECS, and a 2 describe a fuse||
     147||main_content||list_Particle||def||central particle of the ECS||
     148||unaligned||int||def||number of propagator in the black box plus the number of neutrinos quantity generated.||
     149||num_neut||int||auto|| number of neutrion in the ECS||
     150||intrinsec||int||auto|| number of fondamental particle in ECS||
     151
     152===== !! routine =====
     153||'''name'''||'''input'''||'''output'''||'''fonction'''||
     154||define_blob||MG_diag||None|| define the blob associated to this Enlarged constraint sector( in MG_diag and in ECS) ||
     155||equivalent_ECS||None||None||1) define completly the change of variable for the enlarged ECS<br>\
     156                -find which propagator aligned,...<br>\
     157            2) define equivalent solution if any (B->C)||
     158||equivalent_ECS_1neut||None||None||^||
     159||equivalent_ECS_2neut||None||None||^||
     160||info||None||str||return some information about the ECS and the associated blob for write in output||
     161||order_block||None||none|| order the block of step||
     162||update_unaligned_with_blob||None||None||take care of the position of the other neutrino in order to have a more<br>\
     163            serious definition of the number of un-aligned variable<br>\
     164            this routine is designed for update the 1 neutrino case||
     165==== Blob_solution ====
     166===== !! variable =====
     167||'''name'''||'''object'''||'''default'''||'''utility'''||
     168||blob_sec||Blob_sector||def|| to with blob this solution is linked||
     169||how_gen||dict||special||Particle-> linked block for generation (if not ''): initial value is "" for all particle in the blob||
     170
     171===== !! routine =====
     172||'''name'''||'''input'''||'''output'''||'''fonction'''||
     173||copy_solution||Blob_sol||None||duplicate solution (no alias use) in order to modify it later||
     174||debug||None||None||print information||
     175|| Find Solution||||||||
     176||find_all_solutions||blob||None|| complete blob.sol => find tree solutions:<br> \
     177   1. this solutions maximize the number of propagator generated following BW<br> \
     178   2. this solutions maximize the number of external particle generated following tf (i.e. all execpt neutrino)<br> \
     179   3. this solutions try to be an intermediate solution between the two    ||
     180||find_beta_solution||blob||None|| find a first solution to resolve the blob\
     181            The idea is to take the more local possibility in all case.\
     182            this is perhaps not the best solution but it's only the beginning of the resolution.\
     183            Secondly we will not defined 'final' block but some more generic one (like E*: restriction at one level of E)||
     184||resolve_piece||Blob,Particle||None||find the 'first' solution for the blok taht will be linked to Particle||
     185||treat_conflicting_block||block||None|| if a 'C' block is block by a 'A' block it's sometimes more powerful to degrade the 'A' in 'B'\
     186            if the 'C' can be upgrated to 'A'  ||
     187||Modify Solution||||||||
     188||pass_in_solution||tag||None||tag -> upgrate solution in order to fullfill taged criteria \
     189                upgrate 'beta' solution following some criteria(tagged with tag)||
     190||extend_block||chgt_var||none|| put the A/D/E propagator in place to minize problem with thin transfer function||
     191||convert_DE_in_1||None||None||convert all 'E*' and all 'd' in '1' block ||
     192||convert_E_in_D||None||None||convert all 'E*' in 'd'||
     193||del_ext1_in||None||None|| delete blok  '1' but only if the particle is an external one!||
     194
     195=== Block_sector ===
     196      define:store information on a Block.
     197==== Block_sector ====
     198===== !! variable =====
     199||'''name'''||'''object'''||'''default'''||'''utility'''||
     200||sol_sec||solution_sector||def|| this blob is linked to one solution||
     201||chgt_var||str||def|| which type of chgt_var||
     202||in_part||list_Particle||def||particle that must be define before-in the same time that the block||
     203||out_part||list_Particle||def||Particle which can be generated by the block||
     204||neut_content||list_Particle||auto||neutrino particle||
     205||num_neut||int||auto||number of neutrino||
     206||stop||str||void||reason why we don't choose an other block||
     207||order_content||list_Block||auto||organize particle in order to have the correct ordrer in F77 program||
     208===== !! routine =====
     209||'''name'''||'''input'''||'''output'''||'''fonction'''||
     210||def_order_content||None||None|| define (in the corect order) the particle used in fuse sector (routine overwirtted in other case)   ||
     211||give_stop_reason||log||None||store log end message||
     212==== Block_ECS ====
     213===== !! routine =====
     214def_order_content
     215||'''name'''||'''input'''||'''output'''||'''fonction'''||
     216||def_order_content||None||None|| define (in the corect order) the particle used in ECS ||
     217==== Block_b ====
     218===== !! routine =====
     219||'''name'''||'''input'''||'''output'''||'''fonction'''||
     220||change_chgt_var||new||None|| change the changement of variable associated ||
     221||def_order_content||None||None|| define (in the corect order) the particle used in this blob ||
     222||del_from_sol||None||None||supress corectly the block of the solutions||
     223||put_B_sol_uptodate||Sol_sec||None||put the solution status uptodate with this block definition||
     224||redefine_block||Init_entry||None||redifine block||
     225=== Other ===
     226==== !! Mod_file ====
     227Sort of Template in order to write correctly output file
     228==== !! Option ====
     229Store all the option for the Program MadAnalyzer
     230file: diagram_class.py
     231||    Options  ||||||||
     232||    '''Block_name'''   ||   '''TAG'''    ||  * default value*   ||   '''utility''' ||
     233||    MW_Gen          ||      1.         ||            1               || In ECS, choice which propagator to allign 1: thiner 2: nearest of the neutrino||
     234||    MW_Gen          ||      2.         ||            1               || In Blob, choice which propagator to allign 1: thiner 2: nearest ||
     235||    MW_Gen          ||      3.         ||            4               || Maximal number of ECS consider||
     236||    MW_Gen          ||      4.         ||            T               || Use type 1 solution for blob||
     237||    MW_Gen          ||      5.         ||            T               || Use type 2 solution for blob||
     238||    MW_Gen          ||      6.         ||            T               || Use type 3 solution for blob||
     239||    MW_Gen          ||      11.         ||            T               || Authorize ECS type A ||
     240||    MW_Gen          ||      12.         ||            T               || Authorize ECS type B ||
     241||    MW_Gen          ||      13.         ||            T               || Authorize ECS type C ||
     242||    MW_Gen          ||      14.         ||            T               || Authorize ECS type D ||
     243||    MW_Gen          ||      15.         ||            T               || Authorize ECS type E||
     244 ||    MW_Gen          ||      16.         ||            T               || Authorize ECS type F||
     245||    '''MW_Run'''        ||      3.         ||            T               ||control the efficiency of each block||
     246==== !! Multi_list ====
     247Special list with two level of list.
     248
     249
     250-- Main.OlivierMattelaer - 07 Feb 2008