Deductor
A parton shower event generator

Zoltan Nagy and Davison E. Soper

We present here c++ code to generate events at hadron-hadron collider (and also electron-positron colliders and electron-hadron colliders). This code creates a hard scattering event and then generates parton showers for both the incoming and outgoing partons.

Deductor version 1

Version 1.0.2 was used for the paper Effects of subleading color in a parton shower. Version 1.0.0 was used for the paper A parton shower based on factorization of the quantum density matrix, published in JHEP 06 (2014) 097. The code and information for these versions is at Deductor version 1.

Deductor version 2

  1. Version 2.0.0 was used for version 1 of the paper Summing threshold logs in a parton shower (arXiv:1605.05845, JHEP 1610 (2016) 019). There is now a new version of the paper that corresponds to version 2.0.2 of the code.
  2. Version 2.0.1. We found a bug that occurred in translating the algorithms for the LC+ approximation from version 1.0.2 to the new organization of the code. This bug resulted in about 4% changes in cross sections. It does not affect calculations using the leading color approximation, which was used in arXiv:1605.05845v1. The bug is fixed in version 2.0.1.
  3. Version 2.0.2. There was a problem associated with one of the terms in the exponent for the Sudakov factor for the threshold logs. This problem occured when, late in the shower, a parton was emitted from one of the initial state partons and this parton was almost collinear to the beam direction. In this case, the Sudakov factors for subsequent intervals between real emissions should be very close to 1. However, because of the approximations in a parton shower, these Sudakov factors were not as close to 1 as they should be. The cumulative effective of multiplying these factors could be 30%. In version 2.0.2, we simply inserted a cutoff that prevents this. This is explained in the revised version of the paper.

Version 2.0.1

To reproduce the curves in version 1 of arXiv:1605.05485, you should use version 2.0.1 of Deductor in the file deductor-2.0.1.tar.gz. A collection of sample user code is in the file deductor-user-2.0.0.tar.gz. Probably the best way to get these is with the curl command as described version 2.0.1 of "Deductor: How to use it." Installation directions are included in the manual. For other purposes, you should use version 2.0.2 of the code.

Version 2.0.2

The operation of Deductor is based on files in C++ that the user writes. Thus you need to learn about how the various user files operate. There are also a few deductor commands that run deductor to create and analyze events according to the instructions that you have set up in the user files. To find how this works, please see the brief manual (version 2.0.2) "Deductor: How to use it.." We will expand the manual in the future.

Note that you need cmake plus C and C++ compilers. Your C++ compiler needs to comply with the C++14 standard. The deductor code is self contained. We also supply a sample of user routines. Some of these make use of FastJet. We include a copy of fjcore by M. Cacciari, G.P. Salam and G. Soyez for your convenience.

The code for the version 2.0.2 of Deductor is in the file deductor-2.0.2.tar.gz. A collection of sample user code is in the file deductor-user-2.0.2.tar.gz. Probably the best way to get these is with the curl command as described in version 2.0.2 of "Deductor: How to use it." Installation directions are included in the manual.

Version 2.1.1

There was a version 2.1.0, but it contained a bug, which we have fixed in version 2.1.1.

The operation of Deductor is based on files in C++ that the user writes. Thus you need to know about how the various user files operate. We have not yet updated the manual from version 2.0.2. That version should be helpful, although the user interface has changed a little.

Note that you need cmake plus C and C++ compilers. Your C++ compiler needs to comply with the C++17 standard (std=c++1z). The deductor code is self contained. We also supply a sample of user routines. Some of these make use of FastJet. We include a copy of fjcore by M. Cacciari, G.P. Salam and G. Soyez for your convenience.

The code for version 2.1.1 of Deductor is in the file deductor-2.1.1.tar.gz. A collection of sample user code is in the file deductor-user-2.1.1.tar.gz. Probably the best way to get these is with the curl command as described in version 2.0.2 of "Deductor: How to use it.":

To compile the Deductor code, you can use

There is sample user code in deductor-user-2.1.1. The user interface has changed a little since deductor-2.0.2. The syntax should be reasonably clear from looking at the user code. For instance, in deductor-user-2.1.1/Jets there are files mod-jets.cc, mod-jets-kT.cc, analyzer-jets.h and analyzer-jets.cc, plus code for fjcore in the directory local. The difference between mod-jets.cc and mod-jets-kT.cc is that mod-jets.cc sets up the calculation using the default virtuality based ordering, while mod-jets-kT.cc sets up the calculation using kT ordering. To run the code for the default ordering, you can use

At any time (after two minutes) you can look at results with Then results will be in jets.bundle/result. In particular, there will be a TeX file that you can typeset to see results in graphical format. When your results are good enough, control-c will stop the program. (MacOS treats xx.bundle directories specially. To look at them in a Finder window, use control-click. For some of the graphs in the TeX file, you may want to change \begin{axis} ... \end{axis} to \begin{semilogyaxis} ... \end{semilogyaxis}.)

Deductor version 3

Version 3 introduces an improved treatment of color. The base approximation is the LC+ approximation. Then the operators that would generate a leading order shower with exact color equal the corresponding LC+ operators plus corresponding difference operators. Deductor version 3 allows the user to expand in the difference operators to any order desired. Of course, there are practical limits.

Version 3.0

Deductor version 3.0.0 was used in Z. Nagy and D. E. Soper, "Parton showers with more exact color evolution," Phys. Rev. D 99 (2019), 054009, arXiv:1902.02105 [hep-ph].

The code for version 3.0.1 of Deductor is in the file deductor-3.0.1.tar.gz. (This is slightly updated from version 3.0.0 used in arXiv:1902.02105. We made calculational method "typeI" the default, although the user can choose "typeII." We eliminated "typeAlt.") A collection of sample user code is in the file deductor-user-3.0.0.tar.gz. Also available are four TeX files files for making graphs of the results from the user code. When you have results, the relevant TeX file goes in the results directory inside the bundle directory that Deductor creates.

Deductor version 3.0.2 was used in Z. Nagy and D. E. Soper, "Effect of color on rapidity gap survival," arXiv:1905.07176 [hep-ph].

The code for version 3.0.2 of Deductor is in the file deductor-3.0.2.tar.gz. A collection of sample user code is in the file deductor-user-3.0.2.tar.gz.

To compile the Deductor code, you can use

Later versions of the gcc compilers will also work. Clang will not work.

There is sample user code in deductor-user-3.0.2. The syntax should be reasonably clear from looking at the user code. For instance, in deductor-user-3.0.2/Gap there are files for the gap fraction analysis. To run the code, you can use

At any time (after two minutes) you can look at results with Then results will be in gap.bundle/result. In the deductor-user-3.0.2/Gap directory there is a file summaryGAP.tex. When you have results, this TeX file goes in the results directory inside the bundle directory. Typesetting this TeX file will then produce graphs.

Version 3.4.99

Deductor version 3.4.99 was intended as a temporary version, but has been used for two papers, as indicated below.

The code for version 3.4.99 is in the file deductor-3.4.99.tar.gz. This code can be compiled as described under Version 3.0. A collection of sample user code is in the file deductor-user-3.4.99.tar.gz. We hope that the user code presented will provide a template for other user code applications.

User code for calculating the thrust distribution in electron-positron annihilation, used in Summations of large logarithms by parton showers, Phys. Rev. D 104 (2021), is in deductor-user-3.4.99/e+e-/Thrust.

User code for calculating the y23 distribution in jet production in electron-positron annihilation, used in the forthcoming paper Multivariable evolution in final state parton shower algorithms, is in deductor-user-3.4.99/e+e-/Y23.

Last updated 14 January 2022



seal

Davison E. Soper
Institute of Theoretical Science
University of Oregon
Eugene OR 97403 USA
soper@uoregon.edu