Physics Event Simulation at SLD


SLD has programs to simulate various kinds of events and the simulation is done in stages. For events created by e+e- annihilation the simulation has three main stages: beam, annihilation and production of "final state" particles (usually referred to as event generation), and detector response. The second main stage, event generation, can be thought of as a series of substages: initial state radiation, Z0 production, Z0 decay, parton production, hadronization (for Z0 -> qqbar), and particle decays. There are also generators to simulate cosimic rays, SLC muon background, single particles and two photon interactions.

The various stages are typically produced by distinct programs or subprograms of program packages. The general structure of the beam simulation and the event generator packages at SLD are a Jazelle template<> control bank and a program called a processor<>. Standard nomenclature for event generators (and the beam simulation package) is built using the expression MCxxx, where xxx is an arbitrary length name that identifies the package. Examples would be MCSLC for the beam simulation or MCKORZ for the Koralz tau event generator. The control bank name would be MCxxxP.TEMPLATE and the call to the package from IDA<> would be PROCESSOR MCxxx. The code for MCxxx would be found in the DUCS Section DUCSMCxxx.

The control bank contains various user settable parameters that control the execution of the program. For example, the MCDIAG generator can generate a specified number of particles of a given type with certain momenta and the specification of these parameters is done in the control bank, MCDIAGP.TEMPLATE.

Beam Simulation

At present there is only one SLC beam simulation package, MCSLC. The polarization, energy and interation point(IP) of the beams can all be set in MCSLCP.TEMPLATE. Also, the user can set limits for random fluctuation of these parameters. The output of a call to this generator is, in effect, an electron and positron 4-momenta, an electron (average) polarization and an IP location. This information is output in a bank called MCBEAM.TEMPLATE for consumption by an event generator.

Note: Many event generators have an initialization phase which requires certain input parameters such as beam energy. Often this initialization is very time consuming compared to the time to generate an event and the user may find that fluctuating the beam energy causes some generators to reinitialize for each event and thus take a long time per event.

Event Generation

The writing of event generators is usually done by specialists and can be a full time career for several people to produce and maintain a single generator. Thus, most experiments collect generators from producers all over the world. Although there has recently been some attempt at defining interface and nomenclature standards most of the generators in the SLD collection in their original released form very greatly in how they are controlled, how they name particle types and how the events they produce are described. To give all generators a standard SLD interface has required for each generator the writing of individualized interface code. This process is known as SLDizing<> a generator.

Each generator in the SLD collection has its own history and set of peculiarities despite the appearance in what follows to give them all a uniform description. In particular, users should beware of tinkering with the code in a generator, as in, "I have a better idea than the author for a random number generator to use in this generator". In the case of one set of authors we have explicitly promised to make NO modifications to their code without their expressed approval. So, please, check with the SLD generator czar (Gary Bower<>) or the author before you modify a generator. Generators that include higher order effects can be very subtle programs.

Generator Output

The current version of the SLD standard event generator output usually consists of one Jazelle bank for each particle created by the generator (not just the final state particles), the MCPART banks and one bank containing information about the event as a whole, the MCHEAD bank. Formerly, banks of a somewhat different structure were used: MCTRACK, one per particle, MCROOTS, one per particle to describe ancestoral (decay chain) relations and one MCEVENT bank to describe the event. Some generators from that era which have fallen into disuse were never updated to the new bank structure but are still in the SLD set of generators.

The SLD Event Generators

This list summarizes the purpose and status of each SLD generator. More detail on many of them is available.


     PV = Production Version exists (Y=yes, N=no)
     VX = VAX sharable exists (Y=yes, N=no)
     AL = ALPHA shareable exists (Y=yes, N=no) 
     St  = Status (R = Recommended, W = works, U = Unknown, N = does not work)

The generators:

Name      PV VX AL St Description
----      -- -- -- -- -----------

MCBHAG    Y  N  N  U  Bhagen
MCBHLM    Y  Y  Y  R  Bhlumi  - T-Channel only
MCBZ      Y  Y  Y  R  BhlumiZ - Wide angle (ie, with S-channel)
MCEEG     N  N  N  U  Mana & Martinez
MCUBAB    N  Y  Y  W  Unibab  - Wide angle (ie, with S-channel)

Heavy Leptons:
MCBREM    N  N  N  N  Bremmus 
MCKORZ    Y  Y  Y  R  Koralz
MCLEPT    N  N  N  U  Mark II package

MCHRWG54  Y  N  N  U  Herwig 5.4
MCHRWG57  Y  Y  Y  W  Herwig 5.7
MCL63     Y  Y  Y  W  Jetset 6.3 
MCL72     N  N  N  U  Jetset 7.2
MCL73     Y  Y  Y  W  Jetset 7.3
MCL74     Y  Y  Y  R  Jetset 7.4 + Improved Cleo B decay package
MCLUND    Y  Y  Y  W  Jetset 6.3 + B decay package
MCUCLA    Y  N  N  U  UCLA hadronization model

ee -> n gammas
MCRADC    N  N  N  U  Berends & Kleiss

MCSUSY    Y  Y  Y  U

MC1TRK    Y  N  N  U          
MCDIAG    Y  Y  Y  R

Two photons:
MCTOWG    Y  N  N  U

SLC Muons:
MCMUBG    Y  N  N  U

Cosmic rays:
MCCOS     Y  Y  Y  U
MCHWK     Y  N  N  U  Kendall "rotating planes" model

Electron-Proton Collisions!?:
MCEP      Y  Y  Y  U  Lepto 5.2

Detector Simulation

Detector simulation describes the interaction of generator final state particles with the SLD. The SLD is a collection of different kinds of particle detectors each with its own particular way of responding to a particle and producing a signal. Also, there is much passive material in SLD for mechanical support, electronic cables, gas and liquid plumbing systems, etc and particles will interact with and be affected by this material as well although no signal results. Of course, each different kind of particle interacts in its own way with the detector and this can be dependent on the particle's momentum as well.

The output of detector simulation is a set of Jazelle banks generally called the Raw Data banks. These banks are very specific in content and structure to the particular detector system that produces them. These banks are ALMOST always identical to the banks that are produced by the SLD online system when it is taking data.

Early in SLD offline software history there was a suite of programs known as the Fast Monte Carlo or FASTMC which simply "smeared" particle tracks from the generator, digitized them and wrote the results in to Raw Data banks. This was done to in order to have some kind of crude simulation for testing. This system is no longer used but remnants may occassionally be encountered.

The current detector simulation uses the CERN package, GEANT, and is sometimes referred to as the Full Simulation or Slow Simulation package to contrast it to the old FASTMC. GEANT is a very large but well documented package and the SLD interface to it is also very large. For each detector system in SLD there are a set of constant<> files that describe the geometry and materials of the detector as well as parameters which control execution of the simulation in the detector such as step size as a particle is being tracked through the detector. To get the information in the SLD constant files into the common block form used by Geant each system has a set of SLD written initialization programs.

To run the simulation in IDA the command is PROCESSOR GSIM. Most detector systems have a multi-level description from very simple to very complex. For example, the calorimeter can simulate the passage of an electron by the "shower parameterization" method (faster but less accurate) or the full EGS shower program. Or for a detector the detail level of the geometry can very between levels depending on the need. These levels are use selectable in templates or constant files.

Gary Bower
Updated Sept. 25, 1995