|
[Rivet] Rivet 2.2.0 PRojection QuestionStephen Jiggins stephen.jiggins at cern.chMon Oct 19 09:46:35 BST 2015
Hi Andy & Authors, Thank you for your reply Andy. I did speak to Chris Pollard, and said I would give a more detailed email regarding this issue. Your understanding of the problem is correct, so I'll proceed with writing a more detailed email, with the Rivet Routine and log files, after trying Rivet 2.4.0 (is this in an athena release of ATLAS yet?). @Chris, apologies for not sending the email yet. I was pre-occupied with other work over the weekend. Kind Regards Stephen Jiggins ________________________________________ From: Andy Buckley Sent: 18 October 2015 22:22 To: Stephen Jiggins Cc: Rivet Subject: Re: Rivet 2.2.0 PRojection Question Hi Stephen, (CC Rivet developer list -- the best place for such reports) If I understand correctly, you can run fine over your events if the applyProjection line appears directly in your analysis' analyze() method, but if you put it in a different method of that class and call it indirectly, then that assert is triggered? That sounds very strange indeed and is not something I've seen before... Indeed, if your secondary method is small, there's a good chance that it should be inlined into analyze() anyway. No idea what's going on, sorry... but as always I think an upgrade to the latest (2.4.0) and re-testing would be a good idea before we take it any further! Andy On 16/10/15 10:24, Stephen Jiggins wrote: > Hi Andy, > > The following isn't urgent, so please do not worry about immediately > answering, but for my sanity I have to ask. > > I have a question regarding projection applications in Rivet. I have > observed very strange behaviour in Rivet that I believe is due to my > ignorance, but wish to check. I have initialised a series of projections > within the init() method of the rivet analysis, and been careful about > projection chain caching. But the simple question is that when applying > the projections in the analysis() stage, eg: > > const vector<DressedLepton>& leptons = > applyProjection<DressedLeptons>(event, "LeptonFinder").dressedLeptons(); > > I can run perfectly fine over a series of files. However when placing > the projection within a member function of the rivet analysis class, and > call the function in the same place, the code compiles and runs > perfectly for thousands of events, and then finds an event which causes > an assertion in FinalState.cc to trigger: > > assert(p.genParticle > <https://rivet.hepforge.org/code/dev/a00302.html#a66996227bd503f024a1234a8567d9023>() == NULL || p.genParticle > <https://rivet.hepforge.org/code/dev/a00302.html#a66996227bd503f024a1234a8567d9023>()->status() == 1); > > What is more confusing is that when I take the function and make it > "inline", the same crash occurs. In essence, from moving a couple of > projections out of a member > function called in analyze() to explicitly within the analyze() > function, the crash does not occur. Has this been observed before? > > Kind Regards > Stephen Jiggins > > > -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |