I have observed a few times that if I put a list of files to be plotted inside the rml configuration file, e.g. <addFile name="/path/fileName.root"/>. I’ve tried with different RMLs amd I always get the same result. I attach one of them: plotsFirstFile.rml (8.3 KB)
Also, if I want to compare two observables that are in different root files, but with the same run number, how can I do this? For example I have of R0001_noiseReductionON.root and R0001_noiseReductionOFF.root and I want to compare observables at track level.
I cannot find this metadata member that is different. The run tag is the same, as it is the one defined in the aqs file, which is common for both root files. The only difference is the file name itself, but I’m not sure how to use it, as I try <classify fileName="path/file.root"/> I get a seg. fault. E.g., I have these 4 files (available in Sultan: /storage/cast/SR2019/analysis/xenon/v2.3/testCommonNoiseReduction)
and I need to combine the first 2 in the list (i.e., subruns 0 and 1 with common noise reduction OFF), and compare them to the other two combined (same subruns but with noise reduction ON). The runTag in all of them is the same: Xenon_Calibration_30min. Maybe it’s straightforward, but I didn’t find the way.
Oh, sorry, theres was a sentence missing!
What I wanted to say is that if I put a file list in the RML file for plotting, the first file in the list is omitted for plotting.
For example if I try to plot R10852 and R10964, and these are the first two in the file list, I only get plots for the second one (R10964). Can be repllicated with thir RML: FirstFileBroken.rml (11.0 KB)
However, if I just put these two runs later in the list, for example in 3rd and 4th position, I can see both ( FirstFileOK.rml (11.0 KB)
)
Hello,
Coming back to this post, I think that <classify runTag="myRunTag"/> is not working properly. If I try to classify based on run number I have no problem, but if I try to use the run tag, the files are simply combined.
seem to be there to keep the value we have read from the RML file. That means, we read the input file for processing, and replace the values by the ones that were initialized by InitFromCofigFile, except if the field value says preserve or Null. Then, we use the value written on the input file (for processing).
But in the case that we do not load any values from the RML, as it is the case now, then the situation changes.
So, commenting those lines the problem is solved, but we need those lines when we read from an RML file and we use “preserve” keyword inside the RML. So, I believe a solution is to add a new bool variable that determines if the class was loaded from an RML file, and introduce a condition there.
Hope I didn’t break something else. Here it is the PR