# How whizard treat on-shell and off-shell particles

Asked by David Wang on 2020-09-07

Dear Whizard team,

What's the criteria of whizard in determining whether a particle is on-shell or off-shell.

For instance, with the default run_card, MadGraph treats particles as on-shell if their invariant mass is in the range M \pm 15*Gamma, with M the particle mass, Gamma the width, and 15 the default number that we have control over in the run_card.

Does Whizard have an analogous setting?

## Question information

Language:
English Edit question
Status:
Solved
For:
WHIZARD Edit question
Assignee:
Simon Braß Edit question
Solved by:
Juergen Reuter
Solved:
2020-09-17
Last query:
2020-09-17
2020-09-09
 Simon Braß (sbrass) said on 2020-09-07: #1

Dear David,

WHIZARD and Madgraph tackle the underlying problems regarding integration and event generation slightly different.
Therefore, it's quite difficult to give a "simple" answer.

However, given your question, I may guide you in following directions:

1) Phase-space generation? We do not have a width multiplicator, as we apply different phase-space mapping then Madgraph.
You can read on the options in our manual, "5.7 Cross sections: The main phase space setup wood".
However, the defaults should be fine.

2) Event generation with resonances? We have so-called resonance histories which allow to insert a resonance (history) into an event using a probabilistic approach (and more...).
The major point is to compute the full-matrix element (with no restrictions), and insert during event generation a (randomly) chosen intermediate decay channel (i.e. resonance history), which is then flagged in the event file accordingly.

Here, we allow to specify a width multiplicator, "resonance_on_shell_limit [= 4]".
I recommend you to read our manual, "10.6.4 Resonance insertion in the event record", which may answer everything else.

Cheers,
Simon

 David Wang (david-mhw) said on 2020-09-07: #2

Thanks! I think the second point you mentioned is related to our issue.
More specifically, the process is mu mu -> W Z/gamma -> W -> T bbar process where T is vector-like quark. We pick several collider energy to calculate the cross section. However, at some energy point, there is clearly a peak(order of magnitude higher) in the cross section values. This peak doesn't occur in the MadGraph simulation when applying the exact same cuts. So, I guess the resonance might not be physical.

 Juergen Reuter (j.r.reuter) said on 2020-09-08: #3

The second point that Simon mentioned is only relevant for parton showering, and you would see it then in detector-level observables like energy and multiplicity distributions of photons, neutral hadrons, etc. With peak in the cross section, you mean a peak in the curve for the total cross section as a function of the muon collider energy, correct? What is your process definition, what are the cuts? What are the input parameters? Was the integration stable? Could you paste here the SINDARIN file and the relevant parts of the whizard.log?

 Simon Braß (sbrass) said on 2020-09-09: #4

Hi David,

I think I did not went on in too much detail with my explanation:
1) You have to explicitly set on the resonance history, and then, I will only insert additional particle information into event record, without changing the sum of weights / cross section.
2) You are looking at total cross sections (for different beam energies), so, we are only talking about phase-space mapping and integration.
Without knowing your exact approach, I (and the other) can not provide further help at this point (Jürgen pointed this problem already out).

 David Wang (david-mhw) said on 2020-09-09: #5

Thanks! The following is part of my sin script and the whizard.log. This is a BSM process so beside scanning through the collider energy, we also scan through the possible particle mass.

This is a charged VBF process and the Feynman diagram should look like the following and the vertex are given by the TW card parameters.

mu mu -> W Z/gamma -> W -> T bbar

You can see that from the log file with the same sqrts(center of mass) energy 6 TeV, when MTP = 1TeV, the cross section is about 1e2, when MTP=2.5TeV, the cross section is about 1e3, then it drops to 1e-2 at MTP=5TeV(which I did not show but you get the idea). So, the weird resonance is occurred at MTP=2.5TeV.

The cuts are Pt and eta cuts on initial muons. One interesting fact is that if we do a cut on on-shell W,
and all M > 150 GeV ["vm~", "mu-"]
and all M > 150 GeV ["vm", "mu+"]
the resonance can be smoothed out quite a bit.
-----------------------------------------------------------------------------------------
# import the ufo model file
model = VLQ (ufo)

# define parameters
# TW card
xitpw = 1.0 xitpz = 0.0 xitph = 0.0
xibpw = 1.0 xibpz = 0.0 xibph = 0.0

# define the process
process myprocess = "mu-", "mu+" => ("tp", "b~", "vm~", "mu-") + ("tp~", "b", "vm", "mu+")
compile

cuts = all Pt > 30 GeV ["mu-","mu+"]
and all abs(Eta) < 2.5 ["mu+"]
and all abs(Eta) < 2.5 ["mu-"]

scan sqrts = (1 TeV, 3 TeV, 6 TeV, 10 TeV, 14 TeV)
{
# scan through different particle masses
scan MTP = ( 0.1 TeV, 0.2 TeV, 0.25 TeV, 0.35 TeV, 0.5 TeV, 0.8 TeV, 1 TeV, 1.2 TeV, 2.3 TeV, 2.5 TeV, 2.7 TeV, 4.8 TeV, 5 TeV, 5.2 TeV, 10 TeV, 25 TeV)
{
if MTP < sqrts then
seed = 12345

# iteration control
accuracy_goal = 1.4
integrate (myprocess){iterations = 6:20000: "gw", 3:50000}

# record mass points, cross section, error of cross section, collider energy
record lineshape (MTP/1e3, integral(myprocess), error(myprocess), sqrts/1e3)

# simulation
string $filename = sprintf "%s_%s_MTP%.3fTeV_s%.0fTeV" ($finalstate, $mode, MTP/1e3, sqrts/1e3) simulate (myprocess) {n_events = 10000 sample_format = lhef$sample = $filename} else endif } string$exten_name = sprintf "_to_s%.0fTeV.dat" (sqrts/1e3)
compile_analysis {$out_file =$title & $exten_name} } |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 19988 1.2789566E+02 2.11E+00 1.65 2.33* 6.28 2 19978 1.2738612E+02 5.49E-01 0.43 0.61* 21.08 | VAMP: accuracy goal reached; skipping iterations |-----------------------------------------------------------------------------| 2 39966 1.2741858E+02 5.32E-01 0.42 0.83 21.08 0.05 2 |-----------------------------------------------------------------------------| 3 49990 1.2735932E+02 3.52E-01 0.28 0.62 15.49 4 49990 1.2768718E+02 3.52E-01 0.28 0.62* 15.04 5 49990 1.2683915E+02 3.45E-01 0.27 0.61* 14.61 |-----------------------------------------------------------------------------| 5 149970 1.2728963E+02 2.02E-01 0.16 0.61 14.61 1.51 3 |=============================================================================| | Time estimate for generating 10000 events: 0d:00h:00m:12s | Starting integration for process 'myprocess' part 2 | Integrate: iterations = 6:20000:"gw", 3:50000 | Integrator: 16 chains, 19 channels, 8 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 20000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 19988 1.2543916E+02 2.19E+00 1.74 2.46* 6.29 2 19979 1.2652631E+02 5.83E-01 0.46 0.65* 20.48 | VAMP: accuracy goal reached; skipping iterations |-----------------------------------------------------------------------------| 2 39967 1.2645421E+02 5.63E-01 0.45 0.89 20.48 0.23 2 |-----------------------------------------------------------------------------| 3 49989 1.2671555E+02 3.71E-01 0.29 0.65 13.83 4 49989 1.2666061E+02 3.69E-01 0.29 0.65* 13.03 5 49989 1.2749646E+02 3.79E-01 0.30 0.67 11.30 |-----------------------------------------------------------------------------| 5 149967 1.2694841E+02 2.15E-01 0.17 0.66 11.30 1.55 3 |=============================================================================| | Time estimate for generating 10000 events: 0d:00h:00m:15s | Integrate: sum of all components |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 0 2.5423804E+02 2.95E-01 0.12 0.00* 12.74 |=============================================================================| [user variable]$filename = "T_bbar_chargedVBF_MTP1.000TeV_s6TeV"
n_events = 10000
$sample = "T_bbar_chargedVBF_MTP1.000TeV_s6TeV" | Starting simulation for process 'myprocess' | Simulate: using integration grids from file 'myprocess.m1.vg' | Simulate: using integration grids from file 'myprocess.m2.vg' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 12346 | OpenMP: Using 4 threads | Simulation: requested number of events = 10000 | corr. to luminosity [fb-1] = 3.9333E+01 | Events: writing to LHEF file 'T_bbar_chargedVBF_MTP1.000TeV_s6TeV.lhe' | Events: writing to raw file 'T_bbar_chargedVBF_MTP1.000TeV_s6TeV.evx' | Events: generating 10000 unweighted, unpolarized events ... | Events: event normalization mode '1' | ... event sample complete. | Events: actual unweighting efficiency = 12.92 % Warning: Encountered events with excess weight: 8 events ( 0.080 %) | Maximum excess weight = 9.533E-01 | Average excess weight = 2.806E-04 | Events: closing LHEF file 'T_bbar_chargedVBF_MTP1.000TeV_s6TeV.lhe' | Events: closing raw file 'T_bbar_chargedVBF_MTP1.000TeV_s6TeV.evx' | Restoring model 'VLQ' VLQ.MTP => 2.500000000000E+03 seed = 12345 accuracy_goal = 1.400000000000E+00 | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 12345 | Initializing integration for process myprocess: | Beam structure: [any particles] | Beam data (collision): | mu- (mass = 0.0000000E+00 GeV) | mu+ (mass = 0.0000000E+00 GeV) | sqrts = 6.000000000000E+03 GeV | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'myprocess.i1.phs' | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'myprocess.i2.phs' | ------------------------------------------------------------------------ | Process [scattering]: 'myprocess' | Library name = 'default_lib' | Process index = 1 | Process components: | 1: 'myprocess_i1': mu-, mu+ => tp, b~, vm~, mu- [omega] | 2: 'myprocess_i2': mu-, mu+ => tp~, b, vm, mu+ [omega] | ------------------------------------------------------------------------ | Phase space: 19 channels, 8 dimensions | Phase space: found 19 channels, collected in 16 groves. | Phase space: Using 19 equivalences between channels. | Phase space: wood | Phase space: 19 channels, 8 dimensions | Phase space: found 19 channels, collected in 16 groves. | Phase space: Using 19 equivalences between channels. | Phase space: wood | Applying user-defined cuts. | OpenMP: Using 4 threads | Starting integration for process 'myprocess' part 1 | Integrate: iterations = 6:20000:"gw", 3:50000 | Integrator: 16 chains, 19 channels, 8 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 20000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 19988 1.5108061E+03 2.29E+01 1.51 2.14* 9.77 2 19979 1.4707417E+03 5.72E+00 0.39 0.55* 29.04 | VAMP: accuracy goal reached; skipping iterations |-----------------------------------------------------------------------------| 2 39967 1.4730991E+03 5.55E+00 0.38 0.75 29.04 2.89 2 |-----------------------------------------------------------------------------| 3 49990 1.4702467E+03 3.61E+00 0.25 0.55* 26.67 4 49990 1.4747081E+03 3.56E+00 0.24 0.54* 26.41 5 49990 1.4777945E+03 3.51E+00 0.24 0.53* 26.06 |-----------------------------------------------------------------------------| 5 149970 1.4743182E+03 2.05E+00 0.14 0.54 26.06 1.13 3 |=============================================================================| | Time estimate for generating 10000 events: 0d:00h:00m:07s | Starting integration for process 'myprocess' part 2 | Integrate: iterations = 6:20000:"gw", 3:50000 | Integrator: 16 chains, 19 channels, 8 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 20000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 19988 1.4660652E+03 2.33E+01 1.59 2.25* 9.65 2 19979 1.4658522E+03 5.80E+00 0.40 0.56* 26.96 | VAMP: accuracy goal reached; skipping iterations |-----------------------------------------------------------------------------| 2 39967 1.4658646E+03 5.63E+00 0.38 0.77 26.96 0.00 2 |-----------------------------------------------------------------------------| 3 49994 1.4699485E+03 3.65E+00 0.25 0.56* 25.88 4 49994 1.4669227E+03 3.63E+00 0.25 0.55* 25.47 5 49994 1.4677451E+03 3.59E+00 0.24 0.55* 24.99 |-----------------------------------------------------------------------------| 5 149982 1.4681957E+03 2.09E+00 0.14 0.55 24.99 0.18 3 |=============================================================================| | Time estimate for generating 10000 events: 0d:00h:00m:07s | Integrate: sum of all components |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 0 2.9425139E+03 2.93E+00 0.10 0.00* 25.51 |=============================================================================| [user variable]$filename = "T_bbar_chargedVBF_MTP2.500TeV_s6TeV"

 Juergen Reuter (j.r.reuter) said on 2020-09-09: #6

This just looks like pair-production of the VLQ which then decays to b, mu+, nu_mu etc. That would clearly peak if 2 * MTP ~ sqrts.
BTW, your first cut seems void, as Pt > 30 GeV [mu-, mu+] is the relative Pt of mu- with respect to mu+, not the Pt relative to the beam of either mu-- or mu+. The latter would be written Pt > 30 GeV [mu-:mu+] as a container. As there is never a mu- and a mu+ in the final state, this cut doesn't do anything.

 David Wang (david-mhw) said on 2020-09-17: #7

Thanks Juergen Reuter, that solved my question.