Generators

Home Computing DAQ E-mail Notes Meetings Subsystems Search

 

This page is obsolete and no longer maintained.

The new address for the Gauss/Generator web site is:

http://cern.ch/LHCb-release-area/DOC/gauss/generator

 

The first phase of the Gauss simulation software consists in generating pp collisions and the decay of unstable particles. The generator events are then given to the simulation phase where they are tracked inside the detector volumes. Interfacing a new external generator to Gauss usually means to write a new Production tool.

General Structure

The generator sequence uses one main algorithm Generation calling several tools to perform specific actions needed during the generation of events. Generally, the logic of the generation sequence is the following:

  1. Compute the number of pile-up interactions to generate for this event (done with a Pile-Up tool)
  2. Generate this many interactions:
    1. Compute the beam parameters for this interaction (done with a Beam tool)
    2. Generate an interaction according to these parameters with an external generator (done with a Production tool)
  3. Analyze the event:
    1. Keep only events with the interesting particles (done in a Sample Generation tool)
    2. Apply generator level cuts for this interaction (done in a Cut tool)
  4. Decay all particles (done in a Decay tool)
  5. Apply generator level cuts on the full event, including pile-up interactions (done in a Full Event Cut tool)
  6. Smear the vertex of the collision (done in a Smearing tool)

The locations where the various tools are executed are:

The main algorithm and the abstract interfaces of these tools are located in the package Gen/Generators.

At the end of the Gauss job, various counters are printed to compute cross-sections, efficiencies and to monitor the generation behaviour. They are described in more details here.

Main Algorithm

The main algorithm is called Generation. It has the following options which can be set to obtain different configurations:

Option Name

Default Value

Description

SampleGenerationTool

"MinimumBias"

Name of the Sample Generation Tool to be used in the generation. Defines the kind of sample which will be produced.

EventType

30000000

Event type of the sample which will be generated. Event type conventions are described in the note.

HepMCEventLocation

"/Event/Gen/HepMCEvents"

Location where to store generated events in HepMC format.

GenHeaderLocation

 

Location where to store GenHeaders.

GenCollisionLocation

 

Location where to store information on collisions.

PileUpTool

"FixedLuminosity"

Name of the Pile Up tool used to determine the number of pile-up interactions in each event.

DecayTool

"EvtGenDecay"

Name of the Decay tool used to decay all hadrons. If empty, all hadrons will be left undecayed.

VertexSmearingTool

"BeamSpotSmearVertex"

Name of the Smearing tool used to smear the collision vertex. If left empty, no smearing is applied.

FullGenEventCutTool

""

Name of the Full Event Cut tool to use to apply generator level cuts and reject events base on all the properties (including pile-up interactions). If left empty, no cut will be applied at this level.

 

Pile-Up Tool

Abstract Interface: IPileUpTool.h

Available Implementations:

Option Name

Default Value

Description

Luminosity

2.e32/cm2/s

Value of the instantaneous luminosity.

CrossingRate

30*megahertz

Visible beam crossing rate.

TotalXSection

102.4*millibarn

Total cross section.

Option Name

Default Value

Description

Luminosity

2.e32/cm2/s

Value of the instantaneous luminosity.

CrossingRate

30*megahertz

Visible beam crossing rate.

TotalXSection

102.4*millibarn

Total cross section.

FillDuration

7*3600*s

Duration of the fill.

BeamDecayTime

10*3600*s

Beam decay time.

Option Name

Default Value

Description

NInteractions

1

Number of interactions per event

How to write a new Pile-Up Tool 

Write a tool inheriting from the base class IPileUpTool and which overloads the 2 mandatory virtual functions:

Sample Generation Tool

Abstract Interface: ISampleGenerationTool.h

Available Implementations:

Option Name

Default Value

Description

ProductionTool

PythiaProduction

Name of the Production tool to use to generate interactions.

DecayTool

EvtGenDecay

Name of the Decay tool to use.

LhaPdfCommands

"lhacontrol lhaparm 17 LHAPDF", "lhacontrol lhaparm 16 NOSTAT"

Commands to setup LHAPDF library.

Option Name

Default Value

Description

ProductionTool

PythiaProduction

Name of the Production Tool to use to generate interactions.

DecayTool

EvtGenDecay

Name of the Decay tool to use to decay excited states.

CutTool

LHCbAcceptance

Name of the Cut tool to apply on the main interaction.

LhaPdfCommands

"lhacontrol lhaparm 17 LHAPDF", "lhacontrol lhaparm 16 NOSTAT"

Commands to setup LHAPDF library.

InclusivePIDList

 

List of PDG IDs of particles to produce inclusively.

Option Name

Default Value

Description

ProductionTool

PythiaProduction

Name of the Production Tool to use to generate interactions.

DecayTool

EvtGenDecay

Name of the Decay tool to use to decay excited states.

CutTool

LHCbAcceptance

Name of the Cut tool to apply on the main interaction.

LhaPdfCommands

"lhacontrol lhaparm 17 LHAPDF", "lhacontrol lhaparm 16 NOSTAT"

Commands to setup LHAPDF library.

SignalPIDList

 

List of PDG IDs of particles to produce inclusively.

Clean

false

Generates clean events putting the clean event in .

Option Name

Default Value

Description

ProductionTool

PythiaProduction

Name of the Production Tool to use to generate interactions.

DecayTool

EvtGenDecay

Name of the Decay tool to use to decay excited states.

CutTool

LHCbAcceptance

Name of the Cut tool to apply on the main interaction.

LhaPdfCommands

"lhacontrol lhaparm 17 LHAPDF", "lhacontrol lhaparm 16 NOSTAT"

Commands to setup LHAPDF library.

SignalPIDList

 

List of PDG IDs of particles to produce inclusively.

Clean

false

Generates clean events putting the clean event in .

Option Name

Default Value

Description

ProductionTool

PythiaProduction

Name of the Production Tool to use to generate interactions.

DecayTool

EvtGenDecay

Name of the Decay tool to use to decay excited states.

CutTool

LHCbAcceptance

Name of the Cut tool to apply on the main interaction.

LhaPdfCommands

"lhacontrol lhaparm 17 LHAPDF", "lhacontrol lhaparm 16 NOSTAT"

Commands to setup LHAPDF library.

SignalPIDList

 

List of PDG IDs of particles to produce inclusively.

Clean

False

Generates clean events putting the clean event in .

MaxNumberOfRepetitions

500

Maximum number of times the hadronization can be repeated before cancelling the event.

Option Name

Default Value

Description

ProductionTool

PythiaProduction

Name of the Production Tool to use to generate interactions.

DecayTool

EvtGenDecay

Name of the Decay tool to use to decay excited states.

CutTool

LHCbAcceptance

Name of the Cut tool to apply on the main interaction.

LhaPdfCommands

"lhacontrol lhaparm 17 LHAPDF", "lhacontrol lhaparm 16 NOSTAT"

Commands to setup LHAPDF library.

How to write a new Sample Generation Tool 

The provided sample generation tools should already cover all needs.

Production Tool

Abstract Interface: IProductionTool.h

Available Implementations:

Option Name Default Value Description
Commands Settings for standard minimum bias List of commands to setup PYTHIA.
BeamToolName "CollidingBeams" Name of the Beam tool used to generate beam parameters.

How to write a new Production Tool 

To interface a new external generator (for example MyGen) to Gauss, a new production tool must be written together with additional pieces of code to setup the external generator or to modify its behaviour. All these parts should be placed in a new cmt package called Gen/LbMyGen, depending on the base package Gen/Generators. In particular, it is important to use inside the external generator the same random number generator than the one used in Gauss (and based on the Gaudi Random Generator Service), in order to ensure a reproducible behaviour of the generator sequence. Examples can be found in the packages Gen/LbPythia and Gen/LbHerwig.

Then write a tool inheriting from the interface IProductionTool and implementing the following functions:

 

Beam Tool

Abstract Interface

Available Implementations

How to write a new Beam Tool 

 

Decay Tool

Abstract Interface

Available Implementations

How to write a new Decay Tool 

 

Cut Tool

Abstract Interface

Available Implementations

How to write a new Cut Tool 

 

Full Event Cut Tool

Abstract Interface

Available Implementations

How to write a new Full Event Cut Tool 

 

Smearing Tool

Abstract Interface

Available Implementations

How to write a new Pile-Up Tool 

 

 

 

 

 

Last update: 13 December 2006

Please send questions or comments to Patrick Robbe