Public homepage
Who's who?

People

Institutes

Physics groups

Detector & Data

Detector

Components

Luminosity

Computing

Physics Results

Overview

Misc.

Selected links

Lectures

MPP ZEUS page

MPP home page

MPP ZEUS page

MPP ZEUS members

Public homepageInternal homepage

ZEUS Data Preservation project at Max-Planck Institut für Physik

ZEUS Monte Carlo events generation with old generators

This is a step-by-step instruction to produce ZEUS simulated events in ADAMO format using existing, compiled executables. As of 2016 most contemporary Linux systems can be used, but it is not foreseen for the future. It is likely that in the future it will be possible to produce Monte Carlo events in this way only on a virtual machine with Scientific Linux 6 or compatible. This is NOT a recomented option to produce Monte Carlo events.
  1. Find the generator excutable that you need. Particularly the officially compliled generators can be found here: /afs/desy.de/group/zeus/ZEUSSysSoft/Released/Support/Monte_Carlo/Generators/amadeus/v2010a/exe/i586-sl5-linux or in the /usr/bin on the Virtual Machines.
    [zeus@mpp-dphep-CentOS-7-x86_64-DVD-1511 ~]$ ls /usr/bin/amadeus_*
    /usr/bin/amadeus_diffvm20.exe   /usr/bin/amadeus_djangoh16.exe   /usr/bin/amadeus_hexf40.exe    /usr/bin/amadeus_pythia6221.exe     /usr/bin/amadeus_qcdins200.exe    /usr/bin/amadeus_ridi20.exe
    /usr/bin/amadeus_dipsi25.exe    /usr/bin/amadeus_herwig6504.exe  /usr/bin/amadeus_lqmgen11.exe  /usr/bin/amadeus_pythia6416.exe     /usr/bin/amadeus_rapgap20818.exe  /usr/bin/amadeus_susana20.exe
    /usr/bin/amadeus_djangoh13.exe  /usr/bin/amadeus_herwig6510.exe  /usr/bin/amadeus_pythia57.exe  /usr/bin/amadeus_pythia6416lha.exe  /usr/bin/amadeus_rapgap30.exe     /usr/bin/amadeus_susygen30.exe
    [zeus@mpp-dphep-CentOS-7-x86_64-DVD-1511 ~]$ 
    
    
    Therefore, you have your excutable, for instance amadeus_herwig6510.exe. Please note that many MC samples (e.g. CDMMC) were generated with custom executables. If you need the executables that were actually used ( in the case for CDMMC sample it is amadeus_pythia6221.exe), contact the authors of the samples.
  2. In addition to the executable you will need two GAF files: zdd_load.rz and cnd/CND_GLOBAL.RZ. Those can be found on /afs. On the Virtual Machine these are installed under /usr/share/zmcsp/thegafs
    [zeus@mpp-dphep-CentOS-7-x86_64-DVD-1511 ~]$ find /usr/share/zmcsp/thegafs/
    /usr/share/zmcsp/thegafs/
    /usr/share/zmcsp/thegafs/cnd
    /usr/share/zmcsp/thegafs/cnd/CND_GLOBAL.RZ
    /usr/share/zmcsp/thegafs/zdd_load.rz
    [zeus@mpp-dphep-CentOS-7-x86_64-DVD-1511 ~]$ 
    
    and the environment variables ZEUS_GAF and ZEUS_CAT points to them. Don't forget to comment out appropriete lines in your control cards (ZDIN-PATH).
  3. Some systems are missing the shared fortran 32-bit library libgfortran.so.3. It can be found in the internet. The Virtual Machine has it installed
  4. Finaly you have to prepare your steering cards. Normally one can find good examples of those in the documentation of previously generated samples (e.g. pythia_andrii_excharm_DECC.cards). It is recommended to produce smaller MC files, with 2-3k MC events.
  5. The next step is to prepare the random seeds for AMADEUS, setup the environment, make proper links and run the AMADEUS. It is better to do with a script that will be executed in the directory that contains everything:
    #!/bin/sh -f
    EXE=amadeus_herwig6510.exe
    CARD=herwig_direct_photoproduction
    #We check if all libraries are avaible
    ldd $EXE
    chmod +x  $EXE
    # Here random seeds generation begins
    RANGE=10000
    a=$(date +%N )
    echo $CARD
    rm -f fort.7
    rm -f fort.11
    rm -f fort.9
    rm -f fort.10
    number=$RANDOM
    let "number=number/$RANGE"
    sleep $number
    b=$(date +%N)
    rm -f amadeus.rndm
    echo $a $b > amadeus.rndm
    #<- Here is random seed generation ends. We wrote the seeds to amadeus.rndm
    ln -s particle.data   fort.9
    cp $CARD".cards"  fort.7
    ln -s amadeus.rndm    fort.10
    #Execute
    $EXE >  output_$EXE.log
    #It is the output we need
    mv output output_$EXE