Changelog#

Latest revisions#

v1.2.5#

Released on 2024-07-19 - GitHub

What's changed

Core

  • Added an event content comparison operator
  • Test: added extra event filling cases to event output test

Extensions

  • Python: improved floating point variables output in Python auto-generated configuration snippets
  • HepMC2: particles status are now properly fed to HepMC2 event content. Fixes #88
  • CTML: improved internal linking of auto-generated HTML documentation

Full Changelog: 1.2.4...1.2.5

v1.2.4patch1#

Released on 2024-07-05 - GitHub

What's Changed

Core

  • Fixed a few warnings and errors when compiling with clang++ (v16): explicit template specialisation for cepgen::ModuleFactory, a few unnecessary std::move, wrong signature in values comparisons, ...
  • Fixed an infinite recursion in Integrator::integrate

Utilities

  • Improved the cepgenScan user-steerable parameters, uniformised with other utilities

Full Changelog: 1.2.4...1.2.4patch1

v1.2.4#

Released on 2024-07-04 - GitHub

What's Changed

Core

  • Improved Fortran interface, in #87 (e.g. allow handling multiple structure functions/couplings modellings)
  • Safer handling of parameters description + parameters list object, allow vector of limits to be handled
  • Refactoring of event by-role and by-particle status retrieval, improved parentage setting/retrieval
  • Added a few ParametersDescription::allow implementations in various modules

Physics

  • Asymmetric parton virtualities constraints, in #85

Extensions

  • APFEL++: αS, αEM, and F2/FL structure functions evolution algorithms interface, in #81

Full Changelog: 1.2.3...1.2.4

v1.2.3#

Released on 2024-04-06 - GitHub

What's Changed

Core

  • Refactoring of the factories, only to accept string-keyed objects definitions, in #73. For backward compatibility, index-keyed modules (structure functions, sigma L/T ratios) are given integer aliases and can be constructed from it through an association map.
  • Parameters description now support sets of allowed values for a given parameter, in #76. This allows to spot a misconfiguration before launching a steered module, and improves general documentation.

Physics

  • LPAIR, and factorised processes allow to properly symmetrise the single-dissociation kinematics mode, in #79.

Extensions

  • Herwig6: added alpha(S), alpha(EM), and structure functions modellings in #74 and #77.
  • APFEL: added DIS structure functions modelling, in #75 (thanks to @hamzeh-khanpour's suggestion!)
  • Python steering of structure functions and sigma ratio modellings now count on automatically generated python_modules imports, instead of a manually maintained collection of modellings.

Full Changelog: 1.2.2...1.2.3

v1.2.2#

Released on 2024-03-29 - GitHub

What's Changed

Core

  • Phase space variables generator intermediate object, in #56. This sets the ground for faster phase space mappers algorithms to be interfaced, such as Rambo.
  • Refactoring of factories implementation, in #60
  • RPM packaging was added in CI since #59

Physics

  • Fix of LPAIR z-dependent distributions in SD mode, in #58
  • Allow signed PDG indices to be used in processes, and in particle properties definitions, in #61 and #62
  • Refactoring of steering cards interface, in #65
  • A new type of steered module with registration is handled: modules descriptor objects, in #66
  • Allows form factors to be set at the individual beam level, in case of asymmetric beam-beam interactions, in #71
  • LPAIR now allows asymmetric beams to be handled, in #72 (useful for pPb, or ep cases)

Extensions

  • Porting of the MG5_aMC features in the new factorised process environment, in #63
  • MadGraph5_aMC@NLO in CI, in #64
  • Bump actions/checkout from 3 to 4, and github/codeql-action from 2 to 3 in #67 and #68
  • Python+CTML documentation generators, in #69
  • Python: automatic modules steering generation, in #70. This allows the automatic generation of steered modules configuration in Python, easily importable and modifiable, and allows a cleanup of most of the Python configurations already written.

Contributors

Full Changelog: 1.2.1...1.2.2

v1.2.1#

Released on 2024-02-26 - GitHub

What's Changed

Physics

  • 2-to-4 factorised processes now return central systems with PDG status 1 (stable) by default
  • Further simplifications of LPAIR process: the LPAIR::periPP method is slightly simplified to exploit process symmetry

Extensions

  • Fix of HepMC3 output PDG id and factorised processes central particles status codes in #54
  • Consequently, added event importer for HepMC3 event formats, and adapted test to check for Particle::integerPdgId() instead of sign-insensitive Particle::pdgId()
  • ROOT version-dependent calls to TPad::PlaceBox (fixes #55)

Full Changelog: 1.2.0...1.2.1

v1.2.0#

Released on 2024-02-22 - GitHub

What's Changed

This major release introduces a collection of bug fixes and new features to be used in future processes developments.

Core

  • Large scale refactoring of factorised matrix elements in #30, allowing to introduce collinear parton emission and fluxes estimations in #32 to provide a 1-to-1 comparison to other two-photon processes generators.
  • Long-awaited bug fix in single-dissociative LPAIR production (elastic-inelastic could result in cross sections 1000x larger than inelastic-elastic ones) in #28
  • A few other features were also transformed into modules to ease user-steering
    • generator workers in #27, allowing events to be generated using Foam, with future tools to be provided in the future
    • event import modules are now provided to allow for future hadronisation/modification/output of events produced in another generator (transforming CepGen into an event filter) in #50
    • random number generator engines in #39
  • New value with uncertainty object, allowing for an easier propagation of numerical uncertainties in #29
  • Refactoring of the run parameters object in #46
  • Added GSL wrappers to matrices/vectors to perform some basic linear algebra in #44
  • Little fix in the MCD parser to detect empty/invalid info in #51
  • Continuous integration fix in #19

Physics

Extensions

  • Added an interfacing to MadGraph5_aMC@NLO processes generation in #34
  • Exposing structure functions to Boost's python interface in #24
  • Python: added the capability to call for Python algorithms to perform a numerical integration. For instance, Vegas in #25, or torchquad in #36
  • Python: a few fixes allowing for compilation with Python 3.12 in #38, refactoring of the directory structure in #26 and #41
  • Refactoring of the Pythia 6 filter in #37
  • Added a process debugging helper to allow for the generation of weighted event distributions in #43
  • Aligning with the Grape MC event generator, added interfacing to the Bases integration algorithm in #48, and the Spring generator worker in #49

Full Changelog: 1.1.0...1.2.0

v1.1.0#

Released on 2023-02-17 - GitHub

What's Changed

This major release introduces a few features, both in core FW and in the physics performances parts.

Core

  • Stripped all factories from their objects' namespaces ; now require a ; at registration, because why not?
  • Base objects for event interaction modules (modifiers, output handlers, ...) now all derive from a base cepgen::EventHandler object, and are now given a full CepGen/EventFilter directory ; new cepgen::EventHarvester base object to hold integrated distributions to be displayed
  • Added accessor for external algorithm's base object (if defined)
  • Grid parameters for event generation are now downgraded with single-precision floats
  • Large refactoring of the analytic integrators algorithms, which have a shared API with numerical/MC integrators
  • New numerical derivators wrapper (ROOT, GSL)
  • Fix of continuous integration in #17 and #18

Physics

  • Improvement in form factors modellings API, stripped most of the LPAIR-specific cases
  • Huge simplification of the kinematics definitions object, introduced a new intermediate beam parton fluxes objects to generalise the flux computation in #20
  • New HI fluxes
  • New Bodek, Kang, and Xu hybrid F1/F2 structure functions in #22
  • alpha(EM) Q^2 evolution can be used in fortran processes, as for alpha(S)

Extensions

  • Added an interface to the REvolver alpha(S) evolution algorithm in #21

Full Changelog: 1.0.2...1.1.0

v1.0.2#

Released on 2022-08-22 - GitHub

What's Changed

Core

  • An analytic integrators base class was introduced in #4, including the few GSL-based implementations already present since the earlier version, along with Boost- and ROOT-based integrators
  • Use OpenBLAS instead of GSL's CBLAS in #7 and #8
  • Single event generation handling in #9

Full Changelog: 1.0.1...1.0.2

v1.0.1patch1#

Released on 2022-08-19 - GitHub

What's Changed

Core

  • Switch BLAS default routines definitions from GSL's implementation to the optimised OpenBLAS. As a fallback solution if not found on environment, GSL's implementation can be used instead.

Full Changelog: 1.0.1...1.0.1patch1

v1.0.1#

Released on 2022-08-01 - GitHub

What's Changed

Core

  • This version fixes a few coding flaws and allows build using Clang versions 12+.
  • Build on LXPLUS/environment capable of accessing LCG releases is made safer through the use of standard LCG v101.
  • A wrapper to a good fraction of the GSL one-dimensional integration algorithms is introduced. This paves the ground for the future (integrated) collinear fluxes computation and several underlying utilities.
  • Command lines arguments parser now allows limits to be specified through a min,max couple.

Extensions

  • The ROOT drawer is also made safer through the use of standard colours if the number of subplots exceeds the pool of CepGen-themed colours.

Full Changelog: 1.0.0...1.0.1

v1.0.0#

Released on 2024-03-13 - GitHub

What's Changed

Core

  • Several utilities are now converted into the post-0.9.X modules schema.
    This allows to delegate a few definitions in the runtime loading of all libraries compiled against CepGen, thus reducing the overhead of dependencies for the CepGen core library.
  • A new parameters documentation system was introduced to list all possible keys and their default/expected values and ease the user-interaction with all module parameters.
  • Added a set of utilities to ease the drawing of 1- and 2-dimensional graphs and histograms.

Physics

Extensions

  • In addition to the "standard" text-based renderer, several libraries are interfaced to generate their output (ROOT, YODA, Gnuplot, Matplotlib, Topdrawer).
  • Python cards steering et al. interface is now stripped off the core CepGen library into a dedicated CepGenPython library. It now includes a functional parser and output configuration producer.
  • HepMC interface is now further split between its pre3 and 3+ versions. This allows to ease the interfacing between CepGen event content and several libraries accepting a HepMC2 or HepMC3 event content.
  • Added a Photos++ and a Tauola++ algorithms interface for event modification.
  • Included a testing suite for e.g. Pythia 6 steering through its CepGen interface.

Full Changelog: 0.9.11...1.0.0

v0.9.11#

Released on 2024-03-13 - GitHub

What's Changed

Core

  • Form factors are now modularised the same way as e.g. structure functions
  • Showing default value in parameters list steering debug
  • Refactoring of the process kinematics/incoming beams storage and handling
  • CepGenAddOns extensions are now completely self-embedded, with their own checks done internally

Physics

Extensions

  • Added interface to the APFEL alpha(S) evolution computation algorithm

Full Changelog: 0.9.10...0.9.11

v0.9.10#

Released on 2024-03-13 - GitHub

What's Changed

Core

  • Added a command line handler to "digest" user-steered cepgen executable steering
  • Added a new base object for event export
  • Modularised the event generator worker in preparation to multithreading support
  • Modularised the numerical integration algorithms
  • New dynamic libraries loading extension to increase modularity

Physics

  • Refactored the kinematics cuts definition and usage

Extensions

  • Support of Python v3
  • Optionally build Foam ROOT extension
  • Pythia6: added Z2star underlying event modelling

Full Changelog: 0.9.9...0.9.10

v0.9.7#

Released on 2024-03-13 - GitHub

What's Changed

Core

  • Fortran processes can now be fed a generic set of parameters, thanks to additional getter functions
  • Output handlers may now be constructed directly from steering cards, thus enhancing overall modularity (see b8e5927, 507f8cc)
  • New text output handler for raw text output, and ASCII histograms (see d59f370)
  • Added a helper for the retrieval of events properties through human-readable getters (see 65ae850)

Extensions

  • New HepMC ASCII output handler (for HepMC v<3), refactored HepMC event builder in preparation for future developments (see 7f982e3)
  • New ROOT histogram collections and ntuple files writers. Dropped the support for the cepgen-root executable (see e467dcf, e3b10e3)
  • Interface to Delphes for the simulation of detectors effects (see 0f0e541)

Full Changelog: 0.9.6...0.9.7

v0.9.6#

Released on 2024-03-13 - GitHub

What's Changed

Core

  • Improved the structure functions parameterisation objects definition (see 7c57a24, 1c5e353)

Extensions

  • Added support of Pythia6 hadronisation/fragmentation algorithm for legacy tests (see 06ebf75)
  • New output modes handled for HepMC interfacing module

Full Changelog: 0.9.5...0.9.6

Performances benchmarks#

The benchmarks as evaluated from a GitHub-hosted runner can be found here.