DYTURBO is a fast Drell-Yan integrator, based on the DYRES and DYNNLO programs. Numerical integration is performed using both the Vegas Monte Carlo integration and quadrature rules.
-
ask for guest rights and get tarbal from webpage
https://gitlab.cern.ch/DYdevel/DYTURBO/wikis/home tar xzvf dyturbo-VERSION.tar.gz cd dyturbo-VERSION -
setup and compile
(optional PATH=<lhapdfdir>:$PATH if you want to use your version of lhapdf previously installed in <lhapdfdir>) (optional setup root to enable root output) ./configure [--enable-root] make make install -
have fun
./bin/dyturbo input/test.in
- ask for developer access and checkout the repository
git clone ssh://[email protected]:7999/DYdevel/DYTURBO.git
git co devel
- setup/compile and test
autoreconf -i
(optional PATH=<lhapdfdir>:$PATH if you want to use your version of lhapdf previously installed in <lhapdfdir>)
./configure --enable-test --enable-Ofast [--enable-root]
make && make install && make check
-
branch your repository add your code and dont forget to test ;)
make check
-
autotools are used for building project
-
on first configuration
LHAPDFandCubawill be downloaded and installed (if not found already) -
additional configuration options:
--enable-OfastUse unsafe compiler optimization flags -Ofast.--enable-rootUse root for histograming. (default=no)
-
debug options:
--enable-debugAdd debug flags to include gdb debug symbols.--enable-trapFPEStop of floating point errors.--enable-checkBoundsadd -fbounds-check flag for compilation.
cernlibcontains code from CERNLIB librariesdynnlocontains code from DYNNLOdyrescontains code from DYRESmcfmcontains code from MCFMsrccontains DYTURBO C++ code which is steering the calculations and running the Fortran proceduresscriptscontains scripts for plotting and submitting to- input files can be found in
inputfolder (where else :) )
- user customization can be done in folder
user - three files can be change to customize output of the calculation:
user/user_kinem.cxxfor defining new kinematic observableuser/user_book.cxxfor booking histogramsuser/user_cuts.cxxfor define user cuts
- Merging of jobs
-
we recommend to run DYTURBO per each term (RES,CT,FO,REAL,VIRT) separately
-
to obtain correct normalization from run of several jobs with different random seeds, please, use our merger
./bin/merger -X merged_file.root result_file_1.root result_file_2.root ...
-
Note: in case of real term for NNLO prediction it is better to use median results (object with suffix median in output file of
mergerprogram). It will remove ouliers from your distribution, which are caused by color dipole cancellations
-
- Merging of terms
- if you want to obtain finite order prediction you should sum up counter term you should sum up fixed order (i.e. FO for NLO and REAL+VIRT for NNLO) to counter term (simply with hadd)
- to obtain final prediction you need to finite order to resummation part (simply with hadd)
-
To print basic usage just run with help argument
[user@host DYTURBO]$ ./bin/merger -h usage: -h [-h] [-v] [-x] <output> <input list> Please keep separated switches!!! Its on my todolist! -x Normalize histograms to Xsection. -v Increase verbosity (very chatty). -h Print this help message. For more info read README.md ./bin/merger --help usage: --help [-h] [-v] [-x] <output> <input list> Please keep separated switches!!! Its on my todolist! -x Normalize histograms to Xsection. -v Increase verbosity (very chatty). -2d Make 2d projections and outliers for 2D. -h Print this help message. For more info read README.md
-
basic naming convention: object could be
TH1x,TH2x,TProfile,TProfile2D. When I say average or median I mean per each bin. -
merger program produces several stuff on one merge:
-
for
TH1x: average (no suffix), median (suffix_median) -
for
TH1xwith nameh_qtandpt: it creates also rebinned version (suffix_rebin) with Zpt measurement binning and their mean and median version -
for
TH2x: mean and median same as TH1x + creates projection to each axis (_px,_py) and their mean and median version -
for
TProfiles: average, i.e.TProfile::Add(o,1/N)of all object (no suffix) and outlier removal (suffix "outlier"). More details bellow. -
for
TProfiles2D: average + my plan is to add projections so we can fill only 2D during dyturbo run.
-
-
There is option
-X, which turns on "Scaling to final cross section": At the end of dyturbo I am saving result of integration into extra 2D histogram per each term and qt-y bin. This information is then used to correct integral ofTH1x,TH2x.
-
Right now, outliers are removed for
TProfiles and preparing also for 2D (for other objects there is median version). -
each bin of profile consist of two terms: nominator
sum(w*y)( the first momentyof cros section) and denominatorsum(w)(cross section), whereyis studied observable,wis weight of event and we are suming per all events. -
in first step we create denominator median
sumhat(w_i) = median ( sum(w_ij)from all merged filesj, per each bini -
we calculate chi-square from denominator
(sum(w_ij)-sumhat(w_i))**2 chi2_ij = -------------------------- (delta (sum(w_ij)) )**2 -
then we decide about outlier by
Prob(chi2_ij,1) > 7 sigmathrow away -
from the rest we get files with indexes
l -
final
outlierprofile values terms are:sum(w_i*y_i) = sum(w_il*y_il) / N_i sum(w_i) = sum(w_il) / N_iwhere
N_iis number of jobs contributing to bini. -
the
TProfileis then created with hard-set of above values
Basic script for submission is submit_DYTURBO.sh. It could be customize to
submit jobs to any batch system. If you need help, please run:
./scripts/submit_DYTURBO.sh --help
Or contact me [[email protected]]. An example for grid is here
./scripts/submit_DYTURBO.sh --grid --proc wp,wm,z0 --collider lhc7 --order 2 --term RES,CT,REAL,VIRT --pdfvar all
Dont forget to configure and compile before submiting
./configure --enable-Ofast --enable-root
make -j
make install
There are several grid related scripts in scripts folder, which you can edit for your need
run_prun.sh: function for submit jobs with prun commandcompile_grid.sh: compilation on grid siderun_grid.sh: running on grid side
This project consist of several packages and each has its own licence.
@todo We did not decided yet what licence should be there for our contributions.
Code used: * Gonsalves, Pawlowski, Wai calculation of dsigma/dqt Phys. Rev. D40, 2245 (1989) Code from http://www.physics.buffalo.edu/gonsalves/ewbqt/public.tar.gz
Papers used: * [Collins-Soper-Sterman]