LINQtoROOT v0.4

Rating: No reviews yet
Downloads: 7
Change Set: 54ee5dd166e5
Released: Aug 13, 2011
Updated: Oct 15, 2011 by gwatts
Dev status: Alpha Help Icon

Recommended Download

Application LINQ.zip
application, 3374K, uploaded Aug 13, 2011 - 7 downloads

Release Notes

Originally this was supposed to be a minor bug fix release. However, the conference cycle and the fact that I was now using this in my analysis meant I had to do a huge number of updates in order to push out my results! So, lots and lots of improvements and changes.

New Features:
  • New LINQ operators supported: Sum, AsQueriable, PairWiseAll (all pairs of objects that satisfy some condition (e.g. pairs of jets)), UniquePairs (pairs of all objects from same list except for identity), Any, All, Min, Max
  • LINQ anonymous objects are supported. You can use the "new {xxx}" in a select statement and then use these anonymous objects in a later query.
  • Arbitrary new of any ROOT object in the query
  • Arbitrary C++ code fragments can now be included in the query. The main use for this (so far) is to get around the non-functional nature of some of ROOT's interfaces. For example, code to create a TLorentzVector using eta, phi, pt, and energy - which can't be easily done with a constructor.
  • Strings can be used for comparisons, etc., in the query (strings in a TTree itself are not supported).
  • Profile plot is now supported, also it is possible to weight entries in a histogram
  • Sumw2 is turned on by default for all plots.
  • Caching is now used (TTreeCache), though its effects on performance improvements is not well understood yet.
  • Minor plot improvements - helper methods to sanitize strings that should be valid root "Names", and auto matic replacement of "eta" with "\Eta" and similar for easy Tex-ification of plot titles (extensible).
  • Remove all extranious items in the C++ build - can change compile times from > 5 minutes to about 15-20 seconds for most queries.
  • Tables of results can be output using a custom library to Excel, PDF, HTML.
  • Some debugging information is now generated by the library.
  • Intellisense with comments for generated code (helping you to sort out renamed variables).

Bug Fixes:
  • Lots of ease-of-use improvements for the Future's interfaces and writing things to a files, including tag names which allow one to retreive future plots.
  • Lots of minor bug fixes through out the code
  • Plots are no longer automatically associated with an output file when they are created (which is the default ROOT behavior).
  • Better error messages when things go wrong.
  • Many fixes to combine the C++ code for queries. It has caused > x2 speed ups for many of my queries. There are some futher things that can be done, however quicker progress in the future will be by using PROOF or other parallel processing technologies.

Use the Issue Tracker for more details of what has been done for this release.

Warning: When you download, make sure to replace the templates!

As usual, this is built agains tthe most recent ROOT.NET release. I hope to improve this with my next set of updates.

Most of the documentation under the Documentation tab is up to date for this version. A reference section is slowly being added - this library has grown in power since the 0.1 days!

Reviews for this release

No reviews yet for this release.