This is an ever growing list of topics by reference.

  • Utilities – Things to make life even easier!
    • The DataSetFiinder – allows you to use a small text file to specify search paths and other similar things to generate the list of files for the Queriable object.
  • The Data Model:
    • Supported Data Types – What TTree leaf types are supported.
    • Data Model Specification - parsing the TTree, the format of the XML files, what you can do with them, etc…
    • Custom Objects – there is limited support for custom objects stored in TTree’s. In general, if you have to go here early in your analysis, this tool may not be optimized to your needs.
  • LINQ Operators. All the various LINQ operators that are valid, and a short description of how to use them, and some examples for the custom operators written with HEP analysis in mind.
    • Dealing with two object loops. How to find isolated jets. How to find all pairs of an object. How to find all tracks with-in some delta R of a jet, etc.
  • Caching results for use in later queries
    • Using Anonymous types in LINQ. This allows you to generate extra information and carry it along in your query. These are very useful for quick and dirty results.
    • Using custom objects to cache results. Anonymous types are very easy to use, but they aren't very composable. For example, you can't write a function that applies a cut based on them. You can use your own objects for this, however.
  • Extending the translation and query process. LINQToROOT was built to be extended from the ground up. In fact, the core library is implemented that way. No reason you can’t take advantage of that if LINQToROOT isn’t doing what you want.
    • Simple C++ functions can be directly translated from .NET ones.
    • Inline C++ code can be inserted in your query wherever you like.
    • New data types can be handled, and even a new backend could be implemented.
  • Making Plots. 1D, 2D, Profile plots. Rules for specifying titles, etc.
  • Futures. From generating futures, modifying them, to storing them in files.
    • Include info on when a template object is copied over (i.e. if you input an object, a copy isn’t made when the future is queued).
  • Debugging. How to bypass the cache, how to inspect the cache, keep around the generated C++ for inspection, inspect some internal timing issues.

Last edited Sep 10, 2013 at 7:02 PM by gwatts, version 12

Comments

No comments yet.