|
[Rivet] bugAndy Buckley andy.buckley at cern.chTue Aug 12 09:59:59 BST 2014
On 11/08/14 21:06, Frank Krauss wrote: > On 11/08/14 16:53, Andy Buckley wrote: >> Hi Frank, >> >> I've been in touch with Holger about the problem -- last I heard your >> problems came from running events with massless stable partons into >> Rivet and filling NaN values into histograms. That's not something we >> can test for, and I think YODA was/is right to abort when it gets a >> crazy fill value that invalidates the histogram. > > Well, actually, let me disagree there. If you ever wanted to evaluate > hadronization corrections or so with Rivet, you would have to deal with > this. That's why I believe this is exactly the kind of exception you > want to catch, before filling it in .... Hmm, so probably the check needs to go into the analysis then. For flexibility I think it would be a good idea to get rid of all the user-triggerable asserts from YODA, since there is no way to recover from them, and replace them with exception throws which can at least be handled if the calling code is careful. I'm happy for people to go through the Rivet analysis code adding checking for NaN and inf histo fills, and other issues that can arise from parton-level running. But it's not surprising that the analyses we get sent by experiments aren't so careful, and I don't see how we could automate the checking by putting it inside YODA itself because the analysis code would need to make sure that e.g. weight counters don't get updated if a histo fill() fails... >> This error looks different but is hard to read -- it looks like >> something goes wrong inside a Boost shared pointer header. I don't see a >> "px != 0" assert anywhere in that analysis code, so is this a private >> version of it? Unless that assert is in the Boost code and it's just a >> coincidence that they used a physicsy variable name like px... > > Well, no idea what it is, but it certainly is annoying like hell. And, > no, I don't do private versions of analyses, especially not by CMS. Ok :-) Just guessing from what it looked like, and that I know Holger was trying some private hacks! Maybe the suggestion from Holger about using make_shared has some merit, but he can't reproduce this problem on the trunk anyway. >> Duplicate analysis warnings are entirely intentional, and if you are >> getting those it suggests that you are using a hacked copy of a standard >> analysis and the system is warning that there is another one of the same >> name later in the search path. Is that possible? > > No, actually, I get lots of warnings, next time I copy and send them to > you. it's nothing serious, though. Ok, let me know. If you're getting those warnings, maybe you have a second Rivet installation somewhere and its analysis plugin libs are getting found by virtue of being listed in your $RIVET_ANALYSIS_PATH? >> I ran this analysis happily a few days ago when discussing with Holger, >> and it worked fine. I'm on the Rivet trunk of course, but I don't think >> there should be any significant changes w.r.t. 2.1.2 (not 2.0.0, >> right?) Certainly no changes in how histogram pointers are handled :-S > > Hmm, rivet --version claimed 2.0.0 .... Interesting. Can you send us your copy of the bootstrap script so we can check what version is being downloaded? The way listed on the GettingStarted wiki should be up to date with the download path for the 2.1.2 bootstrap. Andy >> On 11/08/14 16:31, Frank Krauss wrote: >>> Dear All, >>> as Holger already knows, there are more and more bugs cropping up in >>> Rivet + Yoda. >>> They manifest themselves as >>> >>> >>> Sherpa: >>> /home/krauss/rivetinstall/local/include/boost/smart_ptr/shared_ptr.hpp:653: >>> >>> typename boost::detail::sp_member_access<T>::type >>> boost::shared_ptr<T>::operator->() const [with T = YODA::Histo1D, >>> typename boost::detail::sp_member_access<T>::type = YODA::Histo1D*]: >>> Assertion `px != 0' failed. >>> >>> Exception_Handler::SignalHandler: Signal (6) caught. >>> Cannot continue. >>> Exception_Handler::GenerateStackTrace(..): Generating stack trace >>> { >>> 0x7fb8d9ec54f5 in 'gsignal' (raise.c:64) >>> 0x7fb8d9ec8c5b in 'abort' (abort.c:93) >>> 0x7fb8d680fe61 in 'Rivet::CMS_2010_S8547297::analyze(Rivet::Event >>> const&)' >>> 0x7fb8d8af09d0 in 'Rivet::AnalysisHandler::analyze(HepMC::GenEvent >>> const&)' >>> 0x7fb8d8dacb1c in 'Rivet_Interface::Run(ATOOLS::Blob_List*)' >>> (basic_string.h:288) >>> 0x7fb8dc031bef in 'SHERPA::Analysis_Phase::Treat(ATOOLS::Blob_List*, >>> double&)' (Analysis_Phase.C:66) >>> 0x7fb8dc00d2c3 in 'SHERPA::Event_Handler::AnalyseEvent(double&)' >>> (Event_Handler.C:145) >>> 0x7fb8dc011b57 in >>> 'SHERPA::Event_Handler::GenerateMinimumBiasEvent(SHERPA::eventtype::code&)' >>> >>> (Event_Handler.C:329) >>> 0x7fb8dc012bf5 in >>> 'SHERPA::Event_Handler::GenerateEvent(SHERPA::eventtype::code)' >>> (Event_Handler.C:127) >>> 0x7fb8e67dfc7b in 'SHERPA::Sherpa::GenerateOneEvent(bool)' >>> (Sherpa.C:197) >>> 0x402177 in 'main' (Main.C:37) >>> } >>> >>> >>> So, apparently, your ** new ** ** default ** 2.0.0 which I accessed >>> through the bootstrap script by now has some interesting behaviour. >>> Before that, there have already been little nuisances, like double >>> analyses warnings etc., but no outright crashes. I seriously suggest >>> you try to fix this and do some minor testing next time, before rolling >>> out new versions. >>> >>> Best wishes >>> Frank >>> >> > > -- Dr Andy Buckley, Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow / PH Dept, CERN
More information about the Rivet mailing list |