BlackMax is a generator for rotating and non-rotating semi-classical black holes which can be interfaced to Pythia and Herwig via the Lhef format. It is able to generate different scenarios with extra dimensions. It gives the user the possibility to evaluate the systematics based on models and assumptions of the black hole evolution by changing parameters which influence various stages of the black hole production, formation and evaporation.

BlackMax is also able to generate so called quantum black holes which decay into two body final states.

At the BlackMax home page the user can download the code, manual and relevant papers. You can also subscribe to the email list to stay updated on the latest developments.


The event generation is done in two steps: The generation and decay of the black hole is done with a standalone version of BlackMax. The output file is then passed to either Pythia or Herwig via the Lhef interface for fragmentation and hadronisation of the decay products of the black hole.

Running BlackMax standalone

To run BlackMax standalone one needs to get the actual version from the BlackMax home page. The steering is done with a parameter file. You can adjust the settings to your needs. The parameter Write_LHA_Output_Record has to be set to 1 to create the LHA (Les Houches Accord) conform output file. In this file the parameters used as well as the generated events are stored in XML format.

Due to an initialisation bug in the current BlackMax version 2.00.3 the event generation might crash when the parameter charge_suppression is set to 2. Until a bugfix is released the recommendation is to switch of the charge suppression, i.e. set charge_suppression to 1.

Running the evgen step in Athena

Once the event file is generated it can be used for the event generation within Athena. Since BlackMax produces an output file which follows the rules defined for Les Houches Accord Event Files, it can serve as an input for the existing interface Lhef_i. Via this interface you can start the event generation either with a complete jobOptions script or with a jobOption fragment that runs with the official Job Transformations like csc_evgen_trf.py .

jobOptions file

The interface requires an event file named unweighted_events.lhe in your working directory. This can be done via softlinking in your jobOptions file:

if os.path.exists( 'unweighted_events.lhe' ):
   os.remove( 'unweighted_events.lhe' )
os.symlink( 'BlackMaxLHArecord.lhe','unweighted_events.lhe' )

To print the parameters used to generate the events with BlackMax in the standard output one can use the following lines:

fin = open('unweighted_events.lhe', "r")
for line in fin:
   if "<BMPara>" in line:

print '\n========== Reading BlackMax parameters and cross section ===================\n'

for line in fin:
   if "</BMPara>" in line:
   print line,

print '\n========== Finished reading BlackMax parameters and cross section ==========\n'


A minimal initialisation of Pythia only needs the following option:

Pythia.PythiaCommand =    [ "pyinit user lhef" ]

Some scenarios in BlackMax produce particles which escape our four dimensional world and therefore do not appear in the event file generated by BlackMax. This gives an energy imbalance leading to warnings from the routine TestHepMC. Since this is a physics feature and not a bug one should suppress this warning. One way to do this is to set the threshold to an arbitrarily high number, e.g. 100TeV:

from TruthExamples.TruthExamplesConf import TestHepMC
TestHepMC.EnergyDifference = 100000000.

jobOption fragment for Job Transformations

The procedure to use the event file with the Job Transformations is somewhat different to the standard jobOptions way. The Job Transformations require an input file as with the ending .events. Since it has to be provided as zipped tarball (.tar.gz), one has to rename the event file produced by BlackMax first, e.g. to BlackMaxLHArecord.lhe.events. In a jobOption fragment you have to specify the desired process as before. Additionally you have to configure the EvgenJobTransform. A working jobOption fragment could look like this:

theApp.Dlls += [ "Pythia_i" ]
theApp.TopAlg = ["Pythia"]

# Pythia initialisation for Lhef_i

Pythia = Algorithm( "Pythia" )
Pythia.PythiaCommand =    [

   "pyinit user lhef",           # set the interface
   "pysubs msel 0",      # set the user process
   "pyinit pylisti -1",   # set the event listing detail at initialisation (-1->turn off)
   "pyinit pylistf 2",      # set the event listing detail in the event dump (2->more detail)
   "pyinit dumpr 1 5"      # set the range of events to dump


from TruthExamples.TruthExamplesConf import TestHepMC
TestHepMC.EnergyDifference = 100000000.      # set the energy balance threshold to an arbitrary high number

# Configuration for EvgenJobTransforms
from EvgenJobOptions.PythiaEvgenConfig import evgenConfig
evgenConfig.efficiency = 0.9
evgenConfig.generators = ["Pythia","Lhef"]
evgenConfig.inputfilebase = "BlackMaxLHArecord.lhe"
evgenConfig.minevents  = 1  # Don't crash when testing
evgenConfig.maxeventsfactor = 100000000  # dito

To run the event generation with Job Transformations and the above shown jobOption fragment (named jobOption.fragment.BlackMaxPythia.py) do the following:

tar czf BlackMaxLHArecord.lhe.events.tar.gz BlackMaxLHArecord.lhe.events
csc_evgen_trf.py \
      runNumber=0000 \
      firstEvent=0 \
      maxEvents=1000 \
      randomSeed=1234 \
      jobConfig=jobOption.fragment.BlackMaxPythia.py \
      outputEvgenFile=blackmax.evgen.pool.root \

Release Validation

Contact Person

Victor Lendermann

Major updates:
-- MichaelHenke - 12 May 2009
-- CigdemIssever - 25 Apr 2009
%RESPONSIBLE% MichaelHenke
%REVIEW% Never reviewed

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2009-05-13 - MichaelHenke
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback