(I updated the question to make it easier to understand)
I was implementing the advanced aggregator option for the TPC detector (just a test case for now). And I have some issues.
In my .json file, I set a few tasks, a few checks, and then try to use an aggregator.
I have results of qualities as following (they are constant):
check1 -> quality1 (good)
check2 -> quality1(good), quality2(bad)
In .json as data source for aggregator I use only quality1 (check1)=good and quality1(check2)=good. The aggregator creates quality1 by taking the worst quality passed to it and quality2 always equal to medium. The result returned for quality1 is bad quality -> opposite to what is expected.
I tried to print the names and qualities of all objects passed to aggregator (print all objects in the QualityObjectsMapType& qoMap), and it seems, that it has all qualities that are created during full chain, even the aggregated qualities. (so it has quality1 (check1), quality1 (check2), quality2 (check2), quality1(aggregator), quality2(aggregator) and uses all of them inside aggregator).
I have thus two questions:
Are the aggregator resulting qualities actually supposed to be included in the next aggregator run as one of the qualities to aggregate?
As mentioned before, check2 produces 2 quality objects, I try to pass only one to aggregator, but both qualities are used in the aggregator. This is wrong behavior, yes?
As I am not sure if it is the problem of the framework or just my .json setup, I will add my .json.
So, both questions stem from the fact that the list of qualities provided to the method is not filtered. It contains more qualities than what is asked. It was done this way for simplicity. I see that it is actually confusing.
I will document it and create an issue to address it: Cern Authentication
Meanwhile, if you explicitely take the quality objects from the map (qoMap["check1/quality1"]) it should work the way you expect it, right ?
yes, it would work. But this might be not very effective if one actually needs the case of “using the worst quality provided”. Because then one would have to actually make a list of names of qualities that must be compared inside the aggregator.
However, we haven’t created yet the “real case scenario” aggregator, so this is just a thought. So for now it is not an “emergency” request, I just wanted to understand how aggregator works as you implemented it upon our request.
I will follow the jira ticket.
Thanks for all the help you provide!
Have a nice day
Laura