Recent Releases of madminer
madminer - v0.9.6
Bug fixes
- Fix typo in
_calculate_partition_boundsmethod 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
mastertomain.
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
sympydependency on Condaenvironment.ymlfile (https://github.com/madminer-tool/madminer/pull/522).
Internal changes:
- Change HDF5 settings load messages from
ERRORtoINFOlevel (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_eventspublic 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,NuisanceParameterandSystematicmodels. https://github.com/madminer-tool/madminer/pull/503
Internal changes:
- Make save_events
sampling_benchmarksargument 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
CutLHE parsing after the introduction of data classes inv0.9.0(https://github.com/madminer-tool/madminer/pull/493). - Fixed
ObservableLHE parsing after the introduction of data classes inv0.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
numpyminimum version to version1.20.0https://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,EfficiencyandObservable.Systematic(and theSystematicTypeenum https://github.com/diana-hep/madminer/commit/6183d555ef0b367af24ab1193c0a98bd95fb5460).
Breaking changes
There are multiple backward compatibility breaking changes to consider ⚠️ :
- The HDF5 file keys to store madminer settings and / or serialized data have changed. We recommend re-creating them.
- The methods LHEReader.add_cut() and DelphesReader.add_cut() got their
pass_if_not_parsedarg. renamed torequired. - The method LHEReader.add_efficiency() got its
value_if_not_parsedarg. renamed todefault. - The function combineandshuffle got its
overwrite_existing_fileunused argument removed.
- Python
Published by Sinclert over 4 years ago
madminer - v0.8.3
Bug fixes:
- Fixed particles
phiproperty access after scikit-hep/vector migration (not callable anymore). - Fixed missing "modifiedscore"_ mode within
Ensemble.calculate_fisher_information()accepted ones.
Internal changes:
- Improved
mathfunctions 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_datautilities function (https://github.com/diana-hep/madminer/commit/13bf559a3d7ad0614bc96df66bc2804ed6d53fb7). - Removed legacy
UploadCommandsetup.py class (now using GHA workflows) (https://github.com/diana-hep/madminer/commit/243e1e80d0e72e5eddf626609be52f2ac6c46c59).
Documentation:
- Defined new
CITATION.cfffile 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
MadminerParticleinherited class (VectorObject4D->MomentumObject4D). Thanks @lyazj. - Bumped
vectorpackage to version0.8.4, first version to properly allow subclassing.
Internal changes:
- Replaced Python2 compatible super-class calls by Python3 style.
Documentation:
- Fixed README relative links (unavailable on Madminer's PyPi information page).
- 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:
- Replaced legacy
scikit-hep>=0.5.0, <0.6.0requirement (underused), by thevectorpackage. - Replaced legacy rootproject/root-ubuntu Docker base image by rootproject/root equivalent.
Documentation:
- Fixed readthedocs automatic documentation building (broken since July 1st 2020).
- Define explicit
.readthedocs.ymlfile with the desired configuration. - Define GitHub
docs.ymlworkflow, to validate documentation building uponmasterbranch 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
gzipmodule rather than calling thegunzipprogram
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
orderinMadMiner.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.3
Internal changes:
- Disentangled and cleaned up the dependencies.
pip install madminerwill now only install the dependencies that are necessary for the core library, not the additional dependencies used in the examples or documentation. New options likepip 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, usingpython2_override=Truewithout providing the keywordinitial_commandwill 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
madminernamespace, e.g. asfrom madminer import MadMiner(but the oldfrom madminer.core import MadMinerwill still work).
- Python
Published by johannbrehmer almost 6 years ago
madminer - v0.6.4
New features:
- New Fisher information geometry functionality in the
madminer.fisherinformation.InformationGeometryclass. - The Fisher information can now be computed from likelihood ratio estimators as well.
- Added
early_stopping_patiencekeyword 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_gradientin the estimatortrain()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
AsymptoticLimitsthrough the new keywordthetas_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 theLHEReaderandDelphesReaderfunctions, 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.0
New features:
- Clean separation between training and validation events: the
SampleAugmenterfunctions have new keywordspartitionandvalidation_split. Withpartition="validation", validation data without potential overlap with the training samples can be generated. In themadminer.mlclasses, this can be provided with new keywords likex_val,theta_valwhen callingtrain(). - More consistent calculation of the Fisher information covariance: the covariance matrices in
mode="score"are now the ensemble covariance, without dividing bysqrt(n_estimators)as before. This is also the default behavior. The old default behavior can be used withmode="modified_score". - Parameter rescaling also for
DoubleParameterizedRatioEstimatorandLikelihoodEstimator. - When continuing the training of a pre-trained model, the parameter and observable rescaling is not overwritten.
- SALLY limits can now be calculated with
Ensembleinstances of multiple score estimators.
Breaking / API changes:
- The
SampleAugmenterfunctions do no longer accept the keywordswitch_train_test_events. Usepartition="train"orpartition="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
AsymptoticLimitswhere only 1 observed event was returned.
Internal changes:
- Abstracted
Estimatorclasses with parameter rescaling into newConditionalEstimatorclass.
- Python
Published by johannbrehmer over 6 years ago
madminer - v0.4.10
New features:
ParameterizedRatioEstimatornow optionally rescales parameters (theta) to zero mean and unit variance during training. Use the keywordrescale_paramsinParameterizedRatioEstimator.train().- Batching of parameter points in the
AsymptoticLimitsfunctions 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()inmadminer.plottingto visualize the histograms used byAsymptoticLimits.
Bug fixes:
- Substantially improved automatic histogram binning and fixed some numerical issues in
AsymptoticLimitsfunctions.
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()withreturn_individual_n_effective=True - Fixed bug in
DelphesReaderwhen 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:
AsymptoticLimitsnow supports the SALLINO method, estimating the likelihood with one-dimensional histograms of the scalar product ofthetaand the estimated score.- Improved default histogram binning in
AsymptoticLimitsand 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_uncertaintieslets the user access the uncertainties.)
Breaking / API changes:
- The
AsymptoticLimitsfunctionsexpected_limits()andobserved_limits()now return(theta_grid, p_values, i_ml, llr_kin, log_likelihood_rate, histos).histosis a list of histogram classes, the tutorial shows how they allow us to plot the histograms. Thereturnskeyword to these functions is removed. The keywordstheta_rangesandresolutionswere renamed togrid_rangesandgrid_resolutions. - Changed some ML default settings: less hidden layers, smaller batch size.
- Changed function names in the
FisherInformationclass (the old names are still available as aliases for now, but deprecated).
Bug fixes:
- Various small bug fixes.
Tutorials and documentation:
AsymptoticLimitsis finally properly documented.- All incomplete user-facing docstrings were updated.
Internal changes:
- Refactored histogram class.
AsymptoticLimitsis now much more memory efficient.
- Python
Published by johannbrehmer over 6 years ago
madminer - v0.4.5
New features
- Histograms in
AsymptoticLimitsnow by default use one set of weighted events for all parameter points, reweighting them appropriately
API / breaking changes
AsymptoticLimitsfunctions keywordn_toys_per_thetarenamed ton_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
AsymptoticLimitsfunctions forLikelihoodEstimatorinstances - 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
AsymptoticLimitswhen more than one parameter batch was used - Fixed wrong factor of 1 / testsplit in `histogramoffisherinformation()`
- Fixed
AsymptoticLimitsnot acceptingLikelihoodEstimatorinstances 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_batchsizesets number of parameter points for which histogram data is loaded in parallel. - New keyword
n_observablesforAsymptoticLimits.observed_limits()allows overwriting the number of events (= rescaling the log likelihood).
Bug fixes:
- Fixed bugs that caused the training of
DoubleParameterizedRatioEstimatorandLikelihoodEstimatorinstances to crash - Added more sanity checks when evaluating observables, both in
LHEReaderandDelphesReader
- Python
Published by johannbrehmer almost 7 years ago
madminer - v0.4.1
New features:
LHEReader.add_observable_from_function()now expects functions with signatureobservable(truth_particles, leptons, photons, jets, met), wheretruth_particlesare the original particles in the LHE file, and the other arguments have smearing applied to them.- New
dofkeyword 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_benchmarkin theSampleAugmenterfunctions andplot_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.limitssubmodule 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.analysissubmodule with a genericDataAnalyzerclass that can be used to access the general setup, weighted events, and cross sections. The classesSampleAugmenter,FisherInformationandAsymptoticLimitssubclass it, leading to a more unified interface. - Sampling speed-up with parallelization when using
n_processes>1for 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
MLForgeis replaced by four different classesParameterizedRatioEstimator,DoubleParameterizedRatioEstimator,LikelihoodEstimator, andScoreEstimator. EnsembleForgeis nowEnsemble, with renamed functions and less clutter (at the cost of some unimportant functionality)- Renaming:
DelphesProcessor->DelphesReader,LHEProcessor->LHEReader madminer.morphingnow lives inmadminer.utils.morphing, and theMorpherclass was renamedPhysicsMorpher(since we also have aNuisanceMorpherclass)- The
madminer.samplinghas 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 parameterstheta, they all now take descriptions of the nuisance parametersnuas input argument, for which new helper functions exist. - The helper functions in
madminer.samplingare 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.mllargely rewrittenmadminer.samplinglargely rewrittenmadminere.utils.analysisgot removed, the old functions are now split betweenmadminer.analysisandmadminer.sampling
- Python
Published by johannbrehmer almost 7 years ago
madminer - v0.2.8
Breaking / API changes:
- The keyword
trainerinMLForge.train()has been renamed tooptimizer - The gradient of network output wrt x is no longer calculated, the corresponding keywords in
MLForge.evaluate()andMLForge.train()are gone MLForgehas new methodsevaluate_log_likelihood(),evaluate_log_likelihood_ratio(), andevaluate_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()andEnsembleForge.evaluate(), the keywordx_filenameis replaced byx, which supportsndarraysas 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
LHEProcessorwhen 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_overridekeyword inMadMiner.run()andMadMiner.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
LHEProcessorobservables. - Fixed crash when no events survive
LHEProcessorcuts. - 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 forLHEProcessorobservables / cuts.
Breaking / API changes:
- New
verbosekeyword forfit()function that controls verbosity of learning progreess.
Breaking / API changes:
- Removed obsolete
debugkeywords from class constructors.
Bug fixes:
- Fixed parsing of non-LHA-block parameters in param card.
- Fixed bug in
LHEProcessorthat 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.1
New features:
- Smearing functions in
LHEProcessor - More powerful observable definitions and cuts in
LHEProcessor
Breaking / API changes:
- Some changes to
LHEProcessorinterfaces to make it consistent withDelphesProcessor
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:
DelphesProcessorcan extract the event weights from the LHE file. - Additional (non-morphing) benchmarks can be defined in
MadMinerwithout breaking or resetting the morphing. DelphesProcessorallows 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()replacesDelphesProcessor.add_hepmc_sample().MadMiner.set_morphing()replacesMadMiner.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