Generators python modules
12.1. Generators python modules#
This module contains convenience functions to setup most commonly used physics generators correctly with their default settings. More information can be found in BELLE2-NOTE-PH-2015-006
- generators.add_aafh_generator(path, finalstate='', preselection=False, enableTauDecays=True, minmass=0.5, subweights=[], maxsubweight=1, maxfinalweight=3.0, eventType='')[source]#
Add the default two photon generator for four fermion final states
- Parameters
path (basf2.Path) – path where the generator should be added
finalstate (str) – either “e+e-e+e-”, “e+e-mu+mu-”, “e+e-tau+tau-”, “mu+mu-mu+mu-” or “mu+mu-tau+tau-”
preselection (bool) – if True, select events with at least one medium pt particle in the CDC acceptance
enableTauDecays (bool) – if True, allow tau leptons to decay (using EvtGen)
minmass (float) – minimum invariant mass
subweights (list(float)) – list of four or eight values (first four are interpreted as WAP, rest as WBP) which specify the relative weights for each of the four sub generators
maxsubweight (float) – maximum expected subgenerator weight for rejection scheme
maxfinalweight (float) – maximum expected final weight for rejection scheme
eventType (str) – event type information
- generators.add_babayaganlo_generator(path, finalstate='', minenergy=0.01, minangle=10.0, fmax=- 1.0, generateInECLAcceptance=False, eventType='')[source]#
Add the high precision QED generator BabaYaga@NLO to the path.
- Parameters
path (basf2.Path) – path where the generator should be added.
finalstate (str) – ee (e+e-) or gg (gammagamma).
minenergy (float) – minimum particle (leptons for ‘ee’, photons for ‘gg’) energy in GeV.
minangle (float) – angular range from minangle to 180-minangle for primary particles (in degrees).
fmax (float) – maximum of differential cross section weight. This parameter should be set only by experts.
generateInECLAcceptance (bool) – if True, the GeneratorPreselection module is used to select only events with both the primary particles within the ECL acceptance.
eventType (str) – event type information
- generators.add_bhwide_generator(path, minangle=0.5)[source]#
Add the high precision QED generator BHWIDE to the path. Settings are the default L1/HLT study settings with a cross section of about 124000 nb (!)
- Parameters
path (basf2.Path) – path where the generator should be added
minangle (float) – minimum angle of the outgoing electron/positron in the CMS in degrees
- generators.add_continuum_generator(path, finalstate, userdecfile='', *, skip_on_failure=True, eventType='')[source]#
Add the default continuum generators KKMC + PYTHIA including their default decfiles and PYTHIA settings
See also
add_inclusive_continuum_generator()
to add continuum generation with preselected particles- Parameters
path (basf2.Path) – path where the generator should be added
finalstate (str) – uubar, ddbar, ssbar, ccbar
userdecfile (str) – EvtGen decfile used for particle decays
skip_on_failure (bool) – If True stop event processing right after fragmentation fails. Otherwise continue normally
eventType (str) – event type information
- generators.add_cosmics_generator(path, components=None, global_box_size=None, accept_box=None, keep_box=None, geometry_xml_file='geometry/Beast2_phase2.xml', cosmics_data_dir='data/generators/modules/cryinput/', setup_file='generators/scripts/cry.setup', data_taking_period='gcr2017', top_in_counter=False)[source]#
Add the cosmics generator CRY with the default parameters to the path.
Warning
Please remember to also change the reconstruction accordingly, if you set “special” parameters here!
- Parameters
path (basf2.Path) – path where the generator should be added
components (list(str)) – list of geometry components to add in the geometry module, or None for all components.
global_box_size (tuple(float, float, float)) – sets global length, width and height (in meters) in which to generate. Default is
[100, 100, 100]
accept_box (tuple(float, float, float)) – sets the size of the accept box in meter. As a default it is set to
[8.0, 8.0, 8.0]
(the Belle II detector size).keep_box (tuple(float, float, float)) – sets the size of the keep box (keep box >= accept box).
geometry_xml_file (str) – Name of the xml file to use for the geometry.
cosmics_data_dir (str) – parameter CosmicDataDir for the cry module (absolute or relative to the basf2 repo).
setup_file (str) – location of the cry.setup file (absolute or relative to the basf2 repo)
data_taking_period (str) – The cosmics generation will be added using the parameters, that where used in this period of data taking. The periods can be found in
cdc/cr/__init__.py
.top_in_counter (bool) – time of propagation from the hit point to the PMT in the trigger counter is subtracted (assuming PMT is put at -z of the counter).
- generators.add_evtgen_generator(path, finalstate='', signaldecfile=None, coherentMixing=True, parentParticle='Upsilon(4S)', eventType='')[source]#
Add EvtGen for mixed and charged BB
- Parameters
path (basf2.Path) – path where the generator should be added
finalstate (str) – Either “charged” for generation of generic B+/B-, “mixed” for generic B0/anti-B0, or “signal” for generation of user-defined signal mode
signaldecfile (str) – path to decfile which defines the signal decay to be generated (only needed if
finalstate
set to “signal”)coherentMixing – Either True or False. Switches on or off the coherent decay of the B0-B0bar pair. It should always be True, unless you are generating Y(5,6S) -> BBar. In the latter case, setting it False solves the internal limitation of Evtgen that allows to make a coherent decay only starting from the Y(4S).
parentParticle (str) – initial state (used only if it is not Upsilon(4S).
eventType (str) – event type information
- generators.add_generator_preselection(path, emptypath, nChargedMin=0, nChargedMax=999, MinChargedP=- 1.0, MinChargedPt=- 1.0, MinChargedTheta=0.0, MaxChargedTheta=180.0, nPhotonMin=0, nPhotonMax=999, MinPhotonEnergy=- 1, MinPhotonTheta=0.0, MaxPhotonTheta=180.0, applyInCMS=False, stableParticles=False)[source]#
Adds generator preselection. Should be added to the path after the generator.add_abc_generator but before simulation.add_simulation modules It uses all particles from the event generator (i.e. primary, non-virtual, non-initial particles). It checks if the required conditions are fulfilled. If not, the events are given to the emptypath. The main use case is a reduction of simulation time. Note that you have to multiply the generated cross section by the retention fraction of the preselection.
- Parameters
path (basf2.Path) – path where the generator should be added
emptypath (basf2.Path) – path where the skipped events are given to
nChargedMin (int) – minimum number of charged particles
nChargedMax (int) – maximum number of charged particles
MinChargedP (float) – minimum charged momentum [GeV]
MinChargedPt (float) – minimum charged transverse momentum (pt) [GeV]
MinChargedTheta (float) – minimum polar angle of charged particle [deg]
MaxChargedTheta (float) – maximum polar angle of charged particle [deg]
nPhotonMin (int) – minimum number of photons
nPhotonMax (int) – maximum number of photons
MinPhotonEnergy (float) – minimum photon energy [GeV]
MinPhotonTheta (float) – minimum polar angle of photon [deg]
MaxPhotonTheta (float) – maximum polar angle of photon [deg]
applyInCMS (bool) – if true apply the P,Pt,theta, and energy cuts in the center of mass frame
stableParticles (bool) – if true apply the selection criteria for stable particles in the generator
- generators.add_inclusive_continuum_generator(path, finalstate, particles, userdecfile='', *, include_conjugates=True, max_iterations=100000, eventType='')[source]#
Add continuum generation but require at least one of the given particles be present in the event.
For example to only generate ccbar events which contain a “D*+” or an electron one could would use
>>> add_inclusive_continuum_generator(path, "ccbar", ["D*+", 11])
If you are unsure how the particles are named in Belle II please have a look at the
b2help-particles
executable or thepdg
python module.See also
add_continuum_generator()
to add continuum generation without preselection- Parameters
path (basf2.Path) – path to which the generator should be added
finalstate (str) – uubar, ddbar, ssbar, ccbar
particles (list) – A list of particle names or pdg codes. An event is only accepted if at lease one of those particles appears in the event.
userdecfile (str) – EvtGen decfile used for particle decays
include_conjugates (bool) – If True (default) accept the event also if a charge conjugate of the given particles is found
max_iterations (int) – maximum tries per event to generate the requested particle. If exceeded processing will be stopped with a
FATAL
error so for rare particles one might need a larger number.eventType (str) – event type information
- generators.add_kkmc_generator(path, finalstate='', signalconfigfile='', useTauolaBelle=False, tauinputfile='', eventType='')[source]#
Add the default muon pair and tau pair generator KKMC. For tau decays, TauolaBelle and TauolaBelle2 are available. Signal events can be produced setting a configuration file. Please notice that the configuration files for TauolaBelle and TauolaBelle2 has a very different structure (see the examples below generators/examples).
- Parameters
path (basf2.Path) – path where the generator should be added
finalstate (str) – either “mu-mu+” or “tau-tau+”
signalconfigfile (str) – File with configuration of the signal event to generate. It doesn’t affect mu-mu+ decays.
useTauolaBelle (bool) – If true, tau decay is driven by TauolaBelle. Otherwise TauolaBelle2 is used. It doesn’t affect mu-mu+ decays.
tauinputfile (str) – File to override KK2f_defaults. Only [sometimes] needed when tau decay is driven by TauolaBelle.
eventType (str) – event type information
- generators.add_koralw_generator(path, finalstate='', enableTauDecays=True, eventType='')[source]#
Add KoralW generator for radiative four fermion final states (only four leptons final states are currently supported).
- Parameters
path (basf2.Path) – path where the generator should be added
finalstate (str) – either ‘e+e-e+e-’, ‘e+e-mu+mu-’, ‘e+e-tau+tau-’, ‘mu+mu-mu+mu-’, ‘mu+mu-tau+tau-’ or ‘tau+tau-tau+tau-’
enableTauDecays (bool) – if True, allow tau leptons to decay (using EvtGen)
eventType (str) – event type information
- generators.add_phokhara_evtgen_combination(path, final_state_particles, user_decay_file, beam_energy_spread=True, isr_events=False, min_inv_mass_vpho=0.0, max_inv_mass_vpho=0.0, eventType='')[source]#
Add combination of PHOKHARA and EvtGen to the path. Phokhara is acting as ISR generator by generating e+ e- -> mu+ mu-, the muon pair is then replaced by a virtual photon. Finally, the virtual photon is decayed by EvtGen.
- Parameters
path (basf2.Path) – Path where the generator should be added.
final_state_particles (list) – List of final-state particles of the virtual-photon decay. It is necessary to define the correct mass threshold in PHOKHARA. For example, for the process e+ e- -> J/psi eta_c, the list should be [‘J/psi’, ‘eta_c’]; it does not depend on subsequent J/psi or eta_c decays.
user_decay_file (str) – Name of EvtGen user decay file. The initial particle must be the virtual photon (vpho).
beam_energy_spread (bool) – Whether beam-energy spread should be simulated
isr_events (bool) – If true, then PHOKHARA is used with ph0 (LO in basf2) = 0, i.e. generation of processes with one photon.
min_inv_mass_hadrons (float) – Minimum invariant mass of the virtual photon. This parameter is used only if isr_events is true, otherwise the minimum mass is computed from the masses of the final-state particles.
max_inv_mass_hadrons (float) – Maximum invariant mass of the virtual photon. This parameter is used only if isr_events is true, otherwise the maximum mass is not restricted.
eventType (str) – event type information
- generators.add_phokhara_generator(path, finalstate='', eventType='')[source]#
Add the high precision QED generator PHOKHARA to the path. Almost full acceptance settings for photons and hadrons/muons.
- Parameters
path (basf2.Path) – path where the generator should be added
finalstate (str) – One of the following final states: “mu+mu-”, “pi+pi-”, “pi+pi-pi0”, “pi+pi-pi+pi-” (or “2(pi+pi-)”), “pi+pi-pi0pi0” or (“pi+pi-2pi0”), “pi+pi-eta”, “K+K-”, “K0K0bar”, “ppbar”, “n0n0bar” or “Lambda0Lambda0bar”
eventType (str) – event type information
- generators.add_treps_generator(path, finalstate='', useDiscreteAndSortedW=False, eventType='')[source]#
Add TREPS generator to produce hadronic two-photon processes.
- Parameters
path (basf2.Path) – path where the generator should be added
finalstate (str) – “e+e-pi+pi-”, “e+e-K+K-” or “e+e-ppbar”
useDiscreteAndSortedW (bool) – if True, wListTableFile is used for discrete and sorted W. evtNumList must be set proper value.
eventType (str) – event type information