Hi Filip,
great to hear that this is solved.
I’d like to give a heads-up of what will be available in ROOT 6.16 (due in November).
The collections you are treating are handled by RDataFrame as RVec instances: some “magic” is there. For example you can use the operators “<=”, “<” and co.
In ROOT 6.16 the conversion to individual bools will be very easy thanks to additional helpers such as All:
bool mnyResult = All(DV_rxy > 0);
(and this will be vectorised internally without the user needing to do anything).
Now, if you want, already in 6.14, the release you are using, you can simplify a bit the code. For example like this (I take your “cut_volume” as an example):
.Filter("! DV_rxy[DV_rxy<=300 && DV_rxy>10].empty()")...
Here you can find a nice tutorial about that syntax (https://root.cern.ch/doc/v614/vo003__LogicalOperations_8C.html). And again, the system will vectorise the operations for you whenever possible (i.e. faster code without you doing anything!)
I hope this helps.
Cheers,
D
PS
I think your questions qualify for the regular forum, they are not simple at all