Development for Beta 2.1 #70
lcorcodilos
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
With all of the changes from the past few months released into the master branch in Beta 2.0, we'll have to start targeting next steps. I think there are two areas to focus on - C++ module library and RDataFrame advancements.
C++ module library
Since the C++ in TIMBER is mainly for corrections and calibrations, the most important step we can take is to implement correctionlib. This has already begun but there are a lot of questions that remain about how to interface with it correctly, how it affects TIMBER's dependencies, and how quickly POGs can add their corrections to the XPOG library. We can handle the former two and then wait on the latter. It would not be unreasonable to "be the change you want to see" and, instead of spending time doing TIMBER implementations, create the
correctionlib
friendly json packages ourselves if the POGs are dragging their feet.Another external project is CMSJMECalculators which is attempting to implement the JME corrections for RDataFrame. Based on some discussion with Pieter David (maintainer), our modules run a bit faster but that's most likely due to write speeds and that his modules are saving out the modified pt and mass and not just the raw SF values and uncertainties. However, these implement methods that we don't have - particularly anything to do with AK4 jets and MET - and so contributing here will probably be more fruitful (to us and to CMS) than working in our corner.
Besides these, we should add modules as needed and encourage users to contribute anything they feel could be useful to other users.
RDataFrame advancements
The ROOT team has been very busy adding new features to RDataFrame. The RNode class, friend TTrees, RunGraphs (for looping over multiple RDataFrames in parallel), distributed computing (Spark, etc), and the Alias() method could all be of interest to TIMBER. We should look at each of these, identify if we can use them, and implement them where useful. For example, the Alias and RunGraphs could be used to automate the process splitting involved with the JME calibrations and variations!
Beta Was this translation helpful? Give feedback.
All reactions