Changes between Version 2 and Version 3 of MadWeightDiagramClass
- Timestamp:
- Apr 19, 2012, 10:08:44 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MadWeightDiagramClass
v2 v3 7 7 ===== !! variable ===== 8 8 ||'''name'''||'''object'''||'''default'''||'''fonction'''|| 9 ||'''pid'''||int||asked|| 10 ||'''MG'''||int||asked|| 11 ||'''mass'''||float||0|| 12 ||'''mother'''||Particle||0|| 13 ||'''neutrino'''||int||0|| 14 ||'''external'''||int||automatic|| 15 ||'''twin'''||Particle||0|| 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|| 16 16 Optional variable: 17 17 ||'''name'''||'''object'''||'''fonction'''|| 18 18 ||'''all_mother'''||list of Particle||||list of all mother of the particle|| 19 ||'''level'''||int|||| 20 ===== !! routine ===== 21 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 22 ||'''add_mother'''||Particle||None|| 23 ||'''def_all_mother'''||None||list|| 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 24 ||'''def_mass'''||Dict_card||None||define the mass of the particle|| 25 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|| … … 27 27 ===== !! variable ===== 28 28 ||'''name'''||'''object'''||'''default'''||'''fonction'''|| 29 ||'''channel'''||str||input|| 30 ||'''width'''||float||0|| 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||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 34 ==== external_part ==== 35 35 ===== !! variable ===== 36 36 ||'''name'''||'''object'''||'''default'''||'''fonction'''|| 37 ||'''neutrino'''||int||automatic|| 38 ||'''external'''||int||1|| 39 ||'''width'''||int||-1|| 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 40 ||Optional variable|| 41 ||'''tf_level'''||int||Error|| 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 42 ===== !! routine ===== 43 43 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| … … 47 47 ==== diagram ==== 48 48 ===== !! variable ===== 49 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 49 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 50 50 ||'''content'''||dict||void||link from MG number to the particle object associated|| 51 51 ||'''prop_content'''||listof Propagator||void||list of all propagator in th diagram|| … … 58 58 ===== !! routine ===== 59 59 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 60 ||'''add_content'''||MG_id(int),Particle||None|| 60 ||'''add_content'''||MG_id(int),Particle||None||add particle with MG number in the diagram|| 61 61 ||'''contains_particle'''||Particle||logic||chek if the particle belongs to this diagram|| 62 ||'''define_level'''||None||None|| 63 ||'''define_neut_content'''||None||None|| 64 ||'''order_in_level'''||None||None|| 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 65 ==== MG_diagram ==== 66 66 ===== !! variable ===== 67 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 67 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 68 68 ||'''ECS_sol'''||list of ECS||void||list of possible ECS|| 69 69 ||'''blob_content'''||list of BLob||void||list of blob present in (at least) one ECS sector|| … … 76 76 ||'''define_neutrino_stuff'''||None||None||put uptodate all neutrino dependent variable|| 77 77 ||'''define_parameter'''||param_card(str)||None||define mass-width for all Particle (from param card)|| 78 ||'''define_tf_width'''||file(str)||None|| 78 ||'''define_tf_width'''||file(str)||None||associate the TF-level at each particle|| 79 79 ||'''detect_invisible_propa'''||None||None||detect propagator decaying in fully invisible particle and treat this case|| 80 80 ||'''creation of ECS'''|||||||| 81 81 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 82 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|| 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 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|| 85 ||'''find_ECS_0neut'''||(force=0)||ECS_list|| find ECS containing no neutrino. force authorizes some level 1 to be choose|| 86 86 ||'''find_ECS_1neut'''||None||ECS_list||find the lowest(s) neutrino and define ECS|| 87 87 ||'''find_ECS_2neut'''||None||ECS_list||return best 2 neutrino ECS|| … … 91 91 ||* write Solution*|||||||| 92 92 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 93 ||'''create_fortran_code'''||None||None|| 93 ||'''create_fortran_code'''||None||None||create the code(sceduler)|| 94 94 ||'''create_MadWeight_data'''||object,i(int)||None||create the data_$i.inc for solution|| 95 95 ||'''create_MadWeight_main'''||object,i(int)||None||create the main_code_$i.inc for solution|| 96 96 ||'''create_pmass2'''||object,i(int)||None||create the pmass2_$i.inc for solution|| 97 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]]|| 98 ||check_invisible_decay||None||text||check if one of the invisible particle decay in 2 invisible particle.[[br]] return 0 if not[[br]] return a text with the call of the equivalent subroutine[[br]]|| 101 99 ||'''collect_generated_propa'''||ECS,blob_sol_list||propa_list||return all the propagator that must be generated following BW distibution|| 102 100 ||'''return_propa_generation'''||list,pos||line(str)||return the line for the definition of how to generate the mass|| … … 114 112 ==== blob_sector ==== 115 113 ===== !! variable ===== 116 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 117 ||main|| 114 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 115 ||main||Particle||define||gives the Particle wich generates all the blob|| 118 116 ||sol||list||void||list of the different solution of this blob|| 119 117 ===== !! routine ===== 120 118 ||'''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]]|| 119 ||find_solutions||None||None||find a first solution to resolve the blob.[[br]] The idea is to take the more local possibility in all case[[br]] this is perhaps not the best solution but it's only the beginning of the resolution[[br]]|| 124 120 ||generate_content||None||None||import all the information for the blog|| 125 ||put_in_ecs||ECS||None|| 126 ||supress_identical_solution||None||None|| 121 ||put_in_ecs||ECS||None||put this blob in the blob content of ECS|| 122 ||supress_identical_solution||None||None||supress identical solution || 127 123 128 124 … … 130 126 ==== Level_generation ==== 131 127 ===== !! variable ===== 132 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 133 ||num_fuse||int||0|| 134 ||sol_tag||str||def|| 128 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 129 ||num_fuse||int||0||number of fuse particle in the solution|| 130 ||sol_tag||str||def||type of solution description|| 135 131 ||step||list_Block||void||list of the block to use for the generation (must be most of the time in the correct order)|| 136 132 … … 142 138 May Attention this object have multi heritage-> from Diagram (number 1) and secondly from Level_generation 143 139 ===== !! variable ===== 144 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 140 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 145 141 ||MG_sec||MG_diagram||def||link to the Feynam object|| 146 142 ||chgt_var||str||def||a letter (lowercase) describe a change of variable in the ECS, and a 2 describe a fuse|| 147 143 ||main_content||list_Particle||def||central particle of the ECS|| 148 144 ||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)|| 145 ||num_neut||int||auto||number of neutrion in the ECS|| 146 ||intrinsec||int||auto||number of fondamental particle in ECS|| 147 148 ===== !! routine ===== 149 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 150 ||define_blob||MG_diag||None||define the blob associated to this Enlarged constraint sector( in MG_diag and in ECS) || 151 ||equivalent_ECS||None||None||1) define completly the change of variable for the enlarged ECS[[br]] -find which propagator aligned,...[[br]] 2) define equivalent solution if any (B->C)|| 158 152 ||equivalent_ECS_1neut||None||None||^|| 159 153 ||equivalent_ECS_2neut||None||None||^|| 160 154 ||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|| 155 ||order_block||None||none||order the block of step|| 156 ||update_unaligned_with_blob||None||None||take care of the position of the other neutrino in order to have a more[[br]] serious definition of the number of un-aligned variable[[br]] this routine is designed for update the 1 neutrino case|| 165 157 ==== Blob_solution ==== 166 158 ===== !! variable ===== 167 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 168 ||blob_sec||Blob_sector||def|| 159 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 160 ||blob_sec||Blob_sector||def||to with blob this solution is linked|| 169 161 ||how_gen||dict||special||Particle-> linked block for generation (if not ''): initial value is "" for all particle in the blob|| 170 162 … … 173 165 ||copy_solution||Blob_sol||None||duplicate solution (no alias use) in order to modify it later|| 174 166 ||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)|| 167 ||Find Solution|||||||| 168 ||find_all_solutions||blob||None||complete blob.sol => find tree solutions:[[br]] 1. this solutions maximize the number of propagator generated following BW[[br]] 2. this solutions maximize the number of external particle generated following tf (i.e. all execpt neutrino)[[br]] 3. this solutions try to be an intermediate solution between the two || 169 ||find_beta_solution||blob||None||find a first solution to resolve the blob [[br]] The idea is to take the more local possibility in all case.[[br]] this is perhaps not the best solution but it's only the beginning of the resolution.[[br]] Secondly we will not defined 'final' block but some more generic one (like E*: restriction at one level of E)|| 184 170 ||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' || 171 ||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'[[br]] if the 'C' can be upgrated to 'A' || 187 172 ||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|| 173 ||pass_in_solution||tag||None||tag -> upgrate solution in order to fullfill taged criteria [[br]] upgrate 'beta' solution following some criteria(tagged with tag)|| 174 ||extend_block||chgt_var||none||put the A/D/E propagator in place to minize problem with thin transfer function|| 191 175 ||convert_DE_in_1||None||None||convert all 'E*' and all 'd' in '1' block || 192 176 ||convert_E_in_D||None||None||convert all 'E*' in 'd'|| 193 ||del_ext1_in||None||None|| 177 ||del_ext1_in||None||None||delete blok '1' but only if the particle is an external one!|| 194 178 195 179 === Block_sector === … … 197 181 ==== Block_sector ==== 198 182 ===== !! variable ===== 199 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 200 ||sol_sec||solution_sector||def|| 201 ||chgt_var||str||def|| 183 ||'''name'''||'''object'''||'''default'''||'''utility'''|| 184 ||sol_sec||solution_sector||def||this blob is linked to one solution|| 185 ||chgt_var||str||def||which type of chgt_var|| 202 186 ||in_part||list_Particle||def||particle that must be define before-in the same time that the block|| 203 187 ||out_part||list_Particle||def||Particle which can be generated by the block|| … … 208 192 ===== !! routine ===== 209 193 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 210 ||def_order_content||None||None|| 194 ||def_order_content||None||None||define (in the corect order) the particle used in fuse sector (routine overwirtted in other case) || 211 195 ||give_stop_reason||log||None||store log end message|| 212 196 ==== Block_ECS ==== … … 214 198 def_order_content 215 199 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 216 ||def_order_content||None||None|| 200 ||def_order_content||None||None||define (in the corect order) the particle used in ECS || 217 201 ==== Block_b ==== 218 202 ===== !! routine ===== 219 203 ||'''name'''||'''input'''||'''output'''||'''fonction'''|| 220 ||change_chgt_var||new||None|| 221 ||def_order_content||None||None|| 204 ||change_chgt_var||new||None||change the changement of variable associated || 205 ||def_order_content||None||None||define (in the corect order) the particle used in this blob || 222 206 ||del_from_sol||None||None||supress corectly the block of the solutions|| 223 207 ||put_B_sol_uptodate||Sol_sec||None||put the solution status uptodate with this block definition|| … … 229 213 Store all the option for the Program MadAnalyzer 230 214 file: diagram_class.py 231 || 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||215 || Options |||||||| 216 || '''Block_name''' || '''TAG''' || * default value* || '''utility''' || 217 || MW_Gen || 1. || 1 ||In ECS, choice which propagator to allign 1: thiner 2: nearest of the neutrino|| 218 || MW_Gen || 2. || 1 ||In Blob, choice which propagator to allign 1: thiner 2: nearest || 219 || MW_Gen || 3. || 4 ||Maximal number of ECS consider|| 220 || MW_Gen || 4. || T ||Use type 1 solution for blob|| 221 || MW_Gen || 5. || T ||Use type 2 solution for blob|| 222 || MW_Gen || 6. || T ||Use type 3 solution for blob|| 223 || MW_Gen || 11. || T ||Authorize ECS type A || 224 || MW_Gen || 12. || T ||Authorize ECS type B || 225 || MW_Gen || 13. || T ||Authorize ECS type C || 226 || MW_Gen || 14. || T ||Authorize ECS type D || 227 || MW_Gen || 15. || T ||Authorize ECS type E|| 228 || MW_Gen || 16. || T ||Authorize ECS type F|| 229 || '''MW_Run''' || 3. || T ||control the efficiency of each block|| 246 230 ==== !! Multi_list ==== 247 231 Special list with two level of list.