Final gLite exercise
From EUAGwiki
Contents |
[edit] The Final gLite Exercise
The final exercise aims to use the techniques learned during these lectures in a "real case" scenario. In this case, an High Energy Physics case will be brought up.
[edit] Introduction
In the HEP world (e.g. LHC) computer simulations are of fundamental importance, both to understand how the experiment works and both in order to predict how physics signals would appear in the detector.
Pythia 8 is the C++ version of the very famous Pythia Simulation program for HEP. In this exercise we want to fully exploit the gLite power in a quite simple (but real) use-case: the simulation of Higgs boson production @LHC.
The Higgs boson is the particle which "gives mass" to the other particles: some properties (decays, production amplitude) depend on its mass, so a wide spectrum must be simulated and analyzed.
[edit] Something about Pythia8
pythia8125.tar.gz is the tgz of the pythia program: it has been compiled on SLC4 and it is fully portable on other SLC4 machines (no dependencies). Inside the pythia8125/examples directory, configuration cards are usually placed. For example, the Higgs.cmnd file reports a simple configuration card for Pythia, where a Higgs boson of mass 333 GeV is produced in the H -> photon photon channel. A Pythia binary (Higgs.exe) has already been compiled and should be in your examples directory: this program will produce the events as written in the pythia card and also it will produce some simple histograms. The program can be launched as:
# ./Higgs.exe Higgs.cmnd
and it will output a textual version of the event list (a complete list of all the particles produced and they momenta) and finally the histograms:
- Higgs mass
- Photon transverse momentum
- Photon direction
[edit] First Exercise: launch Pythia on the Grid
As Pythia can be deployed as a stand-alone tar.gz, it should be straightforward to use it on the Grid. The necessary steps are:
- create a bash script (Higgs_m333.sh, where m333 keeps track of Higgs mass=333 GeV) which:
- unpack the pythia tar.gz
- cd into the pythia8125/examples directory and launch the Higgs.exe command
So, create a jdl file with:
- the tar.gz, the script in the InputSandbox
- the output file (the stdout) and the error file (the stderr) in the OutputSandbox
Both steps can be performed using a unique bash script, if you want.
At the moment, you can copy on your UI the pythia files from the official site:
wget http://home.thep.lu.se/~torbjorn/pythia8/pythia8135.tgz
[edit] Second Exercise: interactions with the SE
As you can notice, the pythia8125.tar.gz is ~7M heavy: it would be a good idea to let the job retrieve it directly from the SE. More over, in order to test all the interactions with the SE, also the output should be put into the SE.
As already done with the Advanced Jobs tutorial, you should provide a script which downloads the pythia8125.tar.gz from the SE and one which uploads the output. You can modify the Advanced Jobs tutorial scripts if you want.
For what about the upload, please remember that in the previous exercise the result file was the stdout: actually, for this exercise we need to redirect the stdout to a file in order to upload it on the SE. So, please modify the Higgs_m333.sh script with:
# ./Higgs.exe Higgs_m333.cmnd > Higgs_m333.out
You should modify the previous jdl script as:
- Inserting the proper data requirements (for pythia8125.tar.gz download)
- Requesting the proper scripts in the InputSandbox
Before performing the exercise, please create a your own directory on the SE:
# lfc-mkdir /grid/euasia/eagss09/finalExercise/$USER
HINT: DataCatalogue is:
DataCatalog = "http://lfc.grid.sinica.edu.tw:8085";
[edit] Third exercise: interaction with AMGA
As stated in the introduction, in order to properly study Higgs boson physics we must perform many simulations, each with a different mass value. Adding further multiplicity, simulations can be performed also with different simulation programs/versions, so keeping track of all of it becomes quite difficult.
We can use AMGA to help up in organizing our work. Let's say that we want to register the following informations:
- Program name (PROGRAM)
- Program version (VERSION)
- Higgs' mass parameter (HIGGS_MASS)
- file LFN (FILE_LFN)
- file SURL (FILE_SURL)
So, first of all we must create our own AMGA collection. Please create a collection:
/$USER/finalExercise
WARNING: if your username on ui.biruni.upm.my is "upm0XX" use the username "UPMXX" for AMGA (this allows you not to get in confusion with AMGA username and UI username).
Inside it, create the attributes:
- PROGRAM varchar(30)
- VERSION varchar(10)
- HIGGS_MASS float
- LFN varchar(200)
- FILE_SURL varchar(200)
Program must be set to PYTHIA, version to 8.125.
For creating the attributes, you can use both the /opt/glite/bin/mdclient and the /opt/glite/bin/mdcli commands ()
The LFN and the FILE_SURL parameters are referred to the output: the latter can be retrieved with the lcg-lr command.
I suggest you to use the mdcli interface to AMGA, e.g.:
# /opt/glite/bin/mdcli addentry /UPM05/finalExercise/Higgs_mass333 PROGRAM 'Pythia' VERSION '8.125' [OTHER PARAMETER]
What is requested to you is to modify your previous bash script in order to:
- retrieve the SURL of the output file, using the lcg-lr command
- add an entry in your AMGA collection inserting the value of Higgs mass (in your case, it should be 333) and also keeping track of this value in the entry name (in the above example, Higgs_mass333)
[edit] Connection to AMGA
In order to connect to the AMGA server, you need to create (or edit, if it already exists) the mdclient.config file:
# Connection options
Host = 117.103.102.99 ### THIS IS THE IP OF THE EUAG AMGA SERVER
Port = 8822
# User settings
Login = UPM01 ###THIS IS THE USERNAME: IF ON ui.biruni.upm.my YOUR
###USERNAME IS upm001 THEN PUT HERE UPM01
PermissionMask = rwx
GroupMask = r-x
Home = /
# Security options
UseSSL = no # Values: require, try, no. If off, all options below are ignored
AuthenticateWithCertificate = 0 # Use certificate to authenticate
# Certificates used for authentication: ... either normal certs
#CertFile=/home/koblitz/.globus/usercert.pem
#KeyFile=/home/koblitz/.globus/userkey.pem
# ... or a grid proxy certificate
UseGridProxy = 1
# Use password instead of certificate to authenticate
Password = UPM01PASS ###PASSWORD: IF YOUR USERNAME ON ui.biruni.upm.my
###IS upm001 PUT UPM01PASS
#VerifyServerCert = 1
#IgnoreCertificateNameMismatch = 0
# If server certificates are verified, CA certificates need to be loaded:
TrustedCertDir = /etc/grid-security/certificates
The mdclient.config file must be put in your working directory on the UI (in this case, the $HOME).
I remember you that a command line interface (CLI) is available through the /opt/glite/bin/mdcli command
