MadWeight Frequently Asked Questions
General
Why did you choose to have only analytical change of variables?
Simply because it's much faster. If we computing time for the class d for analytical/numeric resolution of equation, we have a factor 2.
How do we inform that a 'non standard' particle is not visible in the detector.
If a particle is consider by default as visible in the detector, when in your case she is not (decaying in the detector in invisible particle exclusively). you can add her PDG number to the invisible list present at the begining of this file: Source/Madeight_File/Python/particle_class.py
LHCO event file
Do I have to perform selection on the events?
g>Question from Andre Sznajder
The matrix element method uses just outgoing the hard scattering partons/leptons. As a concrete example let's take the Higgs to WW semi-leptonic mode H->WW->(mu nu)(qq'). As I am using CMS reconstructed event as an input, do I have to make a pre-selection of the reconstructed muons, jets and missing energy that corresponds to the parton level objects ? Or I can put in the LHCO all reconstructed jets, and leptons and it will somehow choose the correct ones ?
MadWeight (MW) can only process event with the correct number of reconstructed events. So MW will first reject all the "wrong" events. So in practise, if you have two muons or three jet for an event, this one will not be accepted.
If you have three jet and want anyway to perform the Matrix Element Method (MEM) on this event, then yes you have to made a pre-selection.
I have two (or more) neutrino (invisible particle) in my events how can I disentangle the neutrinos implusion
That is not a problem at all. The information for the missing energy is not use from the events for MW integration. But this information can be use in the transfer functions. Note that all events in lhco files must have a missing ET line (line starting with 6). In fact in practise, MW compute the missing ET and disantagle the neutrinos impulsion for you (and this in fact point by point in the phase space)
Which information are mandatory/not use in the LHCO file?
MW needs two type of information for visible particle
- identification of the particle which mean the identification tag but also depending of the type the charge of the particle and/or the tagging
- kinematical information (that is obvious)
All the rest (in particular the missing ET line) can be put to zero. Note that for format compatibility you need to have those number written in the file (in particular the missing ET line)
Output file
How can I extract the individual event weights to create my own Likelihood function ?
You will have files with that information:
./MYPROCESS/Events/MY_RUN_NAME/MY_RUN_NAME_weights.out
./MYPROCESS/Events/MY_RUN_NAME/MY_RUN_NAME_norm_weights.out
(by default MY_RUN_NAME is fermi)
The first file contains all the unormalized weight. The second want contains the weight normalized by the cross section. (Usually people are interrested in this one) The format for each file is the following:
nb_card.nb_event value error
nb_card is the card number (the XXX in Cards/param_card_XXX.dat). a correspondance with your modify parameter is show in ./MYPROCESS/Events/MY_RUN_NAME/likelihood_value.out or in ./Cards/mapping_card.dat)
nb_event is the event number. (you can read this event in ./SubProcesses/MW_P_XXXXXXXXXXXXX/MY_RUN_NAME/MY_RUN_NAME_1_NB_EVENT/verif.lhco)
value is the (un)normalized weight
error is the error on this value
Possible causes of failure
failure of ./bin/madweight param (step: 1)
-
IOError: [Errno 2] No such file or directory: './Cards/ident_mw_card.dat'
This indicates that your transfer functions is not loaded properly. Did you perform the generation step $>./bin/newprocess
? If you Downloaded your directory from the web did you assign your transfer functions with $>./bin/change_tf.py
?
- Did you enter an appropriate MadWeight_card.dat ? If you ask to change the value of a parameter which does not exist in the model you are working in, the code will not be able to produce the cards correctly.
failure of ./bin/madweight analyzer (step: 2)
-
bad proc_card information: missing request process tag
Did you modify the proc_card.dat after the launch of ./bin/newprocess ? Then you have to type again
$> ./bin/newprocess
Indeed the proc_card.dat must be the same between this moment and the time where you launch madweight analyzer.
-
FATAL ERROR: NO CHANGE OF VARIABLE you probably put bad option in your card
This error could arrive for two different reason
- You don't use the DecayChain format in your proc_card.dat (-> change your proc_card.dat)
- You apply too strict restriction on available change of variable in MadWeight_card.dat
zero weight numbers
- check the cuts in the run_card.dat. If cuts are applied on rapidity and you assume delta-like function for all visible angles, all phase-space points might be cut.
In this specific case, you can type "./bin/madweight relaunch" just after having suppressed the cuts in the run_card.dat. Note that you can bypass all the cut check via the MadWeight _Card.dat
- An other current possibility is that your decay is forbidden (same coupling are at zero)
result files in directory Event are empty
- make sure that you have collected the results:
$>./bin/madweight.py collect plot
-- Main.OlivierMattelaer - 19 Mar 2009