[Rivet] YODA excptions

Andy Buckley andy.buckley at cern.ch
Tue Jan 19 21:13:17 GMT 2016


On 19/01/16 11:46, Chris Pollard wrote:
> Hi David,
>
> Just to be sure I understand you: YODA should always raise these
> exceptions; it's a question of whether Rivet catches them gracefully,
> correct?

I also took David's email to mean this. Not sure what is meant by the 
"new" YODA stance on this -- we have raised exceptions for a long time. 
Except in the divide and mkScatter methods: we do not raise exceptions 
there but rather set values/errors to zero if there are low-stats 
exceptions or similar.

[And in YODA version 1.5 onwards this will be changed to setting NaN 
instead, i.e. using the IEEE fp spec properly (which will require 
adjustment in make-plots to skip plotting of NaN-valued plot elements, 
cf. matplotlib).]

> I am not sure all users want Rivet to continue running when at least one
> analysis crashes, but I can see why some might. Maybe a --continue-run
> flag or similar is more appropriate for those that don't want to stop
> the run when there is at least one analysis "still standing"?

I'm not a fan of solving problems with "add another UI flag" -- we 
already have more than is sensible. And if we decide to go down a route 
like that, then the new flag should just be a UI frontend for a more 
fundamental flag on AnalysisHandler or similar.

But like Chris, I'm not sure that this is a great idea, at least not 
with the current production version -- how do we avoid ending up with 
histograms in an inconsistent state if e.g. for a single event some but 
not all are filled before the exception is thrown? That need for 
"atomic" transactions and ability to roll-back a failed event sounds 
like it'll be easier with the abstraction of "user" and "permanent" 
histograms in the 3.0 multiweight branch.

Andy




> On Tue, Jan 19, 2016 at 10:35 AM, David Grellscheid
> <david.grellscheid at durham.ac.uk <mailto:david.grellscheid at durham.ac.uk>>
> wrote:
>
>     Hi all,
>
>     can we discuss the new YODA stance of always raising exceptions?
>
>     Within the lowest level of YODA, I have no problem with that, it's
>     the right thing to do. The question is at what level you need to
>     swallow these. One rogue point in one dodgy Rivet analysis can kill
>     a whole run right now.
>
>     I think that
>
>     1) no YODA exceptions should be able to propagate outside of Rivet.
>     Rivet needs to deal with them and "do the right thing" whatever that
>     may be.
>
>     2) Rivet needs to isolate crashing analyses and allows the remaining
>     run to proceed
>
>     Any comments?
>
>        David
>     _______________________________________________
>     Rivet mailing list
>     Rivet at projects.hepforge.org <mailto:Rivet at projects.hepforge.org>
>     https://www.hepforge.org/lists/listinfo/rivet
>
>
>
>
> _______________________________________________
> Rivet mailing list
> Rivet at projects.hepforge.org
> https://www.hepforge.org/lists/listinfo/rivet
>


-- 
Dr Andy Buckley, Lecturer / Royal Society University Research Fellow
Particle Physics Expt Group, University of Glasgow


More information about the Rivet mailing list