<chapter name="Master Switches"> 
 
<h2>Master Switches</h2> 
 
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. 
 
<p/> 
The event generation is subdivided into three levels: the process 
level, the parton level and the hadron level, and flags are grouped 
accordingly. 
 
<h3>Process Level</h3> 
 
The <code>ProcessLevel</code> 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. 
 
<p/> 
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 name="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 <code>Pythia::forceTimeShower(...)</code> method. 
Do allow parton configurations stored in the event record to hadronize 
and hadrons to decay, however, as set by the <code>HadronLevel</code> 
switches. Further details are found 
<aloc href="HadronLevelStandalone">here</aloc>. 
</flag> 
 
<p/> 
For <code>ProcessLevel:all = on</code> one part of the event generation 
on this level may be switched off individually: 
 
<flag name="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 <ei>Z^0, W^+-, t, h^0</ei> 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. 
</flag> 
 
<p/> 
It is possible to stop the generation immediately after the basic 
process has been selected, see <code>PartonLevel:all</code> below. 
 
<h3>PartonLevel</h3> 
 
The <code>PartonLevel</code> class administrates the middle step of the 
event generation, i.e. the evolution from an input (hard) process from 
<code>ProcessLevel</code>, containing a few partons only, to a complete 
parton-level configuration to be handed on to <code>HadronLevel</code>. 
This step involves the application of initial- and final-state radiation, 
multiparton interactions and the structure of beam remnants. 
 
<flag name="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 <code>process</code> record is filled, but the <code>event</code> 
one is then not. 
</flag> 
 
<p/> 
For <code>PartonLevel:all = on</code> some parts of the event generation 
on this level may be switched off individually: 
 
<flag name="PartonLevel:MPI" default="on"> 
Master switch for multiparton interactions; on/off = true/false. 
Further options are found <aloc href="MultipartonInteractions">here</aloc>. 
</flag> 
 
<flag name="PartonLevel:ISR" default="on"> 
Master switch for initial-state radiation; on/off = true/false. 
Further options are found <aloc href="SpacelikeShowers">here</aloc>. 
</flag> 
 
<flag name="PartonLevel:FSR" default="on"> 
Master switch for final-state radiation; on/off = true/false. 
Further options are found <aloc href="TimelikeShowers">here</aloc>. 
If you leave this switch on, the following two switches allow 
more detailed control to switch off only parts of the showers. 
</flag> 
 
<flag name="PartonLevel:FSRinProcess" default="on"> 
Switch for final-state radiation in association with the hard process 
itself; on/off = true/false. In addition <code>PartonLevel:FSR</code> 
must be on for these emissions to occur. 
</flag> 
 
<flag name="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 
<code>PartonLevel:FSR</code> must be on for these emissions to occur. 
</flag> 
 
<flag name="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). 
</flag> 
 
<p/> 
Switching off all the above MPI/ISR/FSR switches is <b>not</b> equivalent 
to setting <code>PartonLevel:all = off</code>. 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 <code>event</code> record. 
It is therefore possible to go on and hadronize the event, if desired. 
In the latter case <b>no</b> 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 name="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 unlike you also set 
<code>HadronLevel:all = off</code> and <code>Check:event = off</code>. 
</flag> 
 
<p/> 
It is possible to stop the generation immediately after the parton level 
has been set up, see <code>HadronLevel:all</code> below. 
 
<h3>HadronLevel</h3> 
 
The <code>HadronLevel</code> class administrates the final step of the 
event generation, wherein the partonic configuration from 
<code>PartonLevel</code> is hadronized, including string fragmentation 
and secondary decays. 
 
<p/> 
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 name="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. 
</flag> 
 
<p/> 
For <code>HadronLevel:all = on</code> some parts of the event generation 
on this level may be switched on or off individually: 
 
<flag name="HadronLevel:Hadronize" default="on"> 
Master switch for hadronization; on/off = true/false. 
Further options are found <aloc href="Fragmentation">here</aloc>. 
</flag> 
 
<flag name="HadronLevel:Decay" default="on"> 
Master switch for decays; on/off = true/false. 
Further options are found <aloc href="ParticleDecays">here</aloc>. 
</flag> 
 
<flag name="HadronLevel:Rescatter" default="off"> 
Master switch for hadronic rescattering, following the hadronization; 
on/off = true/false. 
<note>Note</note>: If this is on, <code>Fragmentation:setVertices</code> and 
<code>HadronVertex:rapidDecays</code> are automatically treated as being on, 
since they provide spacetime information required by rescattering. 
Consider also turning on <code>PartonVertex:setVertex</code>. Further options 
are found <aloc href="HadronicRescattering">here</aloc>. 
</flag> 
 
<flag name="HadronLevel:BoseEinstein" default="off"> 
Master switch for the simulation of Bose-Einstein effects; 
on/off = true/false. Further options are found 
<aloc href="BoseEinsteinEffects">here</aloc>. 
</flag> 
 
<flag name="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 
<aloc href="DeuteronProduction">here</aloc>. 
</flag> 
 
<h3>Printing</h3> 
 
<flag name="Print:quiet" default="off"> 
Can be set on to avoid the printing during program execution, to the 
largest extent possible. This flag acts by setting the relevant values 
for <code>Init:showProcesses</code>, 
<code>Init:showMultipartonInteractions</code>, 
<code>Init:showChangedSettings</code>, 
<code>Init:showAllSettings</code>, 
<code>Init:showChangedParticleData</code>, 
<code>Init:showChangedResonanceData</code>, 
<code>Init:showAllParticleData</code>, 
<code>Init:showOneParticleData</code>, 
<code>Next:numberCount</code>, 
<code>Next:numberShowLHA</code>, 
<code>Next:numberShowInfo</code>, 
<code>Next:numberShowProcess</code>, and 
<code>Next:numberShowEvent</code>. 
The change is to off or 0 for <code>Print:quiet = off</code>, 
and restores to the respective default value for <code>= on</code>. 
Those changes take effect immediately, so individual settings can be 
changed afterwards. 
</flag> 
 
 
</chapter> 
 
<!-- Copyright (C) 2020 Torbjorn Sjostrand --> 
