|
[Rivet] ParticleFinder/FinalState compound & constituent particle reportingAndy Buckley andy.buckley at cern.chTue Apr 19 12:14:23 BST 2016
Hi all, I realised while putting finishing touches on the Rivet 2.5 smearing mechanisms that we need a standardised interface for distinctly returning "compound particles" created by a projection, and for returning the raw constituent particles from which they are created. In many cases these are the same thing. For example, a FinalState's particles() method returns all raw particles matching the cuts, and there are no compound particles. But WFinder, ZFinder, DressedLeptons, and arguably things like TauFinder are able to return both compound particles -- the Ws, Zs, and dressed leptons -- and the raw particles from which they are built. At the moment, the particles() method always returns the raw ones, and there are special methods like WFinder::bosons() and DressedLeptons::dressedLeptons() to get the compounds. But for smearing we are really interested in the "most compound" objects returned by a projection, so I can use a SmearedParticles projection to wrap either an IdentifiedFinalState of raw electrons, or a DressedLeptons wrapper of the same. At the moment if I make a SmearedParticles(DressedLeptons(IdentifiedFinalState)), then the electron smearing will be applied equally to raw electrons and raw photons, and all those smeared raw particles will be returned -- oops. I don't think this is something in need of fixing for the 2.5.0beta1 (hopefully to go out today?), but it should be done for 2.5.0 proper. I suggest adding rawParticles() and compoundParticles() methods to ParticleFinder and making sure that each derived class returns the appropriate collection. Or, since I find it rather odd that WFinder::particles(), DressedLeptons::particles(), etc. do *not* currently return Ws, dressed leptons, etc., we could change those methods to do so, and just add rawParticles() as the standard hook for retrieving objects that come direct from HepMC -- and adapt the veto-on-FS / remainingFinalState mechanisms to use rawParticles() rather than particles(). I very much doubt anyone is using that behaviour directly in user code. I prefer the latter for several reasons, but this is the sort of thing that should be discussed. Feedback, please!! Andy -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |