= Elegent = Elegent (Elastic Event GENeraTor) is a Monte-Carlo generator of (anti-)proton-proton collisions, based on a number of theoretical/phenomenological models. The project is maintained by Jan Kašpar (contact info at the [[https://elegent.hepforge.org/|home page]]). == Physics == As typical values of four-momentum transfer squared, |t|, are smaller than 10 GeV^2^ in elastic (anti)proton-proton collisions, the influence of the weak force is negligible. Therefore, only the electromagnetic (Coulomb) and strong (hadronic) interactions are relevant for the elastic scattering. Their description can be split into the following elements: * [[HadronicModels|models of hadronic (strong) interaction]] * [[CoulombInteraction|description of Coulomb (electromagnetic) interaction]] * [[CoulombHadronicInterference|models of Coulomb-hadronic interference]] == Elegent package == The package consists of the following components. 1. C++ implementation of the models described above. For more details, please refer to the [[API|API description]]. 1. Program `ElegentTDistributionSampler` to build a number of '''t-distributions''' of interest (t being four-momentum transfer squared), e.g. differential and cumulative cross-sections. The distributions are generated at a given collision energy and are saved as a ROOT file. For details please refer to the [[TDistributionFileDescription|t-distribution file description]]). 1. Program `ElegentBDistributionSampler` to build a number of '''b-distributions''' of interest (b stands for impact parameter). At the moment, only profile functions are generated and saved as a ROOT file. 1. Class `Generator` that loads a specified cumulative distribution function from a t-distribution ROOT file and generates random events in the [[http://lcgapp.cern.ch/project/simu/HepMC|HepMC format]]. This class can easily be embedded in any program. As an example, you can have a look at the [[source:/trunk/src/ElegentTest.cc|ElegentTest program]]. == Users' guide == === Download and compilation === 1. Either download an [[http://www.hepforge.org/downloads/elegent|Elegent release]] or checkout the code from Subversion: {{{ svn co svn+ssh://svn.hepforge.org/hepforge/svn/elegent/trunk }}} 1. Edit the `makefile` such that `ROOTDIR` and `HepMCDIR` point to your ROOT and HepMC installations. 1. Run {{{ make }}} === Sampling t- and b-distributions === NB: you might want to skip this step as there are ready-made distribution files available for [[http://www.hepforge.org/downloads/elegent|download]]. Run {{{ bin/ElegentTDistributionSampler -h bin/ElegentBDistributionSampler -h }}} to get help on running these programs. Alternatively, look in [[source:/trunk/scripts/generate_t_distributions]] or [[source:/trunk/scripts/generate_b_distributions]] for a usage example. === Testing the event generator === The `Generator` class and a t-distribution ROOT file can be tested with program `bin/ElegentTest`, which would print the generated HepMC events on screen. Run {{{ bin/ElegentTest -h }}} for usage help.