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>