TWiki> Main Web>TWikiUsers>DeepakKar>PythiaProf (revision 10)EditAttachPDF

Notes on PYTHIA8 tuning using PROFESSOR in ATLAS



Pythia8 most writes output in the HepMC GenEvent output format, which can be read into Atlas using ReadEventFromFile in GenAnalysisTools:

 from AthenaCommon.AlgSequence import AlgSequence
 topSequence = AlgSequence()

 from ReadEventFromFile.ReadEventFromFileConf import ReadHepMc
 read = ReadHepMc()
 read.File = "filename.hepmc2g"
 topSequence += read

 theApp.EvtMax = 500




  • Documentation (
  • Latest version 2.06.03 did not work with PYTHIA 8.145, switched to 2.05.01
  • Download and install: (./configure --prefix=$PWD/../local/ --with-momentum=GEV --with-length=MM; make; make install; HEPMCLOCATION=$PWD/../local)


Tuning Workflow

  1. Setup the directory structure. Create mc/XXX directories.

Change according to number required.

> for (( i=1000; i<=1050; i++ ))
> do
> mkdir $PWD/../mc/${i:1}
> done

  1. Decide which parameters to tune.
    • Start off by MPI tune.
    • By prof-scanparams -> prepares used_params files.
    • They should reside in mc/XXX/

  1. Decide which analysis/datasets to tune to.
    • For MPI tune (and to avoid jet slices, for now), use ATLAS 900 and 7000 MB and UE (track and cluster), CDF 1.8 and 1.96 MB. (8 in total).
    • Only needs to generate soft QCD.
    • For each mc/XXX, there will be 4 different directories, ATLAS_900, ATLAS_7000, CDF_1800, CDF_1960.
    • Copy from /afs/, store them in "ref" directory.

  1. Weights file with weights assigned to different analysis.
    • Copy the MPI weights file from MC11 Pythia6 tuning area.
    • :X:Y denotes X-axis range where to tune to. For different weights on different ranges, multiple lines corresponding to the same histogram.

  1. Run the generator using used_param as input and with appropriate processes turned on. Pipe the output through relevant Rivet analysis.
    • The scripts to run will be, where cmE will determine which run_params_cmE file and Rivet analysis is included.
    • There should be a master script which will loop over XXX.
    • Need to export PYTHIA8DATA=/home/dkar/atlas/tuning/pythia8145/xmldoc
    • Should result in mc/XXX/cmE/Rivet.aida for each cmE.
    • Then to make one out.aida under mc/XXX, do (each) aida2flat Rivet.aida > (>> from second one onwards) out.dat. Finally, flat2aida out.dat > out.aida.

  1. Create a runcombs-file which contains combination of MC runs to be used. By prof--runcombs.

  1. Parameterise the generator response. By prof-interpolate, results in folder ipols that contains a generator parameterisation file.

  1. Finally tune. Using prof-tune, stored in results/.
    • Show the sensitivity of observables to the parameters varied: --datadir . --oudir splots --observables weights1
    • Show how well the generator runs "enclose" data: prof-envelopes --mcdir mc --refdir ref -o envelopes --weights weights
    • Show scatter plot for each tuning parameter.

Tuning Settings

  • MPI Tune parameters: (/afs/ tune_11_mpi/parameter.ranges)

MultipleInteractions:pT0Ref (0.5 -10, 2.15)
MultipleInteractions:ecmPow (0-5, 0.24)
MultipleInteractions:pTmin (0.1 -10, 0.2)

For :bProfile = 2
MultipleInteractions::coreRadius (0.1-1-, 0.4)
MultipleInteractions:coreFraction (0 -1, 0.5)

For bProfile=3
MultipleInteractions:expPow (0.1 -10, 1)

  • PYTHIA8 Run settings:

The main32 example is very useful for running Rivet. It reads a runcard and writes HepMC events.

PDF:pSet = 8
MultipleInteractions:bProfile = 3 _(double gaussian=2)_
MultipleInteractions:alphaSvalue = SigmaProcess:alphaSvalue
SpaceShower:rapidityOrder = on

! 1) Settings that will be used in a main program.
Main:numberOfEvents = 3000000 ! number of events to generate
Main:timesToShow = 1000 ! show how far along run is this many times
Main:timesAllowErrors = 30 ! abort run after this many flawed events
Main:showChangedSettings = on ! print changed flags/modes/parameters
#Main:showAllSettings = on ! print all flags/modes/parameters
Main:showChangedParticleData = on ! print changed particle and decay data
#Main:showAllParticleData = on ! print all particle and decay data

! 2) Beam parameter settings. Values below agree with default ones.
Beams:idA = 2212 ! first beam, p = 2212, pbar = -2212
Beams:idB = 2212 ! second beam, p = 2212, pbar = -2212
Beams:eCM = 200 ! CM energy of collision

! 3) Pick processes and kinematics cuts
SoftQCD:minBias on

Tune Parameters:


> source
> source /afs/
> source /afs/


> prof-runcombs -c 0:1 --mcdir /afs/ -o runcombs_0_1.dat

>prof-interpolate --mcdir /afs/ --runs runcombs_0_1.dat -o test --ipol cubic --weights /afs/

>prof-tune --runs runcombs_0_1.dat --ipoldir test/ipol --ipol cubic --weights /afs/ -o test --refdir /afs/


Use v1.2.1. how to pass parameters?

> source /afs/

-- DeepakKar - 25-Feb-2011

Edit | Attach | Watch | Print version | History: r30 | r12 < r11 < r10 < r9 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r10 - 2011-03-16 - DeepakKar
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main 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