嗨,我正试图利用madgraph 2.8.3中定义的EventFile类的unweight方法/各种各样的/lhe_parser。第440行为py。
我想在一个自定义编写的加权事件Les Houches事件文件上使用unweight函数,用于一个简单的过程g g>t t ~,以LHE格式输出未加权事件。
到目前为止,在将加权LHE事件文件加载到EventFile对象中后,我对其调用unweight,这很好。唯一的一点是,该方法没有将未加权的事件权重替换为横截面值(我使用默认的标准化=“avarage”选项),与通常的madgraph生成管道一样。相反,我得到了加权文件中遇到的最大权重。
这应该是意料之中的,因为我阅读了lhe_parser.py的第561-568行(特别是第563行):
561:elif wgt>0:
562:nb_keep+=1
563:event.wgt=已写入_重量(最大值(wgt,max_wgt))
564:如果abs(wgt)>max_wgt:
565:躯干交叉+=abs(wgt)-最大wgt
566:如果事件目标==0或nb_keep<=事件目标:
567:如果输出路径:
568:outfile(输出文件)。写入(str(事件))
我的目标是检索madgraph行为,但我不想在EventFile中手动存储覆盖每个event.wgt的权重。
我想知道在生成管道中,madgraph将横截面值分配给未加权的事件权重。
谢谢