Home · Overview · Users Guide · Reference Guide

Overview

Sartre is an event generator for exclusive diffractive vector meson production and DVCS in ep and eA collisions based on the dipole model. It can also describe so called Ultra Peripheral Collisions (UPC) at hadron-hadron colliders. Sartre describes the processes:
e p e' V p',
e A
e' V A',
p p
p' V p',
p A
p' V A',
A A
A' V A',
where V = J/ψ, φ,ρ, γ. Most common nuclei are included. Sartre is not a stand-alone program but a set of C++ classes and C functions that form the API. It is up to the user to provide the main program. This scheme gives the user the maximum flexibility to filter, select, and store events in whatever format is most convenient for her/him. However, a rather complete example main program is provided to get the ball rolling. Since Sartre is quite modular, certain classes can be used individually for specific purposes, e.g. for numeric calculations of cross-sections or to calculate the kinematics of final state particles for a given set of x, t, and Q2.

The heart of Sartre is an implementation of the bSat and bCGC dipole models developed by H. Kowalski, L. Motyka, and G. Watt [1, 2]. We extended the models to also describe eA collisions making Sartre the first generator to describe this class of processes. Saturation is introduced in the bSat model through an exponential term in the scattering amplitude. In order to study the impact of saturation on the production cross-section we construct a non-saturated version of the bSat model, bNonSat, by linearizing the dipole cross-section.

To calculate and generate the total cross-sections, rather complex integrations have to be performed for each phase-space point (in eA around 1000 4D integrals each) rendering an on-the-fly calculation while generating events impractical. Therefore, we calculate the first and second moments of the amplitudes, for both longitudinally and transversely polarized photons separately, and store the results in look-up tables. These calculations are very time consuming and were performed on the US Science Grid. The tables are contained in the Sartre distribution. The look-up tables are three dimensional in Q2, W2, and t. There is a set of four look-up tables for each species of produced vector meson or DVCS, and for each species of colliding nucleus. Currently we provide tables based on the bSat and bNonSat models.

Sartre thus consist of two parts: an event generator part and a table generator part. Most users will only use the former. The API and example programs to generate tables are included in the distribution although we do not recommend to engage in this enterprise unless you have massive CPU time available. The event generator part using the pre-calculated tables is able to simulate millions of events in a matter of minutes on a standard computer.

This is the first release of Sartre and we tried hard to provide sufficient documentation for the user to get started. However, things evolve and many parts might not be as well documented as they should be. Please feel free to contact the authors in this case. We will try to continuously improve the documentation.

The best way to get started is to use the provided example main program (sartreMain.cpp) and runcard (sartreRuncard.txt) and have a look at the Users Guide. Instead of starting from scratch, it is probably more efficient to use the example and modify it to suit your needs. For advanced users or users who want to get more out of the generator than the example program provides we refer to the Reference Guide that explains the various classes in the API in more detail.

Sartre relies heavily on components (4-vectors, numeric tools, and more) of existing packages such as ROOT and GSL that need to be present in order build and run it. Making use of existing package reduces the code to the essential parts needed and makes things easier to maintain and modify.

 

   

Last Update: January 14, 2013