ROOT & PYTHIA


  • Try to install things yourself (links below) or use this
  • ROOT@CERN
    • Start at 'getting started'
    • Try to install root on your laptop (compile it rather than download a package) - make sure the root configuration uses python
  • Download and install PYTHIA (version 8.226 for example; but in general use the latest)
  • Pythia8.2 online documentation

First steps with PYTHIA + ROOT


Get the code

  • Open a free account on https://github.com
  • Fork a repository at https://github.com/matplo/jetty
    • What to do if a sync/update to the original (upstream) repository is needed? sync fork @ GitHub
  • Follow the instruction on installation (if on PDSF - see below); try to run the example and display the root histogram from the file just created

For an installation at PDSF

  • On PDSF HEPSOFT is already installed so you need:
$ module use /project/projectdirs/alice/ploskon/software/hepsoft/modules
$ module load hepsoft

and to run and example...

$ module use /project/projectdirs/alice/ploskon/software/hepsoft/modules
$ module load hepsoft
$ module use <dir_where_jetty_downloaded>/modules
$ module load jetty/1.0
$ jettyExamplesExe --pythia

Run and modify the code

  • Try running the example with different arguments / pythia configurations
  • For examples see run_7TeVcheck.sh and config.cmnd
  • Check the implementation of a basic sectup (extra command line arguments) pyargs.cxx
  • Within your cloned fork (on your local computer) copy the 'examples' subdirectory to another one (for example your name - remember the '-r' when copying); modify the CMakeLists.txt in '/src' directory and your new directory to reflect the changed (in particular add a 'add_subdirectory' in the 'src/CMakeLists.txt' file) - build and try to run it
  • To understand more about CMAKE examples or https://cmake.org

Jet finding - FASTJET


  • Install FASTJET package from http://fastjet.fr
  • On PDSF FASTJET is pre-installed
  • Try to include jet finding inside your code generating pythia events - fill a histogram with \(p_{T}\) of anti-\(k_{T}\) R=0.4 jets reconstructed with final state particles within a window of pseudorapidity \(\eta<2\).

Running batch jobs at PDSF


THIS IS OUTDATED - because of PDSF MIGRATION TO SLURM!

  • This is a rough example so patience is required and no miracles to be expected. You probably will have to try and faile and tailor it to your needs...
  • Everything in <> brackets below requires your intervention
  • Use /project/projectdirs/alice/<your directory> for input and output of your jobs
  • I am assuming your default shell is bash
  • See more at NERSC paeges

The job script

  • Take the below as an example of a batch job - put it in a file - job.sh for example (this is assumed in the next section)
  • In principle for every job you run you will have a job.sh script
  • Note, the batch job should define all the environment needed for a successful execution (load modules, setup paths etc.) - thanks, Josh for debugging
#!/bin/bash

date

. /usr/share/modules/3.2.10/Modules/3.2.10/init/bash
. /usr/share/modules/3.2.10/Modules/3.2.10/init/bash_completion

savedir=$PWD
rundir=<path to a directory where to run and output files>
cd $rundir
echo $PWD

[ -e ${HOME}/.bash_profile ] && source $HOME/.bash_profile
[ -e ${HOME}/.profile ] && source $HOME/.profile

module load use.own
module load jetty/pdsf
module list

<your command with arguments to run>

echo "[i] done."
cd $savedir
date

Submit a job

  • The command is qsub - see example usage below
  • Check the $ man qsub for a manual
$ mydir=<some directory where output and logfiles should be stored and where your job.sh is>
$ qsub -P alice -o $mydir -e $mydir -m e -M <youremail@server.com> $mydir/job.sh

If needed one can specify a memory limit that the job requires. Note, more memory means potentially more slots will be used to execute your processes. Note the -l h_vmem=4G parameters that ask for 4GB of memory.

$ qsub -l h_vmem=4G -P alice -o $mydir -e $mydir -m e -M <youremail@server.com> $mydir/job.sh

Check job status

  • The command is qstat
  • Filter for your jobs with -u <username>
$ qstat -u <username>

Particle codes (PDG)


PDG Live

Common PDG codes

Common PDG codes