MCatNLO Step 1
We will produce MCatNLO events starting from scratch. In step we will:
- Download the MCatNLO program (and PDF libraries)
- Build the integration-executable
- Perform the integration
1) Prepare a working directory
First we should get ourselves organised and define your working area. At NIKHEF this would for example be
/data/atlas/users/<your_login_name>/
. There, make a working directory for our MCatNLO work:
cd your_working_area mkdir MyMCatNLO
Note:
This directory will be referred to as MyMCatNLO in the next steps.
2) Download the package and the PDF libraries
a) Download the program itself
cd /MyMCatNLO mkdir EXECUTABLE cd EXECUTABLE
Go to the MCatNLO webpage and download the package (called Package231.tar.gz) and untar it.
tar -xzvf Package231.tar.gz
b) Download the PDF libraries
In the executable directory prepare a directory where you'll store the parton density functions that come with the package.
mkdir PDF cd PDF
Go to the MCatNLO webpage and download the pdf libraries that come with MCatNLO. (On the web-page they are listed as: grid files). Then untar it.
tar -xvf data.tar
Note: These libraries are simply ascii files and since MCatNLO is a NLO MC it requires NLO PDFs. For technical reasons we decided for the Rome production to use cteq5m1. In the PDF directory you will find the files cteq5m1.tbl. This file (then without the extension .tbl) will be input in both the integration and the event generation step.
3) Prepare the MCatNLO program for the integration step
For this step we will work in the directory where the MCatNLO is located:
First get your own vesion of the steering file.
cd /MyMCatNLO cd EXECUTABLE
The MCatNLO program is set up so it can work in different schemes:
- Perform the NLO computation (integration)
- Perform the NLO computation (produce event files)
- Perform the Monte Carlo step
- .. of course you can also do the both at the same time
Here we will combine the first two options and produce the NLO executable that will perform the integration and produce (as a small extra), 10 events. The main steering file used to make the executable is MCatNLO.inputs .
First get your own vesion of the steering file.
cp MCatNLO.inputs MCatNLO.inputs.Integration
Then edit the file MCatNLO.inputs.Integration and change the following parameters:
IPROC = -1706 NEVENTS = 10 BASES = ON HWPATH="<location_HERWIG_library_on_your_machine>" HERWIGVER="<name_of_HERWIG_library>" EXEPREFIX=TTbar
IPROC=-1706 selects the production process
BASES=ON signals that the integration step will be performed
HWPATH and HERWIGVER need to be set so as to point to the Herwig version on your system.
At NIKHEF these values are:
HWPATH="/data/atlas/offline/atlas/offline/external/herwig/herwig6.504/lib" HERWIGVER="herwig6504.o"<p>
The last step to do then is to signal at the end of the file that you would only like to produce the NLO executable
#runMCatNLO compileNLO
Finally, just produce the executable:
./MCatNLO.inputs.Integration
This will produce a directory Linux with the executable called TTbarNLO_EXE_THISLIB
4) Perform the integration step
In the /MyMCatNLO/EXECUTABLE directory you now have a directory called Linux where the executable is located. When running the executable you'll be asked for a lot of input parameters. To automate this you can make a file with input variables called Integrationstep.Inputfile.
'TTbarBase' ! prefix for BASES files 'TTbarProd' ! prefix for event files 14000 1 1 1 1 ! energy, fren, ffact, frenmc, ffactmc -1706 ! -1705/1706=bb/tt 175 ! M_Q 0.32 0.32 0.5 1.5 5.0 0.75 ! quark and gluon masses 'P' 'P' ! hadron types 'CTEQ' 53 ! PDF group and id number -1 ! Lambda_5, <0 for default 'MS' ! scheme 10 ! number of events 1 ! 0 => wgt=+1/-1, 1 => wgt=+w/-w 1357911 ! seed for rnd numbers 0.3 ! zi 10 10 ! itmx1,itmx2
Most parameters speak for themselves. The first two for example define the prefix of the names of the output files (integration and event files).
The last variables define in a sense the precision of the computation. Since we'll only do the integration step once we put them to 10 (as defined in table 3 of the MCatNLO manual).
Note: The integration step takes a long time ( ~ 2.5 hours on a 2 GHz machine). Setting itmx1 and itmx1 to 2 would reduce this with a factor 5. Nevertheless, we only have to do it once.
Note (PDF): An important one is also the PDF library you'd like to use. In our case it is the CTEQ5M1 PDF library which is defined as CTEQ set 53. The integration step depends on the PDF you use and should be redone for every PDF you use. An effort is underway to see if we can interface the ERROR PDFs from CTEQ and MRST in LHAPDF to be able to compute the uncertainties.
One more important thing to do before starting the integration: In your running directory you should have the PDF you are using. You could either make a link, or simply copy the PDF you require from the PDF directory (Note that the PDF loses it's ".tbl" extension).
cp ./PDF/cteq5m1.tbl ./cteq5m1
Then start the integration:
./Linux/TTbar_EXE_THISLIB < Integrationstep.Inputfile
After some time (i.e. a stunning 2.5 hours later) .......
The results of the integration (location of spikes in phase space etc.) is contained in 3 files:
TTbarBase_a_bs.data TTbarBase_b_bs.data TTbarBase.integrals
The 10 events that were generated for fun are also contained in 3 files: TTbarProd.events, TTbarProd_b.events and TTbarProd_a.events. For the moment ignore the. We will produce many of them later at which stage we will discuss their contant in more detail.
5)Save the important results for event generation
The results of the integration step is contained in three files that are located in the current working directory (2 files with .data extension and 1 files with .integral extension). The files contain information on the spikes in phase space that have to be taken in to account when generating events.
So, create a directory in your MyMCatNLO directory and save the files related to the integration step by copying them there:
mkdir ./../CTEQ5M1_BASICS cp TTbarBase_a_bs.data ./../CTEQ5M1_BASICS/ cp TTbarBase_b_bs.data ./../CTEQ5M1_BASICS/ cp TTbarBase.integrals ./../CTEQ5M1_BASICS/ cp cteq5m1 ./../CTEQ5M1_BASICS/
We are now ready with the integration step. The rest is peanuts.