--------------------------  HepMC3.3.1 --------------------------

2024-02-27 Andrii Verbytskyi
         * Require cmake>3.10 for compatibility with cmake4.
           Thanks to Mattias Ellert
	 * Multiple bugfixes and improvements.
           Mattias Ellert, Matthew Feickert
2024-12-26 Andrii Verbytskyi
	 * Add uproot5 to the tests
2024-11-29 Andrii Verbytskyi
	 * Add static libraries and other fixes to HepMC3-config.
2024-08-30 Andrii Verbytskyi
	 * Fix weights usage in the AnalysisExample.cc file.
	 * Update convert_example.cc to allow for one argument for the "dump" format.
2024-06-19 Andrii Verbytskyi
         * Fix for a "Conditional jump or move depends on uninitialised value(s)" problem detected by valgrind

--------------------------  HepMC3.3.0 --------------------------

2024-05-23 Andrii Verbytskyi
         * Update python bindings with binder 1.4.2
         * Update bxzstr to bxzstr 1.2.2 + patches
         * Formatting
2024-05-26 Andy Buckley
         * Explicitly return for inf-generating eta / massless rapidity along pz, to avoid FPE triggering.
2024-04-20 Andy Buckley
         * Suppress cross-section/weight count-mismatch warning if only one cross-section.
2024-04-08 Andrii Verbytskyi
         * Add support for reading with uproot
         * Drop Python2 support
2023-10-24 Mattias Ellert
         * Fix compilation with Python 3.13.0a1.
           See: https://github.com/pybind/pybind11/pull/4902
2023-09-15 Andrii Verbytskyi for HepMC
         * Major update of the build system, removed most of the custom modules.
2023-09-03 Andrii Verbytskyi for HepMC
        * Removed functions that operate on raw pointers.

--------------------------  HepMC3.2.7 ----------------------

2023-10-02 Andrii Verbytskyi for HepMC
        * Patch release to fix the problem with vertex attributes removal.

--------------------------  HepMC3.2.6 ----------------------

2023-03-30 Andrii Verbytskyi for HepMC
        * Deprecated the set_cross_section function with double in favour of those with vector of doubles.
2023-03-03 Andrii Verbytskyi for HepMC
        * Preparation to the release 3.2.6.
2023-03-03 Andrii Verbytskyi for HepMC
        * Better Doxygen documentation for code
2023-03-02 Andrii Verbytskyi for HepMC
        * Improvements in ReaderFactory that should help detect the file type more successfully.
2023-02-14 Andrii Verbytskyi for HepMC
        * Multiple optimizations inspired by clang-tidy
2023-02-10 Andrii Verbytskyi for HepMC
        * The Attributes are now set to be parsed after calls to from_string or set_value
2023-02-07 Andrii Verbytskyi for HepMC
        * API breaking changes in the search module: pass by const reference
2023-01-24 Andrii Verbytskyi for HepMC
        * Update python bindings
2022-11-20 Luke Pickering for HepMC
        * Modernisation of cmake
2022-09-12 Andrii Verbytskyi for HepMC
        * Fix output value of ReaderLHEF::read_event
2022-09-12 Andrii Verbytskyi for HepMC
        * Better documentation for standalone examples
2022-06-07 Luke Pickering for HepMC
        * Adds a protobuf-based HepMC3::Reader/Writer
2022-05-25 Andrii Verbytskyi for HepMC
        * Update pybind11 headers to fix python 3.11. Reported by Mattias Ellert.
        * License update.
        * Make the R/W plugins transparent - the set/get functions call the handled object

--------------------------  HepMC3.2.5 ----------------------

2022-01-02 Andrii Verbytskyi for HepMC
        * Added implementation for Relatives class that works in Windows.
        * (Implemented earlier) Improved MSYS2 support
2021-12-28 Andrii Verbytskyi for HepMC
        * New interfaces for HEPEVT and update of python interface
        * (Implemented earlier) More functions in GenEvent to deal with attributes
        * (Implemented earlier) Implemented Compressed I/O with zip, lzma and bz2 via bxzst library
2021-10-16 Andrii Verbytskyi for HepMC
        * Fixes to documentation of some examples thanks to Rakesh Naik for report.
        * Removal of unused codes and comments
2021-10-17 Andrii Verbytskyi for HepMC
        * Fixes to Pythia8ToHepMC3.py by Ahmed Hussein
2021-07-14 Andrii Verbytskyi for HepMC
        * Added Reader/Write interfaces with smart pointers
2021-07-12 Andrii Verbytskyi for HepMC
        * Fixed #ifdefs for non-Linux system to allow the usage of Reader/Writer plugins.
        * Added MT reader
2021-07-09 Andrii Verbytskyi for HepMC
        * Remove outdated interfaces to MCEGs

--------------------------  HepMC3.2.4 --------------------------

2021-07-06 Andrii Verbytskyi for HepMC
        * Minor fixes to the CMake configuration of examples
2021-06-29 Andrii Verbytskyi for HepMC
        * Minor fixes in Pythia6 interface.
2021-06-22 Andrii Verbytskyi for HepMC
        * Bugfix for HI output in WriterAsciiHepMC2.
2021-06-16 Andrii Verbytskyi for HepMC
        * Speed optimizations for ReaderAsciiHepMC2.
2021-06-08 Andrii Verbytskyi for HepMC
        * Deprecate Pythia8, MC-TESTER, Taoulapp and Photospp interfaces, as these were picked-up by the upstream.
2021-06-04 Andrii Verbytskyi for HepMC
        * Bugfix: avoid creation of empty attributes in ReaderAsciiHepMC2. Thanks to Pavel Demin for a hint.
2021-06-03 Andrii Verbytskyi for HepMC
        * Removal of trailing empty lines by Mattias Ellert.
2021-05-28 Andrii Verbytskyi for HepMC
        * Multiple fixes to style and printf by Mattias Ellert.
2021-05-26 Andrii Verbytskyi for HepMC
        * Fix WriterAscii* to avoid problems with memory tests on aarch64. Thanks to Mattias Ellert for reporting.
2021-05-08 Andrii Verbytskyi for HepMC
        * Fix buffer overflow in WritterAscii/WriterAsciiHepMC2. Thanks for Fabian Klimpel for help with debug.
2021-03-24 Andrii Verbytskyi for HepMC
        * Enable reading of multiple run info objects from ASCII files.
        * Fixes to the tests.
2021-03-24 Andrii Verbytskyi for HepMC
        * Drop cmake2 support
        * Update cmake so the c++ standard is deduced from the ROOT configuration if ROOT is used. Otherwise c++11 is used.
        * Fix a bug in GenCrossSection: access to non-existing vector element in to_string() function. Happened for incomplete objects.
        * Fixed formatting.
        * Added compiler flags to reduce the amount of warnings.
        * Fixed a bug in Tauola test, which was not reading proper config.
        * Streamlined cmake for PGI.
        * Fixed some tests to make them return non 0 in case of problems.
        * Updated CI.
2021-03-10  Andy Buckley  <andy.buckley@cern.ch>
        * Reduce debug-printout verbosity in ReaderFactory format autodetection.
2021-03-05 Andrii Verbytskyi for HepMC
        * Added uproot-based reader to examples.
        * Fixed cmake configuration to allow multiple Python versions.
        * Fixes of compilation warnings by Mattias Ellert.

--------------------------  HepMC3.2.3 --------------------------

2020-11-08 Andrii Verbytskyi for HepMC
        * Documentation and copyright years were updated.
        * Python bindings were regenerated with binder 1.1.0 and the pybind11 copy updated to 2.6.0.
        * The #ifdefs around the functions that had to be excluded from bindings but binder 1.0.0 was not doing that were removed.
        * A Python test with attributes was added.
        * ReaderLHEF was fixed for to treat correctly more complicated input. Inspired by discussion with Bryan Foo and Christopher Palmer.	
2020-06-19 Andrii Verbytskyi for HepMC
        * Included updates to many Python scripts from Marian Heil.
        * Included updates to CMake scripts from Marian Heil.

--------------------------  HepMC3.2.2 --------------------------

2020-06-10 Andrii Verbytskyi for HepMC
        * Bugfix release
        * Fixed treatment of the weights in case of different number of weights and weight names. Reported by Frank Siegert.
        * Fixed WriterAsciiHepMC2 option for separate flows. Reported by Julian Lukwata.
        * Improved treatment of python installation, Thanks to Mattias Ellert.
        * Split the sources of python bindings into smaller files to optimize compilation.
        * Improved cmake configuration for special cases, e.g. old cmake, no ROOT, some compilers, etc. Added more error handling.
        * Fixed compilation of the search module with Clang.
        * Added an example for search module.
        * Fixed the HepMC2 output for events without weights.
        * Fixed the signal vertex ID for HepMC2 output.
        * Added an interface for HepMC2 (in-memory-conversion).
        * Added functions to search module: search for relatives (particle or vertex)->(particle or vertex) in different combinations.
        * The previous point bumps .so version of the libHepMC3search to 4.
        * Improved the configuration of Pythia8 for tests (minimal version requirement).
        * Fixed compatibility of ROOT trees written with HepMC 3.0 and removed the typedefs in the dictionaries.

--------------------------  HepMC3.2.1 --------------------------

2020-03-17 Andrii Verbytskyi for HepMC
        * Bugfix release.
        * Explicit usage of namespaces.
        * Disallow empty lines for the attribute names.
        * Added an option for explicit selection of packages for testing.
        * Adjustments in the interfaces of Tauola/Photos/mc-tester
        *   as a part of preparation to the new releases of these libraries
        * Experimental support for Python modulescompilation with pypy.
        * Bugfix in VectorString attribute, thanks to Luke Pickering
        * and collaborators
        * Improvement in the attribute parsing. Thanks to Peter Onyisi.
        * Added an option to handle Python 3.9. Thanks to Mattias Ellert.
        * Implemented special treatment of some broken HepMC2 events. Thanks to Christian Holm Christensen.

--------------------------  HepMC3.2.0 --------------------------

2019-11-27 Andrii Verbytskyi for HepMC
        * First release with Python bindings
        * Added ReaderPlugin and WriterPlugin and macros to declare plugins
        * Fixed GenCrossSection for the case of multiple cross-sections.
        ** Removed Error class
        ** Removed ReaderHEPEVT::read_hepevt_particle(int i, bool iflong=true), ReaderHEPEVT::read_event(GenEvent &evt, bool iflong)
        ** Removed ReaderHEPEVT::get_vertices_positions_present and ReaderHEPEVT::set_vertices_positions_present
        * The functionality above is implemented now Reader::set_options, Reader::get_options
        ** Fixed GenEvent::weight_names(). Now it should be called w/o arguments.
        * Added set_options, get_options to I/O classes for fine control of I/O
        ** The standard Selector members from Selector (e.g. Selector::MASS) were moved into a new class StandardSelector.
        ** Added HEPMC3_ prefix to DEBUG, ERROR, WARNING  macros
        * Added Reader::skip(int &) for fast forwarding of input
        * Added to LHEF::Writer wrapper functions that can be used in Python
        * use delete/override for class members
        * The ** marked changes should be taken into account during the migration to 3.2
        * Thanks to Dominik Muller

--------------------------  HepMC3.1.2  ----------------------------

2019-08-22  Andy Buckley  <andy.buckley@cern.ch>
        * Add GenParticle::abs_pid() to match FourVector::abs_eta(), abs_rap().
        Experience from Rivet and ATLAS is that these convenience wrappers are genuinely welcomed.
        * Add FourVector component-setting functions in HepMC method naming convention; deprecate old camelCase ones.

2019-08-17 Andrii Verbytskyi for HepMC
        * Bugfix release. Fixed some typos and minor bugs.
        * Fixed name of ROOT dictionary
        * Added more standard attributes
        * Extended documentation for doxygen
        * Added streamer output to Reader/Writer classes
        * Added procedures for boost, rotation and reflection to GenEvent
        * Added operators for printing events, particles, etc.
        * Added example with reading of compressed file and more tests
        * Thanks to
        * Hans Dembinski, John Chapman, Mattias Ellert, Marian Heil,
        *  Attila Krasznahorkay, Dominik Muller, Juergen Reuter

--------------------------  HepMC3.1.1  --------------------------

2019-03-02 Andrii Verbytskyi for HepMC
        * Bugfix release. Fixed some typos and minor bugs.
        * Improved treatment of events with cycles.
        * Improved documentation and examples.

--------------------------  HepMC3.1.0  --------------------------

2019-02-08 Andrii Verbytskyi for HepMC
        * Multiple changes for 3.1 release
        * Renaming the namespace, header directory and library name to HepMC3
        * SmartPointer is replaced with shared_ptr from C++11, so C++11 is always required now
        * Split library into HepMC3(core) and HepMC3search (search engine)
        * New Search engine with highly abstract search capabilities
        * New readers and writers: WriterAsciiHepMC2, ReaderLHEF
        * Ascii files now have own string in header: Asciiv3
        * Deduction of input file format in ReaderFactory
        * Improved consistency of interface
        * Removal of most deprecated functions and  multiple bugfixes
        * Implemented test suite
        * Improved examples and documentation

--------------------------  HepMC3.0.0  --------------------------

2017-03-20 Witek Pokorski

	* tagging HepMC3.0.0

2017-01-31  Andy Buckley  <andy.buckley@cern.ch>

	* Add a GenVertex::particles(range) method (as in HepMC 2.07).

2017-01-30  Andy Buckley  <andy.buckley@cern.ch>

	* Add ancestors() and descendants() methods to GenParticle, and make parents() and children() accessors const.

	* Add stream constructors to IO_GenEvent wrapper, and an ostream implementation to WriterAscii.

2017-01-27  Andy Buckley  <andy.buckley@cern.ch>

	* Add unbound accessor functions in FindParticles.

	* Add unisex 'children' and 'parents' accessors in FindParticles.

	* Make FindParticles available from HepMC.h convenience header.

2016-07-05 Dmitri Konstantinov

	* making installation of interfaces optional

2016-06-30 Witek Pokorski

	* changing ROOTIO_LIB define to HEPMC_ROOTIO_LIB

2016-06-10 Witek Pokorski

	* removing warnings, adding README, updating documentation

2016-04-29 Andrii Verbytskyi

	* Fixing Fortran flags

2016-04-27 Witek Pokorski

	* Moving GenEvent and GenRunInfo root streamers to a separate file

--------------------------  HepMC3-beta2.0  --------------------------

2016-01-18 Andrii Verbytskyi

	* Builds of Debian packages

2016-01-12 Andrii Verbytskyi

	* Update of cmake files to allow proper RedHat x86_64 directory structure
	* Add section to build rpms and debs with cpack
	* ROOT IO is enabled if ROOTConfig.cmake or FindROOT.cmake set ROOT_FOUND

2016-01-06 Andrii Verbytskyi

	* Compilation with gcc 4.4

2016-01-06 Dmitri Konstantinov

	* Missing cross-section parsing added to HepMC2 reader

2015-12-07 Witek Pokorski

	* adding tree-based version of ROOT reader/writer

2015-05-24  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Few missing I/O features added
	* Documentation updated. Added previously missing 'examples' section

2015-05-08  Andy Buckley  <andy.buckley@cern.ch>

	* Make sure that all macros in Config.h have a numerical value
	(thanks to Marek Schoenherr for the heads-up).

2015-04-21 Witek Pokorski

	* ROOT reader and writer inherit now from Reader and Writer base classes

2015-04-03 Witek Pokorski

	* Optimisations in read_data method

2015-03-27  Andy Buckley  <andy.buckley@cern.ch>

	* Reduce/add HepMCDefs.h and SimpleVector.h to stubs for backward
	compatibility, which include the modern equivalent headers and
	produce preprocessor warnings. These should be conditionally
	installed only when building in compatibility mode.

	* Adding, removing, and tweaking feature detection macros.

	* Adding backward compatibility typedefs to CrossSection,
	HeavyIon, PdfInfo (i.e. without the Gen prefixes)

2015-03-26  Andy Buckley  <andy.buckley@cern.ch>

	* Overhaul of FourVector class and removal of FourVector.icc

	* Differentiate between SmartPointer const and non-const
	dereferencing and arrow operators, to pass on the constness
	semantics to the contained type. This blocks accidents like
	calling non-const modifying functions on a const GenVertexPtr or
	const GenParticlePtr, which is not protected against by
	e.g. shared_ptr<GenParticle>. Plus adding an operator for bool
	comparisons to SmartPointer and (many) updates through the main
	object classes to respect the newly invigorated constness
	rules. Good!

	* Changing GenEvent::event_pos() to return a FourVector ref rather
	than the root vertex itself, and changing
	GenEvent::offset_event(v) to two explicitly named
	shift_event_by(v) and shift_event_to(v) methods.

2015-03-23  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* ReaderAscii and WriterAscii finished. IO_GenEvent is now only
	  backward-compatibility header file

	* IO_Root divided into WriterRoot and ReaderRoot

	* Other I/O cleanup. include/HepMC/IO and src/IO removed
	  IO_FileBase and IO_Base removed. Examples updated.

2015-03-09 Witek Pokorski

	* Implemented ROOT I/O custom streamer for GenEvent

2015-02-19 Leif Lonnblad

	* Implemented the LHEF attributes classes

2015-02-15  Andy Buckley  <andy.buckley@cern.ch>

	* Adding new Reader and Writer I/O base classes and first draft ASCII I/o interfaces (to be finished).

	* Adding new GenWeights container (from HepMC2 update, to be cleaned).

2014-12-12 Witold Pokorski

	* Updating example event file

	* Fixes for ROOT6 dictionary

2014-07-25  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added beam particles

	* Added backward-compatibility iterators

	* Added Attributes mechanism. Currently used only for event and
	  keys (strings) are stored in GenEvent (which will change)

	* Updated ASCII file I/O to work with Attributes. ROOT I/O will follow

	* Modified GenPdfInfo, GenHeavyIon and GenCrossSection to work as
	  Attributes

2014-11-25  Andy Buckley  <andy.buckley@cern.ch>

	* Add HEPMC_DEPRECATED macro in Setup.h

2014-11-25  Witold Pokorski

	* Adding first version of CMake for validation

2014-11-18  Witold Pokorski

	* Fix in cmake for rootIO library to work with ROOT6

	* Made DHEPMC_ENABLE_CPP11 option ON by default

2014-11-07  Witold Pokorski

	* Fixes in cmake to export also rootIO library, removed obsolete forcing of .so on Mac

2014-11-05  Witold Pokorski

	* Redesign of ROOT I/O, moved to a separate library

	* Added .exe in examples executables names

	* Improvement in Pythia8 example; possibility of setting number of
	events and passing conf and output file names as arguments

2014-10-22  Tomasz Przedzinski & Witold Pokorski

	* Added ROOT I/O

	* Added ROOT I/O examples

	* CMake updated for use with ROOT

	* Added check for C++11 to CMake. Now #ifndef BUILD_WITH_11 can be used in code

	* GenPdfInfo, GenHeavyIon, GenCrossSection are now stored by shared_ptr not raw pointer

	* GenPdfInfo, GenHeavyIon, GenCrossSection added to ROOT I/O and IO_GenEvent
	  Now they're properly written and read from/to text files and root files

2014-09-19  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Changed naming convention from HepMC3 to HepMC (namespaces, comments, defines, etc.)

	* Changed PdfInfo to GenPdfInfo and changed names of the fields

	* Changed HeavyIon to GenHeavyIon

	* Added 'examples' directory. Currently only with pythia8 example
	  and with rushed Makefile that should be rewritten

2014-09-10  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added README with coding standards for HepMC developers

	* Added HEPEVT wrapper and sample test for it

2014-07-25  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added cross-section sctruct

	* Added prototype for Rivet interface on branch 'rivet'

2014-07-13  Andy Buckley  <andy.buckley@cern.ch>

	* Adding HepMC.h and Version.h headers.

	* Use CXX and CXXFLAGS in place of CC,CFLAGS

	* Adding ChangeLog and TODO to track developments.

2014-07-04  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added PDFinfo and HeavyIon structs

2014-06-20  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added Units class

2014-05-20  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added serialization module for future ROOT interface

2014-05-13  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Improved and optimized in-memory representation prototype

2014-05-06  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Tested new in-memory representation prototype based on smart_ptr

2014-04-29  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Changed validation framework. Now it can be configured through config
	  files and can be used with selected with any (or none) of the tools
	  for which interface to HepMC3 is prepared

	* Tested new in-memory representation prototype based on classes
	  acting like smart pointers

2014-04-22  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added vertex position. Position accessor checks all vertices down the
	  decay tree for first vertex that has position set

	* I/O classes updated to read and store vertex positions

2014-04-22  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added vertex position. Position accessor checks all vertices down the
	  decay tree for first vertex that has position set

2014-04-15  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Tested new in-memory representation prototype prioritizing serialization

2014-04-08  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Validation framework expanded

	* Added first version of search engine

2014-04-01  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Added validation framework prototype

	* Added versioning prototype

2014-03-25  Tomasz Przedzinski  <tomasz.przedzinski@cern.ch>

	* Project started

	* Added first prototype for HepMC3 in-memory representation

	* Added first version of HepMC2 plain text input file reader

	* Added first version of HepMC3 plain text output file writer
