| 1 | [[PageOutline]] |
| 2 | |
| 3 | = Introduction |
| 4 | |
| 5 | In order to compute the systematics error, one need to recompute the cross-section/differential cross-section |
| 6 | for various PDF and scale choice. Running all those computation is parallel is a waste of time and a more appropriate |
| 7 | method is to use re-weighting approach to re-use the same sample generated to estimate those systematics. |
| 8 | For full efficiency, it requires to store some additional information in the lhe file at the time of the generation such that |
| 9 | the computation of those systematics can take a very small amount of time. |
| 10 | |
| 11 | For more information concerning the implementation in our framework (such method exists in all MC code), please read: |
| 12 | [[https://arxiv.org/pdf/1110.4738.pdf R. Frederix, S. Frixione, V. Hirschi, F. Maltoni, R. Pit- |
| 13 | tau, P. Torrielli, JHEP 02, 099 (2012).]] |
| 14 | |
| 15 | = LO |
| 16 | |
| 17 | At LO, you have two code able to compute the systematics: SysCalc and the "systematics" module of MG5aMC. |
| 18 | They have basically the same feature but use different interface approach to perform the computation |
| 19 | 1. SysCalc is a standalone C++ code. |
| 20 | 2. "systematics" is a python module which need to have lhapdf6 compiled for python support. Requiring the Python development headers to be installed (e.g. via the python-dev Ubuntu package). |
| 21 | |
| 22 | None of the those code is able to handle correctly cases with interference only generation. |
| 23 | |
| 24 | == How to run the code |
| 25 | |
| 26 | To use either of those code, you need first to set in the run_card the parameter ('''use_syst''' on true) which is going to ask MG5aMC to add the additional information |
| 27 | in the lhef such that those module can read the information and add the weights in the event file. |
| 28 | Note that use_syst=T is actually the default but for interference type of generation where it is by default set to False since those information are unlikely to be correct. |
| 29 | |
| 30 | If '''use_syst is True''' then by default we will automatically run SysCalc. If SysCalc is not installed on your machine then we will run "systematics" instead. |
| 31 | You can change this behavior via the (hidden) parameter of the run_card |
| 32 | '''systematics_program''' you give it one of the three following value: |
| 33 | 1. none: no program will be used (but the event will still have the additional information written inside the file) |
| 34 | 2. syscalc: use the syscalc program |
| 35 | 3. systematics: use the systematics program [even if SysCalc is installed] |
| 36 | |
| 37 | Note that both program can also be runned in standalone |
| 38 | |
| 39 | Various parameter of the run_card allow you to control which type of variation you want to perform: |
| 40 | {{{ |
| 41 | 0.5 1 2 = sys_scalefact # factorization/renormalization scale factor |
| 42 | None = sys_alpsfact # \alpha_s emission scale factors |
| 43 | auto = sys_matchscale # variation of merging scale |
| 44 | # PDF sets and number of members (0 or none for all members). |
| 45 | NNPDF23_lo_as_0130_qed = sys_pdf # separate by && if more than one set. |
| 46 | # MSTW2008nlo68cl.LHgrid 1 = sys_pdf |
| 47 | # |
| 48 | }}} |
| 49 | |
| 50 | == SysCalc |
| 51 | |
| 52 | Description of SysCalc is available here: https://cp3.irmp.ucl.ac.be/projects/madgraph/wiki/SysCalc |
| 53 | |
| 54 | == Systematics (python) module |
| 55 | |
| 56 | The "systematics" module can be called externally. |
| 57 | It is callable via the Madevent interface (either accessible via launch -i from the MG5aMC interface or via ./bin/madevent) |
| 58 | Here is the details on the syntax (as given by the help command) |
| 59 | |
| 60 | {{{ |
| 61 | INFO: syntax: systematics RUN_NAME [OUTPUT] [options] |
| 62 | INFO: -- Run the systematics run on the RUN_NAME run. |
| 63 | INFO: RUN_NAME can be a path to a lhef file. |
| 64 | INFO: OUTPUT can be the path to the output lhe file, otherwise the input file will be overwritten |
| 65 | INFO: |
| 66 | INFO: options: (values written are the default) |
| 67 | INFO: |
| 68 | INFO: --mur=0.5,1,2 # specify the values for renormalisation scale variation |
| 69 | INFO: --muf=0.5,1,2 # specify the values for factorisation scale variation |
| 70 | INFO: --alps=1 # specify the values for MLM emission scale variation (LO only) |
| 71 | INFO: --dyn=-1,1,2,3,4 # specify the dynamical schemes to use. |
| 72 | INFO: # -1 is the one used by the sample. |
| 73 | INFO: # > 0 correspond to options of dynamical_scale_choice of the run_card. |
| 74 | INFO: --pdf=errorset # specify the pdfs to use for pdf variation. (see below) |
| 75 | INFO: --together=mur,muf,dyn # lists the parameter that must be varied simultaneously so as to |
| 76 | INFO: # compute the weights for all combinations of their variations. |
| 77 | INFO: --from_card # use the information from the run_card (LO only). |
| 78 | INFO: |
| 79 | INFO: Allowed value for the pdf options: |
| 80 | INFO: central : Do not perform any pdf variation |
| 81 | INFO: errorset : runs over the all the members of the PDF set used to generate the events |
| 82 | INFO: 244800 : runs over the associated set and all its members |
| 83 | INFO: 244800@0 : runs over the central member of the associated set |
| 84 | INFO: CT10 : runs over the associated set and all its members |
| 85 | INFO: CT10@0 : runs over the central member of the associated set |
| 86 | INFO: CT10@X : runs over the Xth member of the associated PDF set |
| 87 | INFO: XX,YY,ZZ : runs over the sets for XX,YY,ZZ (those three follows above syntax) |
| 88 | }}} |
| 89 | |
| 90 | Note that the run_card do not have any entry for the type of dynamical scale (since SysCalc does not support it). |
| 91 | So it is default all the possible value. |
| 92 | One can also specify the argument of the "systematics" module by putting in the run_card an entry for '''systematics_arguments''' |
| 93 | (as a list of string |
| 94 | For example |
| 95 | {{{ |
| 96 | ['--pdf=central', '--dyn=-1,3', '--together=mur,muf'] = systematics_arguments |
| 97 | }}} |
| 98 | |
| 99 | |
| 100 | |
| 101 | = NLO |
| 102 | |
| 103 | At NLO, you have two options to compute the systematics error. |
| 104 | '''on the flight''' this methods performs the re-weighting during the generation of the events. The output file contain the additional weight but '''NOT''' the information to perform an additional re-weighting (by default) forbidding to perform a different re-weighting later (different pdf/scale choice/...) |
| 105 | The second method is the "systematics" module of MG5aMC, where additional information will be written in the file in order to compute systematics weight independently of the event generation. |
| 106 | |
| 107 | == On the flight method |
| 108 | |
| 109 | In order to use this mode, you can set in the run_card those two parameters: |
| 110 | {{{ |
| 111 | True = reweight_scale ! Reweight to get scale variation using the |
| 112 | ! rw_rscale and rw_fscale factors. Should be a list of |
| 113 | ! booleans of equal length to dynamical_scale_choice to |
| 114 | ! specify for which choice to include scale dependence. |
| 115 | False = reweight_PDF ! Reweight to get PDF uncertainty. Should be a |
| 116 | ! list booleans of equal length to lhaid to specify for |
| 117 | ! which PDF set to include the uncertainties. |
| 118 | #************************************************************** |
| 119 | }}} |
| 120 | |
| 121 | You can specify inside the run_card the list of pdf requested/ the list of dynamical scale /... |
| 122 | |
| 123 | For example in order to have multiple dynamical_scale you have to have the line in the run_card |
| 124 | {{{ |
| 125 | -1,2,3 = dynamical_scale_choice ! Choose one (or more) of the predefined |
| 126 | ! dynamical choices. Can be a list; scale choices beyond the |
| 127 | ! first are included via reweighting |
| 128 | }}} |
| 129 | The option 2 and 3 for the dynamical scale will then be include via the re-weighting approach |
| 130 | |
| 131 | |
| 132 | == Systematics (python) module |
| 133 | |
| 134 | In order to use this module you have to set the run_card parameter "store_reweight_info" to True (i.e. having the following line in the run_card) |
| 135 | {{{ |
| 136 | True = store_reweight_info |
| 137 | }}} |
| 138 | This is not the default value of this parameter. |
| 139 | If you want that this module is directly called after the event generation you have to add the following line in the run_card: |
| 140 | {{{ |
| 141 | systematics = systematics_program |
| 142 | }}} |
| 143 | parameter of the systematics module can be specified in '''systematics_argument''' for example with the following line in the run_card: |
| 144 | {{{ |
| 145 | ['--pdf=central', '--dyn=-1,3', '--together=mur,muf'] = systematics_arguments |
| 146 | }}} |
| 147 | The list of available options are the same as the one at LO (see above) |
| 148 | |
| 149 | As for the LO case, a dedicated function exists in the aMC@NLO interface (available via either launch -i or via the ./bin/aMC@NLO script) |
| 150 | |
| 151 | |
| 152 | |