Recent Releases of madminer

madminer - v0.9.6

Bug fixes

  • Fix typo in _calculate_partition_bounds method calls (https://github.com/madminer-tool/madminer/pull/524).

Internal changes:

  • Drop support for Python 3.7 (https://github.com/madminer-tool/madminer/pull/527) (support ends on June 2023).
  • Lint all codebase with Black 22.12.0 (https://github.com/madminer-tool/madminer/pull/525).
  • Lint all codebase with Isort 5.11.3 (https://github.com/madminer-tool/madminer/pull/526).
  • Migrate default branch from master to main.

Full Changelog: https://github.com/madminer-tool/madminer/compare/v0.9.5...v0.9.6

- Python
Published by Sinclert about 3 years ago

madminer - v0.9.5

Bug fixes

  • Fix calculation of Fisher information when there are no nuisance parameters (https://github.com/madminer-tool/madminer/pull/519).
  • Fix missing sympy dependency on Conda environment.yml file (https://github.com/madminer-tool/madminer/pull/522).

Internal changes:

  • Change HDF5 settings load messages from ERROR to INFO level (https://github.com/madminer-tool/madminer/pull/518).

Full Changelog: https://github.com/madminer-tool/madminer/compare/v0.9.4...v0.9.5

- Python
Published by Sinclert over 3 years ago

madminer - v0.9.4

New features:

  • Added overdetermined morphing (https://github.com/madminer-tool/madminer/pull/506).
  • Added overdetermined morphing Jupyter notebook (https://github.com/madminer-tool/madminer/pull/506).

Internal changes:

  • Removed the default values of the hdf5.py save_events public function (https://github.com/madminer-tool/madminer/pull/504).
  • Added Python 3.10 to the list of CI/CD tested Python versions (https://github.com/madminer-tool/madminer/pull/510).

Full Changelog: https://github.com/madminer-tool/madminer/compare/v0.9.3...v0.9.4

- Python
Published by Sinclert over 3 years ago

madminer - v0.9.3

Bug fixes

  • Fix HDF5 serialization for Observable, NuisanceParameter and Systematic models. https://github.com/madminer-tool/madminer/pull/503

Internal changes:

  • Make save_events sampling_benchmarks argument mandatory. https://github.com/madminer-tool/madminer/pull/503

Full Changelog: https://github.com/madminer-tool/madminer/compare/v0.9.2...v0.9.3

- Python
Published by Sinclert about 4 years ago

madminer - v0.9.2

Bug fixes

  • Fix Fisher information covariance calc. https://github.com/madminer-tool/madminer/pull/496
  • Add MWST sets to the accepted nuisance params. https://github.com/madminer-tool/madminer/pull/500

Internal changes:

  • Remove legacy XML imports. https://github.com/madminer-tool/madminer/pull/497
  • Migrate path related operations to pathlib. https://github.com/madminer-tool/madminer/pull/499
  • Migrate package setup spec to setup.cfg. https://github.com/madminer-tool/madminer/pull/498

Full Changelog: https://github.com/madminer-tool/madminer/compare/v0.9.1...v0.9.2

- Python
Published by Sinclert over 4 years ago

madminer - v0.9.1

Bug fixes:

  • Fixed Cut LHE parsing after the introduction of data classes in v0.9.0 (https://github.com/madminer-tool/madminer/pull/493).
  • Fixed Observable LHE parsing after the introduction of data classes in v0.9.0 (https://github.com/madminer-tool/madminer/pull/493).

- Python
Published by Sinclert over 4 years ago

madminer - v0.9.0

New features:

  • New CI workflow step, lint, to ensure notebooks style consistency https://github.com/diana-hep/madminer/commit/2047dc7851e265dc2d36ff6694256dd23f086ffb.

Internal changes:

  • Drop support for Python 3.6 https://github.com/diana-hep/madminer/pull/484 (support ends on December 2021).
  • Added support for Python 3.9 https://github.com/diana-hep/madminer/pull/484.
  • Upgrade notebook examples to Python3 syntax https://github.com/diana-hep/madminer/pull/480.
  • Upgrade numpy minimum version to version 1.20.0 https://github.com/diana-hep/madminer/pull/486.
  • Complete rewrite of the HDF5 interface functions https://github.com/diana-hep/madminer/pull/483.
  • Definition of dataclass models to ease attribute access https://github.com/diana-hep/madminer/pull/485:
    • Benchmark.
    • FiniteDiffBenchmark.
    • AnalysisParameter.
    • NuisanceParameter.
    • Cut, Efficiency and Observable.
    • Systematic (and the SystematicType enum https://github.com/diana-hep/madminer/commit/6183d555ef0b367af24ab1193c0a98bd95fb5460).

Breaking changes

There are multiple backward compatibility breaking changes to consider ⚠️ :

- Python
Published by Sinclert over 4 years ago

madminer - v0.8.3

Bug fixes:

  • Fixed particles phi property access after scikit-hep/vector migration (not callable anymore).
  • Fixed missing "modifiedscore"_ mode within Ensemble.calculate_fisher_information() accepted ones.

Internal changes:

  • Improved math functions mappings within the utilities (https://github.com/diana-hep/madminer/commit/6a7ead35ece83759002e1402ebbe48da882443c6).
  • Replaced most of the hardcoded particle IDs by the scikit-hep/particle package.
  • Removed legacy check_required_data utilities function (https://github.com/diana-hep/madminer/commit/13bf559a3d7ad0614bc96df66bc2804ed6d53fb7).
  • Removed legacy UploadCommand setup.py class (now using GHA workflows) (https://github.com/diana-hep/madminer/commit/243e1e80d0e72e5eddf626609be52f2ac6c46c59).

Documentation:

  • Defined new CITATION.cff file to ease package citation.

- Python
Published by Sinclert over 4 years ago

madminer - v0.8.2

Bug fixes:

  • Fixed MadminerParticle initialization by using @ classmethod helpers. Thanks @lyazj.
  • Replaced MadminerParticle inherited class (VectorObject4D -> MomentumObject4D). Thanks @lyazj.
  • Bumped vector package to version 0.8.4, first version to properly allow subclassing.

Internal changes:

  • Replaced Python2 compatible super-class calls by Python3 style.

Documentation:

- Python
Published by Sinclert over 4 years ago

madminer - v0.8.1

Bug fixes:

  • Fixed a Python2 -> Python3 migration issue when dealing with dictionary values (thanks @sbrass).

Internal changes:

Documentation:

  • Fixed readthedocs automatic documentation building (broken since July 1st 2020).
  • Define explicit .readthedocs.yml file with the desired configuration.
  • Define GitHub docs.yml workflow, to validate documentation building upon master branch pushes / PRs.

- Python
Published by Sinclert over 4 years ago

madminer - v0.8.0

Internal changes:

  • Dropped legacy Python 2 support. MadMiner now only supports Python 3.6+.
  • Replace string templating to make use of Python 3.6 f-strings.
  • Fixed typos and doc-strings inconsistencies throughout the codebase.

For more information: https://github.com/diana-hep/madminer/pull/438

- Python
Published by Sinclert over 4 years ago

madminer - v0.7.6

New features:

  • Prototype implementation of joint score computations with finite differences (with MadMiner.finite_differences())

Bug fixes:

  • Fixed event loading breaking with h5py version 3.0

Internal changes:

  • Improved platform independence by using the gzip module rather than calling the gunzip program

Documentation:

  • New tutorial notebook for the finite difference setup

- Python
Published by johannbrehmer over 5 years ago

madminer - v0.7.5

New features:

  • New keyword order in MadMiner.run(), which can be set to 'nlo' to set the systematics card in a way compatible with NLO event generation (which remains not really supported for now)
  • Preliminary implementation of the quadratic model proposed by https://arxiv.org/abs/2007.10356

Bug fixes:

  • Fixed a critical bug in the morphing-aware likelihood ratio estimator

- Python
Published by johannbrehmer over 5 years ago

madminer - v0.7.4

Bug fixes

  • Fixed a bug in the setup.py introduced in v0.7.3, see #432

- Python
Published by johannbrehmer over 5 years ago

madminer - v0.7.3

Internal changes:

  • Disentangled and cleaned up the dependencies. pip install madminer will now only install the dependencies that are necessary for the core library, not the additional dependencies used in the examples or documentation. New options like pip install madminer[examples] can be used to install these.

- Python
Published by johannbrehmer over 5 years ago

madminer - v0.7.2

API changes:

  • Improved the support for Python 2 (a necessary evil for MadGraph): in the MadMiner.run() functions, using python2_override=True without providing the keyword initial_command will now lead to the Python 2 executable being prepended to the Python path. See #423.

Documentation:

  • Updated docstrings, see #420.

We're very happy to welcome our new contributor @Sinclert, who initiated and implemented both of these fixes!

- Python
Published by johannbrehmer almost 6 years ago

madminer - v0.7.1

Bug fixes:

  • Various small bug fixes.

Internal changes:

  • Refactoring the code structure, moving to more submodules. The API and functionality is unchanged. One can now directly import from the madminer namespace, e.g. as from madminer import MadMiner (but the old from madminer.core import MadMiner will still work).

- Python
Published by johannbrehmer almost 6 years ago

madminer - v0.7.0

New features:

  • New madminer.likelihood class will let the user define more powerful likelihood functions, construct a profile likelihood, and fit with more flexibility.

Documentation:

  • Updated tutorial notebooks.

- Python
Published by johannbrehmer almost 6 years ago

madminer - v0.6.4

New features:

  • New Fisher information geometry functionality in the madminer.fisherinformation.InformationGeometry class.
  • The Fisher information can now be computed from likelihood ratio estimators as well.
  • Added early_stopping_patience keyword to ML training functions.

Bug fixes:

  • Fixed a bug in DelphesReader.

Documentation:

  • Updated and fixed tutorials.

- Python
Published by johannbrehmer about 6 years ago

madminer - v0.6.3

New features:

  • Morphing-aware likelihood ratio estimators. See https://arxiv.org/abs/1805.00020 for a description. Implemented in madminer.ml.MorphingAwareRatioEstimator.
  • Gradient clipping can now be set with the keyword clip_gradient in the estimator train() functions.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.6.2

New features:

  • Reweight existing samples (either generated with MadMiner or standalone MadGraph) through MadMiner.reweight_existing_sample()
  • Custom parameter grids / evaluation points in AsymptoticLimits through the new keyword thetas_eval

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.6.1

New features:

  • Dropout support
  • Many more activation functions
  • Number of workers for data loading can be specified

Bug fixes:

  • Fixed crash in DelphesReader and LHEReader when no systematics are used
  • Fixed logging error with double parameterized ratio estimation methods

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.6.0

New features:

  • Expanded systematics system. Users now declare systematics with MadMiner.add_systematics(), which in addition to the previous PDF and scale variations also allows normalization uncertainties. When adding samples in the LHEReader and DelphesReader functions, each sample can be linked to an arbitrary subset of systematics, giving the user a lot of flexibility.

Breaking / API changes:

  • For processes with systematic uncertainties, the MadMiner file format changed in a not-backward-compatible way. Please do not use files with systematic uncertainties that were generated with MadMiner versions before v0.6.0 with the new code version (MadMiner will crash). Sorry about this.

Bug fixes:

  • Fixed wrongly including the central element in the calculation of the PDF uncertainties.

Documentation:

  • Updated and expanded tutorial on systematic uncertainties.

Internal changes:

  • Some internal changes related to nuisance parameters, including the MadMiner file format.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.5.1

New features:

  • Automatic shuffling of MadMiner HDF5 files after reading in LHE or Delphes files

Bug fixes:

  • Fixed rare crash in AsymptoticLimits

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.5.0

New features:

  • Clean separation between training and validation events: the SampleAugmenter functions have new keywords partition and validation_split. With partition="validation", validation data without potential overlap with the training samples can be generated. In the madminer.ml classes, this can be provided with new keywords like x_val, theta_val when calling train().
  • More consistent calculation of the Fisher information covariance: the covariance matrices in mode="score" are now the ensemble covariance, without dividing by sqrt(n_estimators) as before. This is also the default behavior. The old default behavior can be used with mode="modified_score".
  • Parameter rescaling also for DoubleParameterizedRatioEstimator and LikelihoodEstimator.
  • When continuing the training of a pre-trained model, the parameter and observable rescaling is not overwritten.
  • SALLY limits can now be calculated with Ensemble instances of multiple score estimators.

Breaking / API changes:

  • The SampleAugmenter functions do no longer accept the keyword switch_train_test_events. Use partition="train" or partition="test" instead.

Bug fixes:

  • Fixed bug in the logging output about relative cross-section uncertainties during the Fisher information calculation.
  • Fixed MadMiner crashing when calculating adaptive histogram binnings.
  • Fixed bug in AsymptoticLimits where only 1 observed event was returned.

Internal changes:

  • Abstracted Estimator classes with parameter rescaling into new ConditionalEstimator class.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.10

New features:

  • ParameterizedRatioEstimator now optionally rescales parameters (theta) to zero mean and unit variance during training. Use the keyword rescale_params in ParameterizedRatioEstimator.train().
  • Batching of parameter points in the AsymptoticLimits functions now also when using weighted events.

API and breaking changes:

  • In MET smearing, the relative term is now multiplied with HT, defined as the scalar sum over the pT of all visible particles (before it was all particles).

Bug fixes:

  • Fixed critical bug in the MET calculation in LHEReader, which caused the y component of the MET object to be wrong.
  • Fixed crashes when training a likelihood ratio estimator without providing joint score information.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.9

New features:

  • plot_histograms() can now also visualize observed data / Asimov data.
  • In 2D parameter spaces, calculating limits with mode="adaptive-sally" now works as described in https://arxiv.org/abs/1805.00020. In higher dimensions, it still just concatenates the scalar product of score and parameter vector with all score components to form a (d+1)-dimensional observable space.

Bug fixes:

  • Fixed bug in plot_histograms().

Tutorials and documentation:

  • The MadMiner paper is out!
  • Updated README and docs, including a new troubleshooting list.
  • Cleaned up examples folder.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.8

New features:

  • In AsymptoticLimits, the adaptive histogram binning can now be based on the weights summed over the whole parameter grid instead of just a central point. This is now also the default option.
  • New function plot_histograms() in madminer.plotting to visualize the histograms used by AsymptoticLimits.

Bug fixes:

  • Substantially improved automatic histogram binning and fixed some numerical issues in AsymptoticLimits functions.

Tutorials and documentation:

  • Updated tutorial with new histogram plots.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.7

New features:

  • More observables for LHEReader.add_observable: Users can use "p_truth" to access particles before smearing, and (at least with XML parsing) there are new global observables "alpha_qcd", "alpha_qed", "scale". LHEReader.add_observable_from_function() now accepts functions that take unsmeared particles as first argument.

Bug fixes:

  • Fixed bug in sample_train_ratio() with return_individual_n_effective=True
  • Fixed bug in DelphesReader when no events survive cuts

Tutorials and documentation:

  • Removed outdated Docker link from docs
  • Changed morphing basis in particle physics tutorial to work around a weird bug inn the MG-Pythia interface, see #371

Internal changes:

  • Refactored LHE parsing. LHE files are now not read into memory all at once, but sequentially.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.6

New features:

  • AsymptoticLimits now supports the SALLINO method, estimating the likelihood with one-dimensional histograms of the scalar product of theta and the estimated score.
  • Improved default histogram binning in AsymptoticLimits and added more binning options, including fully manual specification of the binning.
  • Histograms now calculate a rough approximate of statistical uncertainties in each bin and give out a warning if it’s large. (At DEBUG logging level they’ll also print the uncertainties always, and Histogram.histo_uncertainties lets the user access the uncertainties.)

Breaking / API changes:

  • The AsymptoticLimits functions expected_limits() and observed_limits() now return (theta_grid, p_values, i_ml, llr_kin, log_likelihood_rate, histos). histos is a list of histogram classes, the tutorial shows how they allow us to plot the histograms. The returns keyword to these functions is removed. The keywords theta_ranges and resolutions were renamed to grid_ranges and grid_resolutions.
  • Changed some ML default settings: less hidden layers, smaller batch size.
  • Changed function names in the FisherInformation class (the old names are still available as aliases for now, but deprecated).

Bug fixes:

  • Various small bug fixes.

Tutorials and documentation:

  • AsymptoticLimits is finally properly documented.
  • All incomplete user-facing docstrings were updated.

Internal changes:

  • Refactored histogram class.
  • AsymptoticLimits is now much more memory efficient.

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.5

New features

  • Histograms in AsymptoticLimits now by default use one set of weighted events for all parameter points, reweighting them appropriately

API / breaking changes

  • AsymptoticLimits functions keyword n_toys_per_theta renamed to n_histo_toys

Internal changes

  • Refactored HDF5 file access

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.4

New features

  • More options for some plotting functions

Bug fixes

  • Fixed AsymptoticLimits functions for LikelihoodEstimator instances
  • Fixed bug in histogram_of_fisher_information()
  • Fixed bug in particle smearing caused by floating point precision by changing < to <=
  • Increased Python 2 compatibility

- Python
Published by johannbrehmer over 6 years ago

madminer - v0.4.3

Bug fixes:

  • Fixed wrong results and crazy run time in AsymptoticLimits when more than one parameter batch was used
  • Fixed wrong factor of 1 / testsplit in `histogramoffisherinformation()`
  • Fixed AsymptoticLimits not accepting LikelihoodEstimator instances to calculate the kinematic likelihood

- Python
Published by johannbrehmer almost 7 years ago

madminer - v0.4.2

New features:

  • AsymptoticLimits functions are more memory efficient. New keyword histo_theta_batchsize sets number of parameter points for which histogram data is loaded in parallel.
  • New keyword n_observables for AsymptoticLimits.observed_limits() allows overwriting the number of events (= rescaling the log likelihood).

Bug fixes:

  • Fixed bugs that caused the training of DoubleParameterizedRatioEstimator and LikelihoodEstimator instances to crash
  • Added more sanity checks when evaluating observables, both in LHEReader and DelphesReader

- Python
Published by johannbrehmer almost 7 years ago

madminer - v0.4.1

New features:

  • LHEReader.add_observable_from_function() now expects functions with signature observable(truth_particles, leptons, photons, jets, met), where truth_particles are the original particles in the LHE file, and the other arguments have smearing applied to them.
  • New dof keyword in limit functions to overwrite degrees of freedom
  • Trimmed sampling to remove events with largest weights

Breaking / API changes:

  • Changed construction of parameter grid in limit functions to numpy's "ij" mode to make 2d and >2d cases more consistent

Bug fixes:

  • Fixed bugs with efficiencies in LHEReader

- Python
Published by johannbrehmer almost 7 years ago

madminer - v0.4.0

New features:

  • Smarter sampling: MadMiner now keeps track of which events where generated (sampled) from which benchmark point (at the MadGraph stage). The new keyword sample_only_from_closest_benchmark in the SampleAugmenter functions and plot_distributions() then allows the user to restrict the unweighting / resampling at some parameter point to events from the closest benchmark point. This can significantly reduce the weights of individual events and thus reduce the variance.

API / breaking changes:

  • k-factors are now automatically added when there are subsamples generated at different benchmarks. For instance, if we add a sample with 30k events generated at theta0 and a sample with 70k events generated at theta1, and calculate cross sections from the full sample, MadMiner will automatically apply a k-factor of 0.3 and 0.7 to the two samples.

Bug fixes:

  • Various small bug fixes, mostly related to nuisance parameters

Internal changes:

  • More information stored in MadMiner HDF5 file

- Python
Published by johannbrehmer almost 7 years ago

madminer - v0.3.1

New features:

  • Fisher information in histograms can be calculated for a custom binning
  • MET noise in LHEReader
  • Number of toys for AsymptoticLimits histograms are now a keyword and not limited to 1k

Bug fixes:

  • Fixed wrong cross sections in AsymptoticLimits
  • Fixed unzipping of event samples to support older versions of gunzip
  • Various smaller bug fixes

Tutorials and documentation:

  • Restructured tutorials

Internal changes:

  • Improved automatic testing of likelihood ratio estimation

- Python
Published by johannbrehmer almost 7 years ago

madminer - v0.3.0

New features:

  • Nuisance parameters for ratio-based methods! This required a major refactoring of madminer.sampling.
  • New madminer.limits submodule that calculates expected and observed p-values.
  • SALLY can profile the estimated score over nuisance parameters (then its output is n-dimensional rather than (n+k)-dimensional, where n is the number of parameters of interest and k is the number of nuisance parameters).
  • New madminer.analysis submodule with a generic DataAnalyzer class that can be used to access the general setup, weighted events, and cross sections. The classes SampleAugmenter, FisherInformation and AsymptoticLimits subclass it, leading to a more unified interface.
  • Sampling speed-up with parallelization when using n_processes>1 for any sampling call.

Breaking / API changes:

  • New file format for trained neural networks (only the *.json files are different) -- old models won't load
  • The one-size-fits-all class MLForge is replaced by four different classes ParameterizedRatioEstimator, DoubleParameterizedRatioEstimator, LikelihoodEstimator, and ScoreEstimator.
  • EnsembleForge is now Ensemble, with renamed functions and less clutter (at the cost of some unimportant functionality)
  • Renaming: DelphesProcessor -> DelphesReader, LHEProcessor -> LHEReader
  • madminer.morphing now lives in madminer.utils.morphing, and the Morpher class was renamed PhysicsMorpher (since we also have a NuisanceMorpher class)
  • The madminer.sampling has changed in a number of ways. The high-level functions have been renamed: extract_samples_train_plain() -> sample_train_plain(), extract_samples_train_local() -> sample_train_local(), extract_samples_train_global() -> train_samples_density(), extract_samples_train_ratio() -> sample_train_ratio(), extract_samples_train_more_ratios() -> sample_train_more_ratios(), extract_samples_test() -> sample_test(), extract_cross_sections() -> cross_sections(). In addition to the physical parameters theta, they all now take descriptions of the nuisance parameters nu as input argument, for which new helper functions exist.
  • The helper functions in madminer.sampling are also different: constant_benchmark_theta() -> benchmark(), multiple_benchmark_thetas() -> benchmarks(), constant_morphing_theta() -> morphing_point(), multiple_morphing_thetas() -> morphing_points, random_morphing_thetas() -> random_morphing_points()
  • New default evaluation split of 0.2 (so with the defaults, there will be 60% train, 20% validation, 20% test events)

Internal changes:

  • madminer.ml largely rewritten
  • madminer.sampling largely rewritten
  • madminere.utils.analysis got removed, the old functions are now split between madminer.analysis and madminer.sampling

- Python
Published by johannbrehmer almost 7 years ago

madminer - v0.2.8

Breaking / API changes:

  • The keyword trainer in MLForge.train() has been renamed to optimizer
  • The gradient of network output wrt x is no longer calculated, the corresponding keywords in MLForge.evaluate() and MLForge.train() are gone
  • MLForge has new methods evaluate_log_likelihood(), evaluate_log_likelihood_ratio(), and evaluate_score(); MLForge.evaluate() just wraps around them now

Bug fixes:

  • Fixed a number of bugs affecting neural density estimation methods ("NDE" and "SCANDAL")
  • Fixed bugs when trying to use CASCAL

Internal changes:

  • Rewrote training procedure from scratch
  • Some more refactoring of the ML parts

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.7

New features:

  • b and tau tags, can be used for cuts and observables
  • New plot_uncertainty() function
  • More options for plot_distributions()

Breaking / API changes:

  • In MLForge.evaluate() and EnsembleForge.evaluate(), the keyword x_filename is replaced by x, which supports ndarrays as an alternative to filenames

Documentation and examples:

  • Improved logging output
  • New test of nuisance setup and Fisher information calculation

Bug fixes:

  • Fixed MadMiner crashing with stable W bosons in LHE files
  • Fixed calculation of MET in LHEProcessor when visible particle pTs are smeared
  • Fixed range calculation for plot_distributions()

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.6

New features:

  • New python2_override keyword in MadMiner.run() and MadMiner.run_multiple() to allow using MadMiner in a Python 3.x environment, while still running MadGraph with the required Python 2.x.

Bug fixes:

  • Fixed issues related to Pythia and Delphes not keeping track of weights. Now MadMiner should finally be able to run without any custom patch to the MG-Pythia interface or Delphes.
  • Fixed pointless scheme variation when calculating PDF uncertainties.
  • Fixed plot_histogram_of_information() in truth-level mode crashing in the presence of nuisance parameters.
  • Improved parsing of nuisance parameter setup from LHE file.

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.5

Documentation:

  • New systematics example.

Bug fixes:

  • Fixed multiple issues in the parsing and editing of run cards for systematics.
  • Fixed photons and gluons being swapped in LHEProcessor observables.
  • Fixed crash when no events survive LHEProcessor cuts.
  • Fixed extract_samples_test() crashing in the presence of nuisance parameters.
  • Fixed the pythia_card.dat in the Delphes tutorial that lead to hangups of unpatched Pythia version.

Internal changes:

  • Improved warnings and logging output in various places.

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.4

New features:

  • 'tau' object for LHEProcessor observables / cuts.

Breaking / API changes:

  • New verbose keyword for fit() function that controls verbosity of learning progreess.

Breaking / API changes:

  • Removed obsolete debug keywords from class constructors.

Bug fixes:

  • Fixed parsing of non-LHA-block parameters in param card.
  • Fixed bug in LHEProcessor that led to cuts having no effect.
  • Fixed critical bug in the transfer function / smearing in LHEProcessor
  • Fixed plot_distributions() not working correctly if observables is not None.
  • Added workaround to avoid a bug in NumPy 1.16.0 that only appears with Python 2.x.

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.3

Documentation and examples:

  • Added Irina Espejo to author list
  • Updated installations instructions in README
  • Updates and fixes in the tutorials and examples

Bug fixes:

  • MadMiner correctly reads parameters that are not formatted as LHA block in param_card
  • Fixed bug in LHE parsing
  • Fixed bug in smearing with pt_resolution = None
  • extract_samples_train_ratio() does not crash when morphing is not set up
  • Fixed bug in project_fisher_information() with covariance matrix
  • Fixed bug in plot_distributions() with n_events=None

Internal changes:

  • Sped up LHE parsing, user can choose between XML and test parsing

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.2

New features:

  • Fisher information uncertainties for ensembles in "score" mode

Bug fixes:

  • Fixed MadMiner not recognizing PDF weights in LHE file in some cases
  • Various bug fixes

Internal changes:

  • py.test and Travis CI

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.1

New features:

  • Smearing functions in LHEProcessor
  • More powerful observable definitions and cuts in LHEProcessor

Breaking / API changes:

  • Some changes to LHEProcessor interfaces to make it consistent with DelphesProcessor

Documentation and examples:

  • New parton-level tutorial

Bug fixes:

  • When evaluating models on GPUs, tensors are now moved back to CPU before being converted to numpy

Internal changes:

  • Rewriting of LHE file parsing based on proper XML parsing

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.2.0

New features:

  • Nuisance parameters to model systematic uncertainties, currently only from PDF / scale reweighting and for SALLY / SALLINO.
  • New "score" mode for ensemble Fisher information calculation.
  • No need for the Pythia / Delphes patch anymore: DelphesProcessor can extract the event weights from the LHE file.
  • Additional (non-morphing) benchmarks can be defined in MadMiner without breaking or resetting the morphing.
  • DelphesProcessor allows k factors.
  • New function plot_distributions() to plot distributions of observables and systematic error bands.
  • Option to save full pyTorch models.
  • Option to limit the training sample size.
  • Dynamic binning for 2D histograms.

Breaking / API changes:

  • DelphesProcessor.add_sample() replaces DelphesProcessor.add_hepmc_sample().
  • MadMiner.set_morphing() replaces MadMiner.set_benchmarks_from_morphing().

Documentation and examples:

  • New toy example.
  • Updated docs.

Bug fixes:

  • Fixed critical bug in the evaluation of the score with ensemble methods, which led to wrong results for the detector-level Fisher information.
  • Fixed bug in the calculation of the covariance of truth-type Fisher information matrices.
  • Fixed gradient clipping.
  • Many small bug fixes.

Internal changes:

  • MadMiner file format changed to include systematics / nuisance parameter data.
  • Significant speed-up of training for CARL, ROLR, and ALICE estimators.
  • No unnecessary running of Delphes in DelphesProcessor.
  • Restructured logging, now the user is responsible for setting up handlers.
  • Renamed some submodules in madminer.utils.interfaces.
  • Removed unnecessary static functions in MadMiner.
  • Rewrote profiling algorithm.

- Python
Published by johannbrehmer about 7 years ago

madminer - v0.1.1

New features: - DelphesProcessor supports a "generator truth" analysis. With this option, observables are calculated based on the Pythia output, only running FastJet to define jets. There are no resolution or efficiency effects. - LHEProcessor allows the definition of observables through functions. - New and cleaned up examples.

Bug fixes: - Fixed MadMiner.run() not working without specifying a Pythia card - Fixed wrong labels in DelphesProcessor default observables (pT and E were swapped). - Fixed plotfisherinfobarplot() crashing. - Fixed issue with benchmark names containing "block"

- Python
Published by johannbrehmer over 7 years ago

madminer - v0.1.0

First more or less stable development version. The core functionality is implemented and many features tested. But other features are still unimplemented or untested, and the API is far from stable.

- Python
Published by johannbrehmer over 7 years ago