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 unnecessarystd::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-insensitiveParticle::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
- Added support for all fermions types in LPAIR in #33
- Added Webber alpha(S) modelling, as described in arXiv:hep-ph/9805484 or JHEP 9810:012,1998, in #42
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 fullCepGen/EventFilter
directory ; newcepgen::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
PPtoWW
now includes more (incl. anomalous) matrix element implementations listed in Eur.Phys.J.C45:679-691,2006.- New hybrid Kulagin-Barinov structure functions, as implemented in Phys. Rev. C 105 (2022) 045204.
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 dedicatedCepGenPython
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
- New Arrington et al. (Phys.Rev.C 76 (2007) 035205), Brash et al. (Phys.Rev.C 65 (2002) 051001), Mergell et al. (Nucl.Phys.A 596 (1996) 367) electromagnetic nucleon form factors modellings
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
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.