|
[Rivet] DressedLeptons and photons from tau decaysAndy Buckley andy.buckley at cern.chMon Feb 27 16:50:51 GMT 2017
Thanks for the clarification. I will modify DressedLeptons in this fashion for future releases. But when you say "backport to 2.4.2", do you mean a modification to the analysis or to the projection? I was proposing to make a change in DressedLeptons, but that would require patching the Rivet core. In the analysis you could manually do the same as the projection does: declare(PromptFinalState(Cuts::pid == PID::PHOTON, true), "PromptPhotons"); //< can't remember if Cuts::pid is in 242... ... const Particles promptphotons = apply<FinalState>(event, "PromptPhotons").particles(); Particles dressedleptons; for (const Particle& l : leptons) { FourMomentum mom = l.mom(); sum(filter_select(promptphotons, deltaRLess(l, 0.2)), mom); dressedleptons.push_back(Particle(l.pid(), mom, l.origin()); } Or maybe a bit more complicated if there's any danger of double-counting. I may have made use of some post-2.4.2 features there, but sum, filter_select, and deltaRLess can be easily replicated in a few lines of normal for-loop. I'll have a bit more of a think about what to do re. hadronic taus -- as you say, the "from hadron" already captures most, if not everything, that was intended... but I suppose it is consistent and more complete to also veto photons from a prompt tau which decays hadronically. Andy On 27/02/17 14:46, Markus Seidel wrote: > Hi Andy, > > yes, I was referring to the call of fromTau, indeed. > > I would be happy with any solution that we can backport to 2.4.2 with a > custom photon projection. (We made an effort to call Rivet projections > directly in the CMS software, where the release for 2016 data analysis > is bound to Rivet 2.4.2, and it is not trivial to update.) > > I think your proposed solution should work and deliver physics as > intended :) > > Just calling !fromHadron instead of !fromDecay would also solve the > issue for many use cases I think. > (Only photons directly from the hadronic tau (not its hadron daughters) > might get clustered with a electron/muon going into the same direction) > > Cheers, > Markus > > Am 24/02/2017 um 20:20 schrieb Andy Buckley: >> Hi Markus, >> >> Sorry it's taken a while to get back to you on this -- I had a very busy >> period. Taking advantage of a train journey to reply! >> >> It took a little digging to work out what code you were referring to: >> that's a couple of steps away, in Particle::fromTau, right? Which is >> called via Particle::fromDecay, if DressedLeptons is called with the >> fromDecay=true option. I think you're right about the unintended >> consequence, though. >> >> I agree this stuff is a bit messy: when I wrote it, I didn't want to >> proliferate a multitude of options about vetoing photons >> directly/indirectly from hadrons and/or all/hadronic taus -- you get the >> idea from all the slashes, hopefully! But in retrospect I think I should >> have probably provided a isHadronicTau Particle classifier function*, >> and used the logic fromHadronicDecay = fromHadron || fromHadronicTau. >> "fromDecay" is too vague. >> >> Would that meet your approval: if !fromDecay, don't use any photons for >> clustering which either have an unstable hadron or a prompt, >> hadronically decaying tau in their history? >> >> Thanks, >> Andy >> >> * Or just a generic hasHadronic/LeptonicDecay? That's the problem with >> this stuff -- so many possible combinations, but which are the most >> natural/flexible/convenient?! I'm open to suggestions! >> >> >> >> On 08/02/17 08:06, Markus Seidel wrote: >>> Hi Andy, hi Frank, >>> >>> I was not so much concerned about the photons directly from the tau but >>> about those from the tau daughter leptons. >>> >>> If we look at these lines: >>>> return _hasRelativeWith(HepMC::ancestors, [](const Particle& p){ >>>> return p.genParticle()->status() == 2 && isTau(p); >>>> }); >>> >>> It checks if there was a tau in the photon ancestors. >>> So if we have a chain tau->electron->photon, the photon is not used for >>> the dressed electron because there is a tau upwards? >>> >>> Is my interpretation correct, or do I just misunderstand the meaning of >>> HepMC::ancestors? >>> >>> Cheers, >>> Markus >>> >>> Am 07.02.2017 um 21:49 schrieb Andy Buckley: >>>> On 06/02/17 15:07, Markus Seidel wrote: >>>>> Dear all, >>>>> >>>>> what is the reason for excluding photons from tau decays from the >>>>> DressedLeptons? >>>>> >>>>> Doesn't this prevent to cluster photons from electrons from taus? >>>> >>>> Hi Markus, >>>> >>>> I think the projection was probably written considering (as is usually >>>> the case, in my experience) leptonic taus to only be observed via their >>>> muon or electron child -- and it is the child rather than the parent >>>> whose momentum vector is used as the centre of the dressing cone. >>>> >>>> DressedLeptons isn't designed for hadronic taus, and I suspect this >>>> rule >>>> is in there to avoid "contamination" from hadronic tau decay photons >>>> into prompt electron or muon dressing. >>>> >>>> You're probably right that there's an issue in how it's implemented, >>>> though: it does seem reasonable, or at least would be a reasonable >>>> option, to include photons directly from a prompt leptonic tau when >>>> dressing that tau's electron/muon child. The neutrinos are still >>>> "missing", so it may not help much, but is physically well-defined. I >>>> *could* add an option flag of that sort, to restrict the veto to >>>> *hadronic* taus only: is that what you had in mind? >>>> >>>> Frank Siegert may know more: he originally implemented DressedLeptons >>>> (then called ClusteredLeptons), and I can'd remember if he or I added >>>> the tau photon veto! Frank?? >>>> >>>> Andy >>>> >> >> -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |