Open henrylay97 opened 3 years ago
Yeah, there is a really nice diff_cafs
tool available that can check that two CAFs are literally identical, which I think we should be making use of, but nothing has been done about hooking this up.
@chilge any chance of this becomes part of the standard workflow checks for creating cafs? Then could look to add on the diff_cafs too?
there's a chance. it depends on how the rollout of what we currently have goes. the same solution being developed for the fhicl checks might be able to be easily modified for using diff_cafs.
Hi all,
I think I have a working set of CAF checks (as usual this is for SBND but the infrastructure should be there for someone on ICARUS to quickly add this to their configuration too) that can now be used (following the usual testing procedure). As it can operate in a similar way to our current regression test, this would fit into the standard CI which is run for every single PR and every commit to develop. I will post some CI examples on here later.
There are huge benefits to this. The obvious is that we test the CAFMaker
infrastructure which is currently not covered by the CI at all (other than it compiles). The real extra benefit compared to the other stages is that in the simple inexpensive test we are able to test physics quantities without running the full validation. Thanks to the lovely diff_cafs
script we will see if any value in the CAF has changed.
@chilge @cjbackhouse @wesketchum @jzennamo I have few things I’ve found whilst developing this that I would like input on from you guys:
1) Shall we get rid of the anatree
tests from the standard CI? Is anyone using the anatree anymore? All these checks do is ensure that it runs, there are no value checks.
2) The production workflow is currently using cafmakerjob_sbnd_sce_genie_and_fluxwgt.fcl
, I tried using this but the setting up of the multisims took so long it wasn’t viable as a quick regression test. I am currently using cafmakerjob_sbnd.fcl
, are we happy with this?
3) I also realised during this that we’re currently using standard_*_sbnd.fcl
for the other stages. Do we want to swap to *_sce.fcl
like production is using?
I wonder if the best approach is to inherit from that fcl and override to a small number of systs/universes, just so that we can check the infrastructure that propagates the weights works at least.
Thanks Chris! As someone who's never used this functionality would you be able to suggest to me a good set of test values for these?
Maybe @Ooohu can help you here. I think turning one or two of the most important dials by +/-1sigma sounds like enough
Okay so I have a working set of tests. With regards to the conversation above I have gone back to using fcls with the weighting procedures but turned the number of universes down to 1. This tests the functionality but keeps it manageable as a regression test.
An example of these test can be found here and here. The former tests with respect to develop and therefore shows a good example of how differences will show up due to the initialisation issues addressed in SBNSoftware/sbnanaobj#33. The latter tests using the previous PR and therefore shows what a clean output would appear like.
I'll leave this open for feedback and then make a PR somepoint next week.
PR opened SBNSoftware/sbndcode#233
Given the mentioned PRs have been merged in ... are these part of the tests in CI/validation now @henrylay97 @chilge ? If so, I'd propose closing this issue, and we can make new ones with better specificity as needed. If not, I'd propose we leave it open, and push to complete ASAP.
These tests are fully integrated for SBND and have been running as standard since December. The functionality is there for ICARUS to use as well but I don't believe they have been setup to do so yet?
Have just been fixing an error caused by the anatree config for sbnd and it occurred to me that as of yet I don't think we perform any CAF checks at all? I'm sure this is something that has been discussed but longer term this is definitely something we'd want to be checking!