|
[Rivet] [Rivet-svn] r2130 - in trunk: . bin include/Rivet pyext src/CoreFrank Siegert frank.siegert at durham.ac.ukSat Dec 12 21:45:58 GMT 2009
Andy Buckley, Wednesday 09 December 2009: > Frank Siegert wrote: > > Would it be possible, to leave the parsing of the first event in > > AnalysisHandler in any way? I know why you moved it, because you > > needed the first event before doing the analyses init. But maybe that > > could be done by having AnalysisHandler extract the information and > > call the analysis init in an "if (firstevent)" block within > > AnalysisHandler::analyze? > > > > What do you think? > > I think you're right that there's a problem in the design, but I think > that getting rid of the "if (firstevent)" test in Run was one of the > nicer features of the re-design. And having the first event info > available in the analysis init() methods is a *really* nice feature. But how does this contradict my suggestion? It would still be available in the analysis init() method. If there is no reason except for nicer design, I'd very much prefer to keep this as simple (and backwards-compatible) as possible for users. And although not having looked at the recent code changes in detail, I'd also volunteer to make this change. > I think the best way to do this is to push this functionality into an > initRun (or whatever) method on AnalysisHandler. That makes a lot of > sense to me, since the Run is really an interface for handling the > HepMC reading: AnalysisHandler is the place that should know about the > physics of the incoming events. Removing one level of indirection > seems like a good idea. However, you'd need to be able to protect the > required call to this method inside a #ifdef block. Is there any easy way for Hw++/Sherpa/... to protect this inside an #ifdef block? I couldn't think of one, when I wrote my other email. Cheers, Frank
More information about the Rivet mailing list |