This group of changes has lots of improvements. Almost all of them are to the front end:
Tuples are now properly dealt with. So you can create a tuple in one Select statement, and then access an element of it in the next. Tuples are nice ways to collect information - but they should be syntactic sugar. This is the first go at a simple implementation of that. Removing tuples is done at the front end - if everything works well, you should see tuples only under very limited circumstances in the back end (e.g. the list of variables to turn into a dataframe or a root tree as an arg to AsPandas).
It is possible to include variables from different loop levels. For example, produce an entry in a pandas dataframe per jet, but include the event number in there.
This group of changes has lots of improvements. Almost all of them are to the front end: