## Master Switches

Sometimes it may be convenient to omit certain aspects of the event generation chain. This cannot be motivated in a full-blown production run, but can often be convenient for own understanding and for debug purposes. The flags on this page allow just that.

The event generation is subdivided into three levels: the process level, the parton level and the hadron level, and flags are grouped accordingly.

### Process Level

The `ProcessLevel` class administrates the initial step of the event generation, wherein the basic process is selected. Currently this is done either using some of the internal processes, or with Les Houches Accord input.

There could not be a complete event without an initial process, so it would not be a normal action to switch off this step. Furthermore, without a process set, it is also not possible to carry out the tasks on the parton level. It is still possible, however, to hadronize a parton-level configuration provided by some external program.

`flag` ProcessLevel:all (`default = on`)
If off, do not attempt to carry out any generation at all on the process level. For the parton level only final-state radiation is possible, using the `Pythia::forceTimeShower(...)` method. Do allow parton configurations stored in the event record to hadronize and hadrons to decay, however, as set by the `HadronLevel` switches. Further details are found here.

For `ProcessLevel:all = on` one part of the event generation on this level may be switched off individually:

`flag` ProcessLevel:resonanceDecays (`default = on`)
Master switch to allow resonance decays; on/off = true/false. Normal hadrons and leptons do not count as resonances, so this is aimed specifically towards Z^0, W^+-, t, h^0 and similar objects beyond the Standard Model. Do not use this option if you may produce coloured resonances and intend to allow hadronization, since currently the program would not know how to handle this.

It is possible to stop the generation immediately after the basic process has been selected, see `PartonLevel:all` below.

### PartonLevel

The `PartonLevel` class administrates the middle step of the event generation, i.e. the evolution from an input (hard) process from `ProcessLevel`, containing a few partons only, to a complete parton-level configuration to be handed on to `HadronLevel`. This step involves the application of initial- and final-state radiation, multiparton interactions and the structure of beam remnants.

`flag` PartonLevel:all (`default = on`)
If off then stop the generation after the hard process has been generated, but before the parton-level and hadron-level steps. The `process` record is filled, but the `event` one is then not.

For `PartonLevel:all = on` some parts of the event generation on this level may be switched off individually:

`flag` PartonLevel:MPI (`default = on`)
Master switch for multiparton interactions; on/off = true/false. Further options are found here.

`flag` PartonLevel:ISR (`default = on`)
Master switch for initial-state radiation; on/off = true/false. Further options are found here.

`flag` PartonLevel:FSR (`default = on`)
Master switch for final-state radiation; on/off = true/false. Further options are found here. If you leave this switch on, the following two switches allow more detailed control to switch off only parts of the showers.

`flag` PartonLevel:FSRinProcess (`default = on`)
Switch for final-state radiation in association with the hard process itself; on/off = true/false. In addition `PartonLevel:FSR` must be on for these emissions to occur.

`flag` PartonLevel:FSRinResonances (`default = on`)
Master switch for final-state radiation in any resonance decays subsequent to the hard process itself; on/off = true/false. In addition `PartonLevel:FSR` must be on for these emissions to occur.

`flag` PartonLevel:earlyResDec (`default = off`)
If on then do resonance decays early, before beam handling including colour reconnection. If off then decays are done afterwards, and so are unaffected by colour reconnection. The early-decay option is still primitive, for some first studies. Eventually the choice should be made individually for each resonance based on lifetime (and the environment).

Switching off all the above MPI/ISR/FSR switches is not equivalent to setting `PartonLevel:all = off`. In the former case a minimal skeleton of parton-level operations are carried out, such as tying together the scattered partons with the beam remnants into colour singlets, and storing this information in the `event` record. It is therefore possible to go on and hadronize the event, if desired. In the latter case no operations at all are carried out on the parton level, and therefore it is also not possible to go on to the hadron level.

`flag` PartonLevel:Remnants (`default = on`)
Master switch for addition of beam remnants; on/off = true/false. Only intended for very special applications, and cannot be used to generate complete events. Specifically, unlike the other switches above, the program will complain and possibly crash unless you also set `HadronLevel:all = off` and `Check:event = off`.

It is possible to stop the generation immediately after the parton level has been set up, see `HadronLevel:all` below.

### HadronLevel

The `HadronLevel` class administrates the final step of the event generation, wherein the partonic configuration from `PartonLevel` is hadronized, including string fragmentation and secondary decays.

Most of the code in this class itself deals with subdividing the partonic content of the event into separate colour singlets, that can be treated individually by the string fragmentation machinery. When a junction and an antijunction are directly connected, it also breaks the string between the two, so that the topology can be reduced back to two separate one-junction systems, while still preserving the expected particle flow in the junction-junction string region(s).

`flag` HadronLevel:all (`default = on`)
If off then stop the generation after the hard process and parton-level activity has been generated, but before the hadron-level steps.

For `HadronLevel:all = on` some parts of the event generation on this level may be switched on or off individually:

`flag` HadronLevel:Hadronize (`default = on`)
Master switch for hadronization; on/off = true/false. Further options are found here.

`flag` HadronLevel:Decay (`default = on`)
Master switch for decays; on/off = true/false. Further options are found here.

`flag` HadronLevel:Rescatter (`default = off`)
Master switch for hadronic rescattering, following the hadronization; on/off = true/false.
Note: If this is on, `Fragmentation:setVertices` and `HadronVertex:rapidDecays` are automatically treated as being on, since they provide spacetime information required by rescattering. Consider also turning on `PartonVertex:setVertex`. Further options are found here.

`flag` HadronLevel:QED (`default = off`)
Master switch for hadron-level QED radiation, including during hadron (and tau) decays. This switch only has an effect if the selected shower model allows for hadron-level QED radiation, see further documentation on the pages describing each of PYTHIA's shower models.
Note: The current default is to have hadron-level QED radiation switched off, in order to avoid double-counting of emissions if you link to an external QED-radiation program (such as PHOTOS [Bar94, Dav10]), as is the norm in many collaborations.

`flag` HadronLevel:BoseEinstein (`default = off`)
Master switch for the simulation of Bose-Einstein effects; on/off = true/false. Further options are found here.

`flag` HadronLevel:DeuteronProduction (`default = off`)
Master switch for the production of deuterons and anti-deuterons in an event; on/off = true/false. Further options are found here.