yoda

view ChangeLog @ 1479:e335e6743a5e

Oops, add the release to the ChangeLog!
author Andy Buckley <andy@insectnation.org>
date Tue, 14 Aug 2018 13:46:44 +0100
parents 85684bbcc337
children
line source
1 2018-08-14 Andy Buckley <andy.buckley@cern.ch>
3 * Release 1.7.1
5 2018-08-08 Andy Buckley <andy.buckley@cern.ch>
7 * yodadiff now supports quiet (-q) and list (-l) modes.
9 2018-06-01 Louie Corpe <lcorpe@cern.ch>
11 * Point1,2,3D now support multiple error sources for the highest dimension.
13 * Scatter1,2,3D now read in/out with additional columns for the extra error
14 sources, with a variations() method to check with sources are available
16 2018-05-02 Andy Buckley <andy.buckley@cern.ch>
18 * StringUtils.h: Replace std::ptr_fun (removed in C++17) with a lambda function. Thanks to Stefan Richter.
20 2018-04-30 Andy Buckley <andy.buckley@cern.ch>
22 * Add "-" = stdin/stdout recognition to C++ IO functions.
24 * Convert remaining Python read/write methods to use the C++ IO functions.
26 * Convert Python read/write methods with filename arguments to use the gzip-aware IO functions.
28 2018-04-27 Andy Buckley <andy.buckley@cern.ch>
30 * Fix missing lock=false flag initialisation in Histo2D constructor from a Bins vector.
32 * Improve axis locking error messages.
34 2017-12-21 Andy Buckley <andy.buckley@cern.ch>
36 * Version 1.7.0 release
38 2017-12-11 Andy Buckley <andy.buckley@cern.ch>
40 * Add Nentries printout to yodals -v
42 2017-09-18 Andy Buckley <andy.buckley@cern.ch>
44 * Patches for ROOT conversion from Robert Hatcher -- thanks!
46 2017-09-16 Andy Buckley <andy.buckley@cern.ch>
48 * Add YODA format version annotation, at version 2, and update
49 YODA reader to use version info and multiline YAML EOF marker.
51 * Write YODA annotations in YAML with a --- YAML break-line.
53 2017-09-14 Andy Buckley <andy.buckley@cern.ch>
55 * Enable compressed writing from Python.
57 2017-09-13 Andy Buckley <andy.buckley@cern.ch>
59 * Remove UNUSED macro in favour of anonymous args.
61 * Enable zipped writing... but only works from C++ so far.
63 2017-09-11 Andy Buckley <andy.buckley@cern.ch>
65 * Add HistoBin2D::area(), and provide a default normto=1.0
66 argument on the Python Histo2D.normalize() method.
68 2017-09-04 Andy Buckley <andy.buckley@cern.ch>
70 * Change license explicitly to GPLv3, cf. MCnet3 agreement.
72 * Parse YODA format AO headers as YAML (restriction to single-line dict entries for now).
74 2017-08-24 Andy Buckley <andy.buckley@cern.ch>
76 * Use a slightly enhanced fast numeric parser in ReaderYODA (taken
77 from LHAPDF, originally inspired by Gavin Salam).
79 * Add an UNSCALE spec option to yodascale, to undo ScaledBy effects.
81 2017-08-19 Andy Buckley <andy.buckley@cern.ch>
83 * Add optional zlib support via zstr -- massive thanks to Dmitry
84 Kalinkin for the lovely patch!
86 2017-08-16 Andy Buckley <andy.buckley@cern.ch>
88 * Fix setVal(i, x) numbered-axis methods on Point2D and Point3D:
89 switch break statements were missing.
91 * Explicitly load all ROOT objects as a list rather than
92 generator. Patch from Dmitry Kalinkin.
94 2017-07-24 Andy Buckley <andy.buckley@cern.ch>
96 * Improvements to yodaplot, including two operating modes: the
97 default CMP mode is suitable for plotting histos by path, from raw
98 .yoda files.
100 * Update yoda.plotting functions to treat plot-keys as args and AO
101 annotations via case-insensitive keys.
103 * Add annotationsDict to the Python AO interface.
105 * Add AO as an alias for AnalysisObject.
107 2017-07-23 Andy Buckley <andy.buckley@cern.ch>
109 * Add parallel/compatibility yoda1 package to aid eventual transition to YODA v2.
111 2017-07-22 Andy Buckley <andy.buckley@cern.ch>
113 * Add x,y,zMins and Maxs to all 1D data types and scatters (and
114 x,yMin/Max to the scatters) -- Python interface only.
116 * Rework some of the yoda.plotting tools, making it a bit more
117 compatible with user-scripted matplotlib.
119 2017-07-18 Andy Buckley <andy.buckley@cern.ch>
121 * Add convenience aliases H1D, H2D, P1D, P2D, and S1D, S2D, S3D
122 for the HistoXD, ProfileXD, and ScatterXD classes respectively.
124 2017-07-08 Andy Buckley <andy.buckley@cern.ch>
126 * Add xyVals/Errs and other 'bin array property' accessors to the
127 Python Histo1D and Profile1D types: important for connection to
128 matplotlib.
130 2017-06-28 Andy Buckley <andy.buckley@cern.ch>
132 * Use Python natsort library to sort yodals output if available.
134 2017-06-18 Andy Buckley <andy.buckley@cern.ch>
136 * Version 1.6.7 release.
138 2017-05-12 Andy Buckley <andy.buckley@cern.ch>
140 * pyext/yoda/rootcompat.pyx: Fix ordering of TH1 vs. TProfile
141 conversion -- TProfile *is* a TH1, so we have to test for the more
142 specific type-match first. Thanks to Dmitry Kalinkin for the
143 patch.
145 2017-05-02 Andy Buckley <andy.buckley@cern.ch>
147 * Add static Reader methods to match the Writer ones.
149 2017-02-23 Andy Buckley <andy.buckley@cern.ch>
151 * Fix Histo2D and Profile2D total distribution reading from YODA format.
153 2017-02-19 Holger Schulz <holger.schulz@durham.ac.uk>
155 * Convert TH1F to TH1D in root2flat. Much simpler than duplicating
156 the TH1D stuff in pyext.
158 2016-12-13 Andy Buckley <andy.buckley@cern.ch>
160 * Version 1.6.6 release.
162 2016-12-12 Holger Schulz <holger.schulz@durham.ac.uk>
164 * Bugfixes in Cython bins accessors for Histo2D.
166 2016-11-17 Leif Lonnblad <leif.lonnblad@thep.lu.se>
168 * Fixed warning messages about the obsoleteness of AIDA so that the scripts actually still work.
170 2016-09-28 Andy Buckley <andy.buckley@cern.ch>
172 * Version 1.6.5 release, for the benefit of ROOT fans.
174 * Fix handling of --enable/disable-root configure options.
176 2016-09-26 David Grellscheid <david.grellscheid@durham.ac.uk>
178 * Improvements to Cython version testing.
180 2016-09-25 Andy Buckley <andy.buckley@cern.ch>
182 * Version 1.6.4 release.
184 2016-09-20 David Grellscheid <david.grellscheid@durham.ac.uk>
186 * Remove aliases for @property functions. They were scheduled for
187 removal anyway, and don't work with Cython >= 24.
189 2016-09-06 Andy Buckley <andy.buckley@cern.ch>
191 * Update configure scripts to use newer (Py3-safe) Python testing
192 macros.
194 2016-08-09 Andy Buckley <andy.buckley@cern.ch>
196 * Version 1.6.3 release!
198 2016-07-22 Andy Buckley <andy.buckley@cern.ch>
200 * Add 'add' modes for scatter combination to yodamerge.
202 * Fix yodamerge scatter averaging to use the first AO.
204 2016-07-21 Andy Buckley <andy.buckley@cern.ch>
206 * Add --type-mismatch-mode flag and fallback logic to yodamerge.
208 * Fix yodamerge logic to handle cases where an AO only appears once.
210 2016-07-19 Andy Buckley <andy.buckley@cern.ch>
212 * Deprecate flat2yoda script and add warning output to it and the AIDA conversion scripts.
214 * Add a convenience yoda2yoda script.
216 2016-07-14 Andy Buckley <andy.buckley@cern.ch>
218 * Try to build PyROOT interface by default, if root-config is found.
220 2016-07-11 Andy Buckley <andy.buckley@cern.ch>
222 * Remove accidentally remaining reference to Boost flags in yoda-config.
224 2016-07-06 Andy Buckley <andy.buckley@cern.ch>
226 * Version 1.6.2 release!
228 2016-07-05 Andy Buckley <andy.buckley@cern.ch>
230 * Pass the toNewScatter3D() scalebyarea flag to the called toScatter3D() functions.
232 2016-06-06 Andy Buckley <andy.buckley@cern.ch>
234 * Re-enable the disabled-for-some-reason Scatter1D combineWith Python mappings.
236 2016-04-28 Andy Buckley <andy.buckley@cern.ch>
238 * Version 1.6.1 release!
240 * Add a unit test for annotation handling correctness.
242 * Fix numerical precision of string storage of floating-point attributes.
244 * Fix a bug in use of the replacement for lexical_cast.
246 2016-04-20 Andy Buckley <andy.buckley@cern.ch>
249 * Version 1.6.0 release!
251 2016-04-16 Andy Buckley <andy.buckley@cern.ch>
253 * Extend SFINAE craziness to allow writing of any object
254 (e.g. smart pointer) that can be dereferenced to something that
255 has AnalysisObject as its base class... and also to any container
256 of them! Amazing what you can do with C++11!
258 2016-04-14 Andy Buckley <andy.buckley@cern.ch>
260 * Add a few consts to the arguments in Scatter error setting via pairs.
262 * Fix double-writing of minus errors in WriterYODA for Scatter1D
263 and Scatter3D. Thanks to Graeme Watt for the report and fix.
265 2016-04-12 Andy Buckley <andy.buckley@cern.ch>
267 * Remove Boost dependency and require C++11 compilation.
269 2016-04-08 Andy Buckley <andy.buckley@cern.ch>
271 * Add a --guess-prefix flag to yoda-config, cf. fastjet-config.
273 2015-12-20 Andy Buckley <andy.buckley@cern.ch>
275 * Change AO uncomputable division and mkScatter operations to
276 return/set NaN rather than 0 -- behaviour change requires new
277 major version series 1.6.
279 2016-03-09 Andy Buckley <andy.buckley@cern.ch>
281 * Version 1.5.9! (oh no, we're out of convenient version number space!!)
283 2016-03-08 Andy Buckley <andy.buckley@cern.ch>
285 * Add abs function to eq calculation in yodadiff.
287 2016-02-29 Andy Buckley <andy.buckley@cern.ch>
289 * Remove blocking of builds against ROOT6 -- it works fine.
291 2016-02-16 Andy Buckley <andy.buckley@cern.ch>
293 * Add a --add option to yodamerge, for simple histo
294 stacking. Thanks to Chris Gutschow for the patch, although my
295 spidey sense is tingling...
297 2015-12-21 Andy Buckley <andy.buckley@cern.ch>
299 * Version 1.5.8!
301 * Add a rebinning unit test, pytest-rebin.
303 * Add optional range arguments to rebinBy methods, allowing block
304 rebinnings to be applied only within a range of (original) bin
305 indices.
307 * Add missing root.py submodule file. Oops!
309 2015-12-20 Andy Buckley <andy.buckley@cern.ch>
311 * Convert linspace to use multiplication rather than repeated
312 addition to construct edge values, reducing precision errors.
313 Thanks to Holger Schulz for the suggestion.
315 2015-12-15 Andy Buckley <andy.buckley@cern.ch>
317 * Add xEdges() methods to Axis1D and the Histo1D and Profile1D
318 that use it. The returned edge lists are finite only, i.e. they do
319 not contain the +-inf values on the ends of the internal
320 BinSearcher edges.
322 2015-12-13 Andy Buckley <andy.buckley@cern.ch>
324 * Version 1.5.7!
326 * Extend batch-adding in ReaderYODA to include Scatter types.
328 * Add a match_aos function to Python, for filtering AO lists/dicts
329 on path patterns and anti-patterns.
331 2015-12-12 Andy Buckley <andy.buckley@cern.ch>
333 * Add a flag to yoda2root to change whether the conversion is to
334 'proper' types or to (more robustly) TGraphAsymmErrors objects.
336 * Fix accidental use of S2D_MODE flag where S1D_MODE should have
337 been used, in yodamerge. Thanks again to Radek Podskubka.
339 * Allow new rebinTo() merging to restrict to a subset of the bin
340 range, merging the outside bins into the overflow distributions.
342 2015-12-11 Andy Buckley <andy.buckley@cern.ch>
344 * Add a rebinTo() method on Axis1D, allowing rebinning to a new
345 given set of bin edges. Add an explicitly named rebinBy(), and
346 overloaded rebin() aliases for both, and pass through to Histo1D
347 and Profile1D APIs. Plus other internal tweaks to binning
348 functionality... anticipating/fuelling the fundamental rewrite.
350 2015-12-10 Andy Buckley <andy.buckley@cern.ch>
352 * Improve ReaderYODA to use temporary bin containers, to minimise
353 calling sort when adding bins to histos. A quick test suggests
354 this has sped up big file reading by a factor of 30 or so!!!
356 * Add missing addBins() operators (only in C++ so far) to Histo
357 and Profile classes.
359 * Fix Counter::numEntries to return an unsigned long rather than double.
360 Thanks to Radek Podskubka for the bug discovery and detective work.
362 * Improve sortedvector to insert new elements into the sorted
363 position, rather than resorting the whole vector. This should be a
364 bit more efficient, but I think the asymptotic complexity is the
365 same. Might help a bit with reading big data files.
367 2015-12-04 Andy Buckley <andy.buckley@cern.ch>
369 * Add yoda.HAS_ROOT_SUPPORT flag, for API user convenience.
371 2015-11-22 Andy Buckley <andy.buckley@cern.ch>
373 * Version 1.5.6!
375 * Make AO path setting and retrieval prepend a leading slash if it
376 is missing (unless the path is completely empty).
378 2015-11-21 Andy Buckley <andy.buckley@cern.ch>
380 * Add root2yoda conversion script.
382 * Deprecating yoda.to_root() in favour of yoda.root module, which
383 contains to_root and to_yoda functions, as well as a ROOT file
384 walking function.
386 2015-11-17 Andy Buckley <andy.buckley@cern.ch>
388 * Map ROOT-to-YODA (as scatter) functions to Python. Phew.
390 * Map new to-ROOT functions, including TGraph ones, to Python.
392 2015-11-16 Andy Buckley <andy.buckley@cern.ch>
394 * ROOTCnv.h: Add toScatter3D ROOT->YODA, and toNew* YODA->ROOT
395 conversion routines.
397 * ROOTCnv.h: Fix bug in toTH2D(const Histo2D& h) as used with
398 ROOT6. Thanks to Tim Martin.
400 2015-11-05 Andy Buckley <andy.buckley@cern.ch>
402 * Fix double-dealloc in new Point class hierarchy Python mapping.
404 2015-10-23 Andy Buckley <andy.buckley@cern.ch>
406 * Make the version() function inline, and the numerical constants static.
408 * Change the default plotting backend to MPL rather than the much slower PGF.
410 2015-10-09 Andy Buckley <andy.buckley@cern.ch>
412 * Reinstate __getitem__ special methods for Scatters in Python.
414 * Provide dim() methods/attributes for the Point and Bin base classes.
416 * Rename set*Err to set*Errs for the asymmetric variants. Plural
417 aliases are also provided for the symm case.
419 2015-10-08 Andy Buckley <andy.buckley@cern.ch>
421 * Pass std::pairs by reference in Point*D error setting functions.
423 * Add Point base class with generic accessors to Point*D
424 properties via an integer axis ID argument.
426 2015-10-07 Andy Buckley <andy.buckley@cern.ch>
428 * Version 1.5.5 release.
430 * Counter.pyx: Typo fix in sumW mapping.
432 * yodamerge: Re-add checking for non-emptiness before merging, in
433 case the empty ones are missing a ScaledBy attribute. Won't
434 normally apply to Profiles, since they don't usually get
435 normalised, but we might as well include them in the vetoing since
436 empty histos don't contribute to the merging. Added a command-line
437 option to disable this heuristic since in very strange situations
438 a null sumW does not mean no fills.
440 2015-10-06 Andy Buckley <andy.buckley@cern.ch>
442 * Version 1.5.4 release.
444 * ReaderYODA: Typo fixes in Counter filling of sumW and Scatter3D reader state flag.
446 * yodamerge: add merging heuristics for Scatter1D and Scatter3D (needs unification)
448 2015-10-05 Andy Buckley <andy.buckley@cern.ch>
450 * yodamerge: add a fix for empty-in-all-runs histo merging; thanks
451 to Daniel Rauch.
453 2015-10-04 Andy Buckley <andy.buckley@cern.ch>
455 * Adding dim() function and corresponding Python attribute to AnalysisObject.
457 * Map Counter arithmetic operations into Python.
459 * Map Counter mkScatter() into Python (as bound method).
461 * Add a YODA::version() function, mapped into Python and used to
462 set the yoda.__version__ variable.
464 2015-10-01 Andy Buckley <andy.buckley@cern.ch>
466 * Expose the yoda.plot() Python function in a way that doesn't
467 automatically induce a dependence on matplotlib.
469 2015-09-30 Andy Buckley <andy.buckley@cern.ch>
471 * Fix yodals to work with Counters.
473 2015-09-23 Andy Buckley <andy.buckley@cern.ch>
475 * Version 1.5.3 release.
477 * Update Boost version requirement to 1.48, due to use of
478 type_traits/has_dereference, and add a check for that feature's
479 header.
481 2015-09-19 Andy Buckley <andy.buckley@cern.ch>
483 * Further improvements to handling leading _multiple_ # marks on
484 YODA format BEGIN lines.
486 2015-09-11 Andy Buckley <andy.buckley@cern.ch>
488 * Version 1.5.2 release.
490 * Tolerate leading # symbols without separating whitespace on
491 BEGIN lines in YODA format parsing.
493 * Further improvements to handling LowStatsErrors in YODA format writing.
495 * Fix shadowed variables that made ReaderYODA unhappy.
497 2015-09-03 Andy Buckley <andy.buckley@cern.ch>
499 * Version 1.5.1 release.
501 * Fix bugs in Python wrapper for Point3D.
503 2015-08-28 Peter Richardson <Peter.Richardson@durham.ac.uk>
505 * Catch LowStatsError when writing multiple histograms so only the
506 histogram with the problem is not written
508 2015-08-28 Andy Buckley <andy.buckley@cern.ch>
510 * Version 1.5.0 release.
512 2015-08-24 Andy Buckley <andy.buckley@cern.ch>
514 * Improve protection of efficiency calculation against the weird
515 world of general weighted events.
517 2015-08-17 Andy Buckley <andy.buckley@cern.ch>
519 * Add some protection against calling matplotlib's legend() method
520 if there are no valid labels to display, to suppress an MPL
521 warning message when using yoda.plot().
523 2015-08-12 Andy Buckley <andy.buckley@cern.ch>
525 * Fix cut & paste typo, and add LowStatsError catching in Profile division.
527 2015-08-11 Andy Buckley <andy.buckley@cern.ch>
529 * Replace old Spirit-based ReaderYODA with the new hand-rolled one.
531 * Adding filling of Histo1D, Profile1D, Histo2D and Profile2D in
532 new ReaderYODA. More hacking of Axis and Histo/Profile
533 interfaces... needs clean-up, and infinite binning implementation.
535 2015-08-07 Andy Buckley <andy.buckley@cern.ch>
537 * Convert the ReaderFLAT parser to also use a simple hand-written parser rather than Spirit.
539 2015-08-04 Andy Buckley <andy.buckley@cern.ch>
541 * Add methods for Counter, Axis and Histo1D internal state
542 access/setting, mainly for new persistency. NEEDS PRE-RELEASE TESTING!!!
544 2015-07-30 Andy Buckley <andy.buckley@cern.ch>
546 * Remove # markers from YODA format BEGIN/END output. The parser
547 will continue to accept them.
549 2015-07-29 Andy Buckley <andy.buckley@cern.ch>
551 * Add SFINAE trait magic to restrict write(RANGE) functions to
552 accepting iterables. Also generalising to allow either
553 container-of-objects or container-of-pointers args by providing a
554 writeBody(AO*) function to complement writeBody(AO&). Based on a
555 patch from Lukas Heinrich.
557 * Add configuration of output streams to throw exceptions on
558 bad/fail state (based on patch from Lukas Heinrich).
560 2015-07-01 Andy Buckley <andy.buckley@cern.ch>
562 * 1.4.0 release.
564 2015-06-30 Andy Buckley <andy.buckley@cern.ch>
566 * More tweaks to yodamerge: adding control of S2D merging
567 strategy, and now performing weighted normalized histo merges
568 without reference to an absolute normalization.
570 * Change yodamerge norm-detection heuristic to just look for a
571 ScaledBy attribute rather than fuzzily compare norms.
573 2015-06-26 Andy Buckley <andy.buckley@cern.ch>
575 * Removing add, subtract, and divide functions and operators on
576 Scatter types, and re-implementing Histo and Profile divide
577 functions explicitly rather than via mkScatter. Also removed from
578 the Python interface. The combine() methods remain.
580 2015-06-24 Andy Buckley <andy.buckley@cern.ch>
582 * Adding workaround versions of binAt to all the Python histo
583 types (for some reason the direct mapping that works for bin(i)
584 produces a compile error for binAt(x) :-/
586 2015-06-23 Andy Buckley <andy.buckley@cern.ch>
588 * Renaming, tidying, completing, etc. the Python-mapped methods on Bin1D and Bin2D.
590 * Rename Python Histo2D mean, variance, etc. pair-returning
591 methods to xyMean, xyVariance, etc., to distinguish from Profile2D
592 mean, variance, etc.
594 * Add Python mappings of all the methods below.
596 * Add full set of {x,y}{Mean,Variance,StdDev,StdErr,RMS} to 1D and
597 2D binned distributions.
599 * Add optional includeoverflows=True argument to all binned AO
600 numEntries and effNumEntries.
602 * Fix type of numEntries to always be unsigned long.
604 2015-06-18 Andy Buckley <andy.buckley@cern.ch>
606 * Fix typos in Point3D Python mapping (accidentally trying to get
607 the ptr via _Point2D rather than _Point3D).
609 2015-06-13 Andy Buckley <andy.buckley@cern.ch>
611 * Adding an AnalysisObject::name() method, to return the last part
612 of the path. Mapped into a Python property.
614 * Adding an optional usestddev argument to mkScatter for profile
615 types, so the error bars can represent distribution width rather
616 than uncertainty on the mean. Mapped to Python.
618 2015-06-08 Andy Buckley <andy.buckley@cern.ch>
620 * Adding unpatterns arguments to Python read functions, and
621 auto-conversion from single strings and re.compile()d strs.
623 2015-06-04 Andy Buckley <andy.buckley@cern.ch>
625 * Add binAt(x,y) and binIndexAt(iglobal) Python methods for 2D
626 histos. Still want a way to get and pass a pair of bin indices, I
627 think.
629 * Adding includeoverflows optional args for Histo1D (eff)numEntries.
631 * Adding Rename Histo1D integral() methods as integral(),
632 integralRange(), and integralTo(), and mapping to Python.
634 2015-06-02 Andy Buckley <andy.buckley@cern.ch>
636 * Adding missing binAt and binIndexAt methods to Histo1D and
637 Profile1D, plus other minor Python mapping tweaks.
639 * Add a regex pattern match optional argument to the IO.read()
640 Python functions, for pre-emptive filtering.
642 2015-03-27 Andy Buckley <andy.buckley@cern.ch>
644 * Fix a harmless possibility to raise an FPE exception in the
645 BinSearcher. Thanks to Leif Lonnblad for the discovery, debug and
646 patch!
648 2015-03-19 Andy Buckley <andy.buckley@cern.ch>
650 * Bump version for 1.3.1 release.
652 2015-03-06 Andy Buckley <andy.buckley@cern.ch>
654 * Adding usefocus optional argument to some mkScatter functions, plus the Python bindings.
656 * Cleaning up some Python mappings of 2D histogram bin classes.
658 * Removing mappings of bin-level fill and scale operations in Python.
660 * Fix formatting and error handling in Python Bin and Dbn __repr__ methods.
662 * Add a -i/--in-place option pair on yodascale.
664 2015-02-05 Andy Buckley <andy.buckley@cern.ch>
666 * Convert script matching options to use re search rather than match.
668 * Adding matching options and verbose option to yodals.
670 2015-01-27 Andy Buckley <andy.buckley@cern.ch>
672 * Improvements and additions to ROOTCnv.h routines, particularly
673 to TProfile creation: thanks to Roman Lysak for advice.
675 2015-01-16 Andy Buckley <andy.buckley@cern.ch>
677 * Add convenience YODA/YODA.h header.
679 2015-01-15 Andy Buckley <andy.buckley@cern.ch>
681 * yodascale now uses PointMatcher and can normalize or multiply to
682 abs values or ref histos/bin ranges.
684 2015-01-05 Andy Buckley <andy.buckley@cern.ch>
686 * Adding yoda.matcher Python sub-package with PointMatcher
687 functionality. To be used in Professor 2.0 and in yodascale.
689 * Adding 'scat2' type to yodahist.
691 * Add match/unmatch args to all conversion scripts, via a new Python yoda.script_helpers function.
693 * Script updates, improved docstrings, and improved tab completion.
695 2014-12-10 Andy Buckley <andy.buckley@cern.ch>
697 * Add a yoda.plotting sub-module, based on matplotlib.
699 2014-12-03 Andy Buckley <andy.buckley@cern.ch>
701 * Small build improvements: cleaning test1.root from the yoda2root
702 test, and adding a make target & flag file for mktemplates in
703 pyext/yoda to make sure that it only gets run once.
705 2014-11-25 Andy Buckley <andy.buckley@cern.ch>
707 * Handle overflow filling in binned types without invoking an exception.
709 * Change inRange to have non-fuzzy comparison behaviour.
711 2014-11-11 Andy Buckley <andy.buckley@cern.ch>
713 * Improving/adding __div__ functions in Python for all binned types.
715 * Add std:: prefix to isinf() calls in BinSearcher.h.
716 2014-09-30 Andy Buckley <andy.buckley@cern.ch>
718 * 1.3.0 release!
720 * Use numEntries() rather than effNumEntries() when checking
721 consistency of inputs to efficiency() calculations -- the
722 effNumEntries of a set can be smaller than that of a strict
723 subset, surprisingly!
725 2014-09-17 Andy Buckley <andy.buckley@cern.ch>
727 * Small improvements to yodahist and yodaplot behaviours/UIs.
729 * Adding setX/Y/Z(val, err) methods to Point3D.
731 * Add an efficiency method for 2D histos.
733 * Hide fill and fillBin methods from Python mappings of bin types.
735 2014-09-01 Andy Buckley <andy.buckley@cern.ch>
737 * YODA 1.2.1 release!
739 2014-08-29 Andy Buckley <andy.buckley@cern.ch>
741 * Hide non-const access to bin objects from histogram users:
742 avoids potential for inconsistency between total dbns and in-range
743 bins.
745 * Bug in BinSearcher fixed by Peter Richardson: constructor
746 arguments were passed in the wrong order when constructing a
747 LinEstimator in cases where log binning wouldn't be allowed.
749 2014-08-26 Andy Buckley <andy.buckley@cern.ch>
751 * Add protection against / characters in histo names in yoda2root
752 (thanks to Will Bell for the report and suggested patch).
754 2014-08-17 Andy Buckley <andy.buckley@cern.ch>
756 * Add +=, -=, *-, /=, ++ and -- operators to Counter, along with
757 an (implicit) constructor from a double -- all for user
758 convenience so Counter can be used in lieu of a simple number.
760 2014-08-15 Andy Buckley <andy.buckley@cern.ch>
762 * YODA 1.2.0 release!
764 * Permit +-inf values to be filled into histograms; NaN fills will
765 still explicitly throw an exception.
767 * Add unit tests for Counter, Scatter1D, and Scatter2D, including
768 persistency.
770 * Adding YODA and FLAT format I/O for Scatter1D and Counter (as
771 far as currently possible -- FLAT Counter can't be read due to a
772 #item ambiguity, just like the one between the YODA format Point3D
773 and ProfileBin1D). To be continued...
775 2014-08-14 Andy Buckley <andy.buckley@cern.ch>
777 * Python mappings for Dbn0D and Counter, and other improvements.
779 * Adding val() and err() methods to Counter, and errW() and
780 relErrW() to all DbnXD types.
782 * Adding Scatter1D and Point1D types, with conversion from Counter
783 supported. Both Counter and Scatter1D still need to be supported
784 by YODA persistency.
786 2014-08-11 Andy Buckley <andy.buckley@cern.ch>
788 * Add ROOT version checking to configure. Thanks to Michael Grosse
789 for the report/request.
791 2014-08-05 Andy Buckley <andy.buckley@cern.ch>
793 * Remove all methods not specific about the axis to which they
794 refer, e.g. Histo1D::mean -> xMean. Also remove all related
795 aliases (a nightmare to maintain) and low/highEdge and midpoint
796 functions: use the proper xMin/Max/Mid from now on. This is a
797 significant compatibility breaking API change (and the decision
798 was not taken lightly) so will require a 2nd digit version change.
800 * Lots of adding xMin/Max etc. functions to C++ and Python bin/histo classes.
802 * Compiler pickiness fixes in BinSearcher.
804 * Improvement to linspace, avoiding fuzzyEquals and again making
805 sure that the end value is exact.
807 2014-07-23 Andy Buckley <andy.buckley@cern.ch>
809 * Fix to logspace: make sure that start and end values are exact,
810 not the result of exp(log(x)).
812 * Clean-up, minor improvements, and adding a test for BinSearcher and friends.
814 2014-07-19 Andy Buckley <andy.buckley@cern.ch>
816 * Various consistency improvements and minor bugfixes to Python
817 mapping utils and Dbn and Bin objects.
819 * Fix Axis2D::reset, which was resetting the total dbn and
820 outflows, but not the bins!!! Thanks to Ewen Gillies for the
821 report.
823 2014-07-18 Andy Buckley <andy.buckley@cern.ch>
825 * Add scaleX,Y,Z and scaleXYZ to Point and Scatter classes, and
826 deprecate less explicit/consistent Scatter2D/3D.scale method.
828 2014-07-17 Andy Buckley <andy.buckley@cern.ch>
830 * yodascale now writes out rescaled histograms and profiles rather than scatters.
832 * A few more improvements on Point2D/3D, adding x,y,zMin/Max function mappings.
834 * Add first version of a yodascale script, based on code from Simone Amoroso.
836 2014-07-16 Andy Buckley <andy.buckley@cern.ch>
838 * More Scatter and 2D histo interface improvement.
840 * Remove 'return *this' from Scatter2D/3D add and combine methods.
842 * Add unit test checks for 1D and 2D mkScatter functions.
844 * Improve Scatter2D/3D C++ and Python interfaces.
846 * Add Scatter3D Python mapping.
848 2014-07-15 Andy Buckley <andy.buckley@cern.ch>
850 * Add auto-parsing of yes/no/on/off/true/false as bools in the
851 Python ao.annotation() function.
853 * Add parsing of yodaplot styles from command line args and
854 analysis object annotations.
856 2014-07-12 Andy Buckley <andy.buckley@cern.ch>
858 * Fix infinite recursions in Python wrappers for Point2D and
859 Point3D, and make the Python Point3D interface more standard.
861 * Add yodaplot script for basic plotting, using pgfplots as a backend.
863 2014-07-10 Andy Buckley <andy.buckley@cern.ch>
865 * Add mkScatter(Scatter2D) and mkScatter(Scatter3D) functions and
866 Python mappings: this allows all AOs to be used as args to
867 mkScatter(...) without needing to check if they already are
868 scatters.
870 2014-07-02 Andy Buckley <andy.buckley@cern.ch>
872 * Set y value and/or error to 0 in mkScatter(Histo1D) if an
873 exception is thrown when calculating the appropriate values. Need
874 an optional param to control this error handling behaviour between
875 set-zero and skip-bin?
877 2014-07-01 Andy Buckley <andy.buckley@cern.ch>
879 * Add exception translation to the mkScatter functions.
881 * Add -m/-M match/unmatch options to yodacnv -- useful for
882 filtering histogram file contents in a YODA->YODA conversion.
884 2014-06-24 Andy Buckley <andy.buckley@cern.ch>
886 * Don't complain about merge assumptions if there is only one
887 object with that path name to be 'merged'
889 2014-06-17 Andy Buckley <andy.buckley@cern.ch>
891 * Adding explicit int cast in Python wrapping of numEntries functions.
893 2014-06-13 Andy Buckley <andy.buckley@cern.ch>
895 * Adding yodals script to list data file contents.
897 2014-06-11 David Grellscheid <David.Grellscheid@durham.ac.uk>
899 * pyext/yoda/Makefile.am: 'make distcheck' and out-of-source
900 builds should work now.
902 2014-06-10 Andy Buckley <andy.buckley@cern.ch>
904 * Fix use of the install command for bash completion installation on Macs.
906 2014-06-06 Andy Buckley <andy.buckley@cern.ch>
908 * YODA 1.1.0 release. Middle version number change to reflect API changes w.r.t 1.0.6.
910 * Adding unit tests against ref data for yodamerge in make check.
912 2014-06-04 Andy Buckley <andy.buckley@cern.ch>
914 * Fix silly typos in yodamerge which somehow made it past "make check" testing :-(
916 2014-06-02 Andy Buckley <andy.buckley@cern.ch>
918 * YODA 1.0.7 release. DO NOT USE: prefer 1.1.0, above.
920 2014-05-30 Andy Buckley <andy.buckley@cern.ch>
922 * Removing 'foreach' macro definition and using raw BOOST_FOREACH instead until C++11 is allowed.
924 * Adding pytest-p1d and pytest-p2d tests, and FLAT writing/reading in pytests.
926 * Tweaking WriterFLAT and adding ReaderFLAT functionality for 2D histos and profiles.
928 2014-05-30 Holger Schulz <hschulz@physik.hu-berlin.de>
930 * Some basic (FLAT) write-out capability for 2D histos
932 2014-05-29 Andy Buckley <andy.buckley@cern.ch>
934 * Improvements to the yodahist script, including support for 2D
935 histograms and input files.
937 * Adding bin edges constructors for all 1D and 2D histos in Python.
939 2014-05-22 Andy Buckley <andy.buckley@cern.ch>
941 * Improvements to Profile2D and Point2D interfaces in Python.
943 * Add a single-file at a time yodacnv multi-format converter
944 script (thanks to Andrii Verbytskyi for the suggestion).
946 2014-05-19 Andy Buckley <andy.buckley@cern.ch>
948 * Typo fixes in Profile2D YODA-format parsing: 2D histo tests now pass!
950 * Adding Python tests for Histo2D and Profile2D.
952 * Adding a YODA/Predicates.h header and using it in Axis2D bin edge construction.
954 * Enabling Profile2D writing in various Writers, and a bit of IO code tidying.
956 2014-05-17 Andy Buckley <andy.buckley@cern.ch>
958 * Disable writing out of Histo2D and Profile2D outflows for now,
959 while they are redesigned, and get 2D I/O working for the in-range
960 part.
962 2014-05-14 Andy Buckley <andy.buckley@cern.ch>
964 * Mapping the divide and efficiency functions into the Python
965 interface as class methods, including the __div__ special
966 function.
968 2014-05-13 Andy Buckley <andy.buckley@cern.ch>
970 * Add the AnalysisObject::type() method back in Python (even
971 though type(ao) is more Pythonic, this may be useful)
973 2014-05-06 Andy Buckley <andy.buckley@cern.ch>
975 * Add Profile2D YODA format writing, note need for Scatter format
976 change, add sumXY storage to both 2D histo types.
978 2014-05-03 Andy Buckley <andy.buckley@cern.ch>
980 * Adding YODA reader functionality for Histo2D and Profile2D, but
981 without outflows support yet.
983 2014-04-25 Andy Buckley <andy.buckley@cern.ch>
985 * Adding simple command line yodahist script for quick 1D
986 histogramming from plain text files, with weight support. More
987 development to come!
989 * Mapping linspace, logspace and a few stat functions into Python.
991 2014-04-24 Andy Buckley <andy.buckley@cern.ch>
993 * Fixes, script installation, and detailed numerical comparisons
994 in yodadiff.
996 2014-04-17 Andy Buckley <andy.buckley@cern.ch>
998 * Change AnalysisObject::annotations to return the list of
999 annotation keys rather than the map, since the previous behaviour
1000 mapped very badly into Python.
1002 2014-04-16 Andy Buckley <andy.buckley@cern.ch>
1004 * Add special case handling for 2-arg use of x2y scripts where the
1005 second arg is -, for stdin. This will be treated as writing out to
1006 stdout, not converting two files one of which is stdin.
1008 2014-04-15 Andy Buckley <andy.buckley@cern.ch>
1010 * Adding a more portable version of getline to be used in the YODA
1011 file parsing to avoid falling over on DOS-produced input files.
1013 2014-04-14 Andy Buckley <andy.buckley@cern.ch>
1015 * Adding the namespace protection workaround for Boost described
1016 at http://www.boost.org/doc/libs/1_55_0/doc/html/foreach.html
1018 2014-04-13 Andy Buckley <andy.buckley@cern.ch>
1020 * Adding an assumed-equal-run-size, ratio-like merging heuristic
1021 for Scatter2Ds to yodamerge, and renaming the --normalize-all flag
1022 to --assume-normalized.
1024 * Adding and installing a pkg-config data file for YODA.
1026 * Rationalising (and fixing?) the yodamerge logic re. user &
1027 normalization scalings, and making way for a Scatter2D merging
1028 heuristic.
1030 2014-03-10 Andy Buckley <andy.buckley@cern.ch>
1032 * YODA 1.0.6 release.
1034 2014-03-06 Andy Buckley <andy.buckley@cern.ch>
1036 * Improvements to AnalysisObject annotation handling in Python.
1038 * Adding rescaling arguments to yodamerge (and scale function to Python Scatter2D).
1040 * Better documentation and consistency of Histo and Profile Python
1041 wrappers, and removing some inappropriate attributes.
1043 * Adding clone() and newclone() functions to all analysis object classes.
1045 2014-02-28 Andy Buckley <andy.buckley@cern.ch>
1047 * Cython mapping improvements, esp. adding numPoints/numBins
1048 functions and better Scatter2D __repr__.
1050 * Adding mapping of the mkScatter functions into Python (as
1051 methods on Histo1D and Profile1D rather than the original free
1052 functions, at least for now: some Python type-identifying
1053 boilerplate is needed to make a single mkScatter function work in
1054 Python)
1056 2014-02-27 Leif Lönnblad <Leif.Lonnblad@thep.lu.se>
1058 * Minor modifications to BinSearcher to avoid NaN's. The NaN's
1059 were treated correctly before, but better to avoid them all
1060 together.
1062 2014-02-27 Andy Buckley <andy.buckley@cern.ch>
1064 * Adding the generated pyext/yoda/rootcompat.cpp to the tarball
1065 and sorting out the ROOT/Cython interface conditionals a bit more
1066 sanely. Thanks to Oldrich Kepka for the bug report.
1068 * Protecting yodamerge against input histograms with zero
1069 integrals (thanks to Christian Bierlich for the bug report).
1071 2014-02-14 Frank Siegert <frank.siegert@cern.ch>
1073 * Fix race condition with mktemplates.
1075 2014-02-12 David Grellscheid <david.grellscheid@dur.ac.uk>
1077 * Fix bug in mktemplates code (thanks to Christian Johnson for the bug report).
1079 2014-02-09 Andy Buckley <andy.buckley@cern.ch>
1081 * Adding explicit include/generated dir creation to Python
1082 extension build (thanks to Christian Johnson for the bug report).
1084 2014-02-06 Andy Buckley <andy.buckley@cern.ch>
1086 * 1.0.5 release!
1088 2014-02-05 Andy Buckley <andy.buckley@cern.ch>
1090 * Adding patches to ReaderFLAT and ReaderYODA use of Boost Spirit
1091 which reduce the Boost version requirement from 1.47 ->
1092 1.41. Thanks to Andrii Verbytskyi for the patch.
1094 * Protect against invalid prefix value if the --prefix configure option is unused.
1096 2014-02-04 Andy Buckley <andy.buckley@cern.ch>
1098 * Adding copy assignment operators where missing, based on an
1099 implementation in AnalysisObject which only copies rvalue paths
1100 and titles if they are non-null.
1102 2014-02-03 Andy Buckley <andy.buckley@cern.ch>
1104 * Improving (i.e. increasing) bin edge overlap tolerance: 1e-10 relative was too tight.
1106 2014-01-31 Andy Buckley <andy.buckley@cern.ch>
1108 * Adding x/yMid etc. methods on Bin1D and 2D, and more related Python API improvements.
1110 2014-01-28 Andy Buckley <andy.buckley@cern.ch>
1112 * Adding missing fillBin methods to 1D and 2D Histo/Profile Python classes.
1114 * Fixed yodamerge default output file name treatment.
1116 * Avoid computing an unrecoverable error in Histo1D.__repr__
1118 * Clean-ups and API improvements in Python IO functions.
1120 * Adding more sumW,W2 and (eff)NumEntries attrs to Python objects.
1122 2013-12-17 Andy Buckley <andy.buckley@cern.ch>
1124 * Improved argument handling for x2y scripts.
1126 2013-11-16 Andy Buckley <andy.buckley@cern.ch>
1128 * Fix to build the Cython rootcompt extension .cpp on request.
1130 2013-11-14 Andy Buckley <andy.buckley@cern.ch>
1132 * Adding flags for the C++11 or C++0x standard if supported, cf. Rivet.
1134 2013-10-24 Andy Buckley <andy.buckley@cern.ch>
1136 * YODA 1.0.4 release.
1138 * Supporting zsh completion via bash completion compatibility.
1140 2013-10-21 Andy Buckley <andy.buckley@cern.ch>
1142 * Removing unused internal iterator typedefs from Writer functions.
1144 2013-10-18 Andy Buckley <andy.buckley@cern.ch>
1146 * Adding a yodaenv.sh sourceable script to help with environment setup.
1148 * Remove Scatters from being handled by yodamerge by blocking the
1149 __add__ method fallback.
1151 2013-10-09 Andy Buckley <andy.buckley@cern.ch>
1153 * Improvements to yoda-config and command-line completion, for the
1154 Rivet 2.0.0 release.
1156 2013-10-09 Andy Buckley <andy.buckley@cern.ch>
1158 * Version 1.0.3 release.
1160 2013-10-04 Andy Buckley <andy.buckley@cern.ch>
1162 * Cython mapping improvements.
1164 * Adding some improved heuristics and a --normalize-all option to
1165 yodamerge. Frank S is now happy again ;-)
1167 2013-10-01 Andy Buckley <andy.buckley@cern.ch>
1169 * Adding operator +, -, +=, -= Python mappings wherever possible
1170 for Histo1/2D, Profile1/2D, and Scatter2D.
1172 2013-09-26 Andy Buckley <andy.buckley@cern.ch>
1174 * Cython is no longer needed by tarball users.
1176 2013-09-25 Andy Buckley <andy.buckley@cern.ch>
1178 * Unset path of returned histogram if those of the args to add()
1179 and subtract() are difference.
1181 2013-09-24 Andy Buckley <andy.buckley@cern.ch>
1183 * Python mapping improvements.
1185 2013-09-23 Andy Buckley <andy.buckley@cern.ch>
1187 * Add the -avoid-version flag to libtool.
1189 * Adding more add and subtract special methods in Python.
1191 2013-09-22 Andy Buckley <andy.buckley@cern.ch>
1193 * mkScatter schanged to use histo midpoints rather than focuses by
1194 default for the point x value.
1196 2013-08-14 Andy Buckley <andy.buckley@cern.ch>
1198 * Version 1.0.2.
1200 * Some exception message improvements and improving the protection
1201 of cosmetic mean calculations in WriterYODA.
1203 2013-07-12 Andy Buckley <andy.buckley@cern.ch>
1205 * Adding ROOT detection in configure and otherwise updating Dave's
1206 rootcompat module so that it'll compile. There might be an
1207 inconvenient ROOT version dependency in the signature of one of
1208 the PyROOT API functions that is used as a shim :-(
1210 2013-06-17 Andy Buckley <andy.buckley@cern.ch>
1212 * Adding yoda.m4 from James Robinson.
1214 2013-06-06 Hendrik Hoeth <hendrik.hoeth@cern.ch>
1216 * Improve "==" operator in Axis1D and Axis2D
1218 2013-06-06 Andy Buckley <andy.buckley@cern.ch>
1220 * Adding fillBin() methods to all 1D and 2D histos, and noting
1221 that Bin types need a back-link to their axis to maintain
1222 consistency.
1224 * Release of version 1.0.1
1226 2013-06-05 Andy Buckley <andy.buckley@cern.ch>
1228 * Change the divide(Scatter, Scatter) behaviours to use the
1229 midpoint of the num/denom bins rather than mean of foci for the
1230 output point position (and hence errors, too).
1232 * Adding a toIntegralEfficiencyHisto function.
1234 * Adding another Histo1D::integral() function, this time from 0 ->
1235 i, maybe including the underflow.
1237 2013-06-04 Andy Buckley <andy.buckley@cern.ch>
1239 * Updating the Cython version requirement to 0.18
1241 2013-06-03 Andy Buckley <andy.buckley@cern.ch>
1243 * Adding relErr functions to 1D and 2D histo and profile bins, and
1244 being careful about div by zero.
1246 * Improvements in error treatment in division (better handling of zeros).
1248 * Renaming merge-histos to yodamerge and installing it (and
1249 improving the usage string a bit).
1251 2013-05-31 Andy Buckley <andy.buckley@cern.ch>
1253 * Adding the Counter type, and ability to output it from the YODA writer.
1255 * Adding numEntries and effNumEntries methods to 1D and 2D Histo
1256 and Profile classes.
1258 * Adding Dbn0D and using it to implement Dbn1D.
1260 2013-05-30 Andy Buckley <andy.buckley@cern.ch>
1262 * Fixing several nasty errors in argument ordering for
1263 Point{1,2,3}D construction in Scatter addPoint functions.
1265 * Adding abs(...) to the returned Dbn1D::variance(), to avoid
1266 problems when negative weights produce negative variance. No, we
1267 don't like this either: is there a more correct way?
1269 * Fixing the efficiency(Histo1D, Histo1D) implementation,
1270 cf. http://root.cern.ch/phpBB3/viewtopic.php?t=3753
1272 * Adding mkScatter(Profile2D)
1274 2013-05-29 Hendrik Hoeth <hendrik.hoeth@cern.ch>
1276 * Adding a reader for FLAT files and a flat2yoda converter
1278 2013-05-27 Andy Buckley <andy.buckley@cern.ch>
1280 * Adding a yoda-completion file for bash.
1282 2013-05-17 Andy Buckley <andy.buckley@cern.ch>
1284 * Mapping HistoBin1D.relErr in Python.
1286 * Adding a non-const points() accessor to Scatter2D.
1288 2013-05-13 Andy Buckley <andy.buckley@cern.ch>
1290 * Adding combined value+error setX/Y functions on Point2D.
1292 * Adding HistoBin1D::relErr()
1294 2013-04-23 Andy Buckley <andy.buckley@cern.ch>
1296 * Adding Python output handling for single AOs and to be able to
1297 use a "-" filename to mean stdout.
1299 2013-04-12 Andy Buckley <andy.buckley@cern.ch>
1301 * Releasing version 1.0.0 -- it seems stable enough.
1303 2013-04-10 Andy Buckley <andy.buckley@cern.ch>
1305 * Being more careful about adding -Wno-* flags to the C++ compiler
1306 used to built the Cython extension lib.
1308 2013-03-22 Andy Buckley <andy.buckley@cern.ch>
1310 * Removing the use of svn:external to pull in Boost macros and
1311 using a minimal local set instead.
1313 * Using the nice Boost-finding macros from
1314 https://github.com/tsuna/boost.m4 and tidying up configure.ac
1316 2013-03-15 Andy Buckley <andy.buckley@cern.ch>
1318 * Re-organising the C++ side of the auto-format I/O functions,
1319 into a new IO header and separated from the Reader.h and
1320 Writer.h. I'm tempted to say that users shouldn't really NEED to
1321 ever directly touch the Reader and Writer objects...
1323 * Adding auto-format read and write functions. I will probably
1324 change the API. Python mappings have been provided, but the string
1325 workarounds were too much of a pain with Cython 0.16 so I have
1326 updated the Cython version requirement to 0.17 where it is
1327 automatic and hence much cleaner.
1329 2013-03-08 Andy Buckley <andy.buckley@cern.ch>
1331 * Making the x2y converter scripts write a copy into the *current*
1332 directory if only the input is specified.
1334 2013-03-05 Andy Buckley <andy.buckley@cern.ch>
1336 * Removing Plot entirely from YODA: it was an anomaly only added
1337 to make plot file generation easy, but this is now done better via
1338 StringIO (in new compare-histos/rivet-cmphistos).
1340 * Removing the Plot from Cython... and soon from YODA itself:
1341 we'll do this stuff manually and less hackily.
1343 * Make Cython automatically add a copy of the original call
1344 signature to each function's docstring.
1346 2013-03-04 Andy Buckley <andy.buckley@cern.ch>
1348 * Adding Plot mapping to Cython and improving the AO annotations handling in Python.
1350 * Adding PLOT section writing to WriterFLAT (and WriterYODA,
1351 although that might be a bad idea...)
1353 * Adding aida2yoda and aida2flat converter scripts.
1355 2013-02-02 David Mallows <dave.mallows@gmail.com>
1357 * Adding support for Python >= 2.4 (was Python >= 2.6)
1359 * Fixing miscellaneous warnings on GCC 4.1
1361 2013-01-30 Andy Buckley <andy.buckley@cern.ch>
1363 * Adding a points() method to the Python Scatter2D wrapper.
1365 * Adding a virtual destructor to Bin.
1367 2012-12-30 Andy Buckley <andy.buckley@cern.ch>
1369 * Adding support for Boost.Range arguments and file format autodetection in Writer.
1371 2012-11-24 Andy Buckley <andy.buckley@cern.ch>
1373 * Bump version to 0.6beta0
1375 * Adding more ROOT converters. Who knows how to make TProfiles
1376 from scratch, but Histo1D and Scatter2D are covered, which should
1377 be enough to get started with, at least.
1379 2012-11-16 Andy Buckley <andy.buckley@cern.ch>
1381 * Adding yoda-config
1383 2012-11-16 Hendrik Hoeth <hendrik.hoeth@cern.ch>
1385 * Adding WriterFLAT and yoda2flat
1387 2012-11-16 Andy Buckley <andy.buckley@cern.ch>
1389 * Adding YODA/ROOTCnv.h. for data object converter functions. Two
1390 (untested) functions added for TH1 -> YODA.
1392 * Adding toIntegralHisto(Histo1D&) function.
1394 2012-11-15 Dave Mallows <dave.mallows@gmail.com>
1396 * Commited numerous changes to Axis2D. Axis2D now uses BinSearcher as
1397 with Axis1D.
1399 2012-11-15 Andy Buckley <andy.buckley@cern.ch>
1401 * Improving division and efficiency treatments, and allowing
1402 arbitrary f(x), f(y), and flip transformations on Scatter2D.
1404 2012-11-14 Andy Buckley <andy.buckley@cern.ch>
1406 * Converting linspace, logspace, and their usage to place the nbins argument first.
1408 2012-08-07 Andy Buckley <andy.buckley@cern.ch>
1410 * Removing unused (beyond 2nd order) sumWXYZ counter from Dbn3D.
1412 2012-08-07 Dave Mallows <dave.mallows@gmail.com>
1414 * Converted Axis1D to use new Utils/BinSearcher.
1416 2012-08-02 Dave Mallows <dave.mallows@gmail.com>
1418 * Heavily refactored Cython bindings
1420 * HistoBin1D, ProfileBin1D etc. now inherit from Bin1D[DBN]
1422 * Temporarily removed Histo2D, Profile2D and Scatter3D mappings.
1424 2012-07-23 Andy Buckley <andy.buckley@cern.ch>
1426 * Installing scripts from bin dir, and making the yoda2aida interface nicer.
1428 * Adding Cython mappings for Dbn3D and Profile2D, and other fixes/improvements.
1430 2012-07-22 Andy Buckley <andy.buckley@cern.ch>
1432 * Adding Cython mappings for Scatter3D and ProfileBin2D.
1434 * Fixing more crap code legacy from old 2D plot implementation, this time in Scatter3D.
1436 2012-07-19 Andy Buckley <andy.buckley@cern.ch>
1438 * Adding stdErr for Histo2D + Python mapping, and more Cython improvements.
1440 * Adding path/title-only AO constructors and making nice Python constructor for Histo2D.
1442 * Cython mapping improvements & additions for Point3D + Scatter3D.
1444 * Removing mixed symm/asymm constructors on Point*D & Scatter*D classes.
1446 2012-07-12 Andy Buckley <andy.buckley@cern.ch>
1448 * Reintroducing Profile2D and Scatter3D.
1450 * Adding axis locking to Axis2D.
1452 * Supporting Histo2D in WriterYODA.
1454 2012-07-02 Andy Buckley <andy.buckley@cern.ch>
1456 * More incremental progress toward a working 2D bin hash mechanism.
1458 2012-05-03 Andy Buckley <andy.buckley@cern.ch>
1460 * Adding nice constructor behaviours to the Histo1D and Profile2D
1461 Python interfaces, and adding the mkScatter operation for
1462 Profile1D.
1464 * Adding more default constructors for analysis objects, to allow
1465 member variable and STL container use without pointers.
1467 2012-05-02 Andy Buckley <andy.buckley@cern.ch>
1469 * A much simplified and more robust rewrite of the Axis1D class,
1470 just using STL map in place of the hand-written bin edge caching.
1472 * Improvements (I hope) to the binary search in Axis1D, and
1473 providing an experimental default constructor for Histo1D.
1475 2011-12-08 Hendrik Hoeth <hendrik.hoeth@cern.ch>
1477 * ReaderYODA can now parse Histo1D and Profile1D flat files
1479 2011-12-08 Andy Buckley <andy.buckley@cern.ch>
1481 * Adding a Utils::ndarray object and using it to implement a
1482 general Scatter<N> system, with generalised Point<N> and Error<N>
1483 to boot.
1485 2011-12-07 Hendrik Hoeth <hendrik.hoeth@cern.ch>
1487 * Lots of cleanup
1489 2011-12-07 Andy Buckley <andy.buckley@cern.ch>
1491 * Mapping the Dbn1D and Dbn2D classes into Python.
1493 * Adding an outflows() accessor to Histo2D.
1495 * Writing out total dbn lines for Histo1D and Profile1D in the
1496 YODA format, and now writing out the 'cross-terms' for Profile1D,
1497 too.
1499 * Properly adding Dbn1D accessors for Histo1D.
1501 * Updating the Cython mappings to provide the totalDbn() methods
1502 and add a placeholder mapping for Dbn2D. Completed mappings are
1503 needed for Dbn{1,2,3}D and the Profile types.
1505 * Adding totalDbn() accessors to data types.
1507 2011-12-06 Andy Buckley <andy.buckley@cern.ch>
1509 * Making Histo1D/2D::scaleW() write a ScaledBy annotation.
1511 * Adding annotation-fetching methods with a default return value
1512 argument to AnalysisObject.
1514 * Adding normalize() methods to Histo1D/2D.
1516 * Adding weighted RMS calculating methods to Dbn1D, Dbn2D and
1517 Bin1D/2D.
1519 2011-09-03 Dave Mallows <dave.mallows@gmail.com>
1521 * Fixed ReaderAIDA: x-value and low y-error interchanged when filling
1522 Scatter2D.
1524 * Changed to Cython for Python bindings: Swig bindings were in need of
1525 serious amounts of work. Cython should provide a means to provide more
1526 Pythonic bindings to YODA. A minimal subset of ReaderAIDA, Scatter2D
1527 and Point2D have been wrapped.
1529 * Modified configure.ac, Makefile.am and pyext/Makefile.am to reflect
1530 change to Cython. Added cython.m4 from python-efl (Part of the
1531 enlightenment project; LGPL)
1533 2011-08-31 Dave Mallows <dave.mallows@gmail.com>
1535 * Fixed python tests by installing python extension to pyext/build
1537 2011-08-23 Andy Buckley <andy@insectnation.org>
1539 * Adding rebinning interface to Histo1D and Profile1D, and adding
1540 a test (and a new test feature for output message formatting)
1542 * Adding first implementation of 1D bin merging to Axis1D.
1544 2011-08-22 Andy Buckley <andy@insectnation.org>
1546 * Adding copy constructors and assignment operators to Histo1D,
1547 Profile1D, and Scatter2D, and their respective bins/points.
1549 * Remove use of sign(weight) in filling sum(w2) -- I think this
1550 was an historical attempt based on a scaling axiom which turned
1551 out to be inappropriate.
1553 * Reworking the Bin1D inheritance and composition design so that
1554 all bin types store a single distribution object -- a Dbn1D for
1555 histo bins and a Dbn2D for profile bins.
1557 2011-08-18 Andy Buckley <andy@insectnation.org>
1559 * Removing the Profile1D -> ProfileBin1D friendship. This is very
1560 heartening -- the fewer friend declarations we need, the more
1561 indication that the class structure is not pathological! (Or that
1562 we've just made everything public... but we haven't)
1564 2011-08-15 Andy Buckley <andy@insectnation.org>
1566 * Inlining all functions in HistoBin1D, ProfileBin1D, and
1567 HistoBin2D.
1569 * Converting Dbn2D to be composed of two Dbn1Ds and a
1570 cross-term. Also tidying the interfaces of the 2D classes and the
1571 scaleX/Y methods throughout, and adding Doxygen comments.
1573 2011-08-12 Andy Buckley <andy@insectnation.org>
1575 * Adding proper Doxygen structures and full descriptive comments
1576 to Dbn2D.
1578 * Adding the persistency state-setting constructors for Profile1D
1579 and Dbn2D.
1581 * Inlining lots of methods on Dbn1D. Same should be done for
1582 Dbn2D, but first it needs to be reimplemented in terms of two
1583 Dbn1Ds + the cross-term.
1585 2011-08-11 Andy Buckley <andy@insectnation.org>
1587 * Various typo fixes and comments relating to persistency
1588 constructors, Histo2D slicing, etc.
1590 * Changing the HistoBin1D state-setting constructors (aargh, these
1591 should *not* have already existed) to take Dbn1D as an argument
1592 rather than a long list of doubles.
1594 2011-08-01 Andy Buckley <andy@insectnation.org>
1596 * Adding tests to check that implicit construction of Weights
1597 objects from literal doubles and ints works.
1599 2011-07-28 Andy Buckley <andy@insectnation.org>
1601 * Bumping version number to 0.4.0beta0 -- there have been
1602 substantial changes recently and YODA is now in a state where it
1603 should be interesting for outsiders to start playing with it.
1605 * Templating the Axis1D on the distribution type to be used for
1606 total and under/overflow statistics: Profile1D now has Dbn2D
1607 objects handling its total and overflow statistics.
1609 2011-07-26 Andy Buckley <andy@insectnation.org>
1611 * Added a Histo1D::integral(index1, index2) method. Not sure how
1612 or if to extend this to Profile1D.
1614 * Implementing incomplete Scatter2D operator+ and operator-
1615 functions.
1617 2011-07-25 Andy Buckley <andy@insectnation.org>
1619 * Adding a Weights class, designed to seamlessly replace
1620 double-type weights and weighted moments with a named and
1621 vectorised form.
1623 2011-07-19 Andy Buckley <andy@insectnation.org>
1625 * Add Profile1D and Scatter2D division operators.
1627 * Add xMin/xMax synonyms to the Axis1D, cf. the bins.
1629 2011-07-18 Andy Buckley <andy@insectnation.org>
1631 * Add a first stab at a Histo1D/Histo1D division operator.
1633 2011-07-10 Andy Buckley <andy@insectnation.org>
1635 * Add construction of Histo1Ds from Profile1D and Histo1D, and
1636 construction of Profile1Ds from those and Scatter2D.
1638 2011-07-07 Andy Buckley <andy@insectnation.org>
1640 * Add construction of a Histo1D from Scatter2D.
1642 2011-06-15 Andy Buckley <andy@insectnation.org>
1644 * Making the AIDA reader work, including reading of annotations
1645 and a few tweaks to the simple type persistency system. Test histo
1646 1b updated.
1648 2011-06-12 Andy Buckley <andy@insectnation.org>
1650 * Removing Histo1D::area
1652 * Filling and using under/overflow and total db on Histo1D, and
1653 adding boolean arg to integral, sumW, etc.
1655 * Fixing for C++ change in behaviour of std::make_pair
1657 * Adding addAnnotation, and mapping annotations to Python.
1659 2011-02-22 Andy Buckley <andy@insectnation.org>
1661 * Use distutils rather than setuptools for the Python interface
1662 build.
1664 * Renaming Bin, HistoBin and ProfileBin to be Bin1D, HistoBin1D,
1665 ProfileBin1D. Bin is now a top-level abstract class with minimal
1666 functionality to be shared between 1D and 2D bins.
1668 2011-01-12 Andy Buckley <andy@insectnation.org>
1670 * Type annotations in mkScatter
1672 * Added many vector constructors and addPoint functions to
1673 Scatter2D.
1675 2011-01-11 Andy Buckley <andy@insectnation.org>
1677 * Add lexical_cast support to annotation get and set functions.
1679 * Write out annotations in AIDA format, and copy annotations in
1680 mkScatter -- using a new AnalysisObject::setAnnotations method.
1682 * Convert DPS output to use interim Scatter construction
1684 * Make (unused) yoda.plot subpackage.
1686 * Write out annotations in YODA format.
1688 * Make Scatter2D representations of Histo1D and Profile1D.
1690 * Write out Scatter2D objects in AIDA and YODA formats.
1692 * Make Scatter2D and Point2D work. Add a few extra
1693 methods... evolution and tweaking required.
1695 2011-01-10 Andy Buckley <andy@insectnation.org>
1697 * Add Boost checks and header includes. Not used yet.
1699 * Hide Utils:: content from Doxygen and nvector -> Utils::nvector.
1701 * Removing unused YAML stuff: we aren't going that way for
1702 persistency anymore.
1704 * Renaming Axis -> Axis1D
1706 * Removing dead-end templated Scatter stuff.
1708 * Move (generated) config files into the Config subdir.
1710 * Move sortedvector and indexedset into the Utils dir.
1712 * Move the "utils" directory and namespace to "Utils"
1714 * Put the Doxyfile under configure control by moving it to
1715 Doxyfile.in and using the @PACKAGE_VERSION@ token.
1717 * Make Doxygen find the .icc file and hide functions with name _*
1718 and in the YAML namespace.
1720 * Removing the Binning argument and enum in favour of explicit bin
1721 edge vectors, possibly produced explicitly via the MathUtils
1722 linspace and logspace functions, or the new Axis::mkBinEdgesLin/Log
1723 alias functions.
1725 * Fixed Axis, Histo1D and Profile1D constructors, by adding a path
1726 argument, passing the path and title args to the AnalysisObject
1727 base constructor properly.
1729 * Removed several old and unused files such as Tree.h
1731 2011-01-09 Andy Buckley <andy@insectnation.org>
1733 * Updating copyright comments to be valid into 2011.
1735 * Persistency fixes, and changing the interface to use the annotated path.
1737 * Using annotations for path and title.
1739 * Adding tests of collection and iterator range AO writing.
1741 * Adding static write functions on Writer*.h implementations to
1742 avoid needing to make an explicit Writer object via the create()
1743 functions.
1745 * Rename Exception.h -> Exceptions.h
1747 * Added AnnotationError.
1749 * Re-enable persistency of collections with begin/end iterators.
1751 2011-01-08 Andy Buckley <andy@insectnation.org>
1753 * Enabling quiet compilation.
1755 * More annotation functionality.
1757 2011-01-07 Andy Buckley <andy@insectnation.org>
1759 * Sorting out autoheaders to be more useful.
1761 * Rewriting AIDA writer to use DPS representation (no reloading)
1762 for Histo1D and Profile1D objects.
1764 * Adding persistency system hooks, since RTTI just sucks too much.
1766 * Renaming test files to have more meaningful names.
1768 2010-12-10 Andy Buckley <andy@insectnation.org>
1770 * Some tweaks to Axis, Bin, etc. to use the sortedvector. Seems to
1771 be working! (I must be checking it wrongly...)
1773 * Adding another candidate object for the axis bin container: a
1774 sorted extension to STL std::vector with an insert method. This
1775 will do as a development placeholder: a proper sorted & indexed
1776 container may be substituted later.
1778 * Fix test code: titles are no longer given as histogram
1779 constructor arguments.
1781 2010-11-21 Andy Buckley <andy@insectnation.org>
1783 * Adding indexed set for holding bins on axes. Still not sure it's
1784 what we want, as (I just realised) STL sets are iterator-immutable
1785 because they are self-keyed and changes to elements would also
1786 change their sorting.
1788 2010-09-19 Andy Buckley <andy@insectnation.org>
1790 * Restarting ChangeLog contributions! Many changes in the huge
1791 time since last update... activity on YODA has renewed and we have
1792 a better picture of the distinctive features we require. New idea:
1793 named weight vector filling, allowing "parallel" histograms for
1794 various event weight variations. I/O remains an awkward issue,
1795 especially since the classes are now much richer than they used to
1796 be, and don't know about paths. Output can be easily put on top:
1797 not an issue... and we can probably do something with
1798 pickling. But reading in from C++?
1800 2008-09-16 Andy Buckley <andy@insectnation.org>
1802 * Moved duplicate Histo1D/Profile1D code on to Axis, making Axis a
1803 templated class at the same time.
1805 2008-09-12 Andy Buckley <andy@insectnation.org>
1807 * Started work on a little plotting tool, initially for Herwig++
1808 parton pT cut testing, but incrementally enhancing it to be a
1809 command-line quick plotter seems like a good idea.
1811 * Added some more test programs... working towards a proper test
1812 suite.
1814 * Added "no path & title" constructors - you don't always want to
1815 write out the histo, since sometimes it's just a good way to
1816 gather statistics.
1818 * Fixed YODA mapping to allow use of vectors of bins as Python
1819 lists.
1821 * Added Profile1D functionality.
1823 * Fixed Dbn1D to use sign(weight) as part of the "w**2" measure,
1824 so that negative weights behave themselves.
1826 2008-05-23 Andy Buckley <andy@insectnation.org>
1828 * Added Dbn1D class to centralise the calculation of statistics
1829 from unbounded, unbinned, weighted distributions.
1831 2008-05-15 Andy Buckley <andy@insectnation.org>
1833 * Added Profile1D class.
1835 * Fixed NaN errors from zero weights.
1837 2008-04-14 Andy Buckley <andy@insectnation.org>
1839 * Python SWIG interface now compiles and can be used: the subtlety
1840 that was breaking it was that SWIG has to be prodded in pretty
1841 non-obvious ways to make std::vectors of classes without
1842 default (no-arg) constructors. See
1843 http://osdir.com/ml/programming.swig/2004-04/msg00011.html for
1844 about the only reference to this to be found anywhere!
1846 * Basic AIDA writer now available - it doesn't yet output all the
1847 necessary information though, especially not for merging parallel
1848 runs.