|
[Rivet] Bug in Rivet?Dag Gillberg dag.gillberg at cern.chTue Apr 12 14:51:46 BST 2016
Hi Andy, Thanks! I saw in some more tests that not only Lambda particles are affected, but also the B-mesons. This can actually slightly have affected our old Rivet routine (for the Higgs differential combination) since we might claissify electrons from a semileptonic heavy flavor hadron decay as a non-hadronic.. I'm currently using Jim's setup, to run Rivet within AnalysisBase (i.e. RootCore). Hmm.. not sure how this works, but I see: url = $ROOTCOREBIN/../HEPSoftware/Rivet-2.4.1.tar.gz So I guess this is being downloaded and compiled somehow. Now, regarding the code. We have two open questions, where we perhaps can pick your brain :) First, note that this is not a pure fiducial/differential measurement. We are using kinematic information, but are allowed to "cheat" and use quarks etc. 1. We are supposed to classify gg → ZH vs qq → ZH Which, at NLO, I don't think is possible... gu → ZHu could be either of the above. Any ideas here? Is this split simply impossible with NLO MC? 2. Regarding the jets: We want to take all stable particles, remove anything from the Higgs (very easy with Rivet!). Also ignore particles from leptonic Z and W decays (leptons, e, µ, and FSR γ) Is there a standard way to do this? I suppose we can just do exaclty what we did for the Higgs routine: https://svnweb.cern.ch/trac/atlasoff/browser/PhysicsAnalysis/HiggsPhys/HSG1/Analysis/trunk/GeneralTools/HggUnfoldingPaper2013/Rivet/Combination/HiggsDiffXSecCombination.cc#L110 which btw use the projections :) Cheers, Dag On Tue, Apr 12, 2016 at 4:04 AM, Andy Buckley <andy.buckley at cern.ch> wrote: > On 12/04/16 03:20, Dag Gillberg wrote: > >> Hi Andy, >> >> I'm writing Rivet code (yay! fun!). >> And I want to build jets out of stable particles that are hadrons or >> from hadron decay. >> So I do: >> if ( PID::isHadron(p.pdgId()) || p.fromHadron() ) >> >> Now, as a cross check, I printed out particles that failed this, and I >> see a ton of strange baryons fail: >> Warning: found unexpected particle! >> (pT,eta,phi,m) = (0.9,-2.0,2.0,1), ID = 3122 >> Warning: found unexpected particle! >> (pT,eta,phi,m) = (0.5,-4.3,1.9,1), ID = -3122 >> Warning: found unexpected particle! >> (pT,eta,phi,m) = (0.9,-2.2,3.9,1), ID = 3122 >> >> These are Lambda particles. >> They all fail this line in isBaryon: >> >> if (_digit(nq2,pid) < _digit(nq3,pid)) return false; >> >> since the second digit (1) is smaller than the third (2) >> ( not sure what this condition is based on though..) >> But a Lambda is certainly a Baryon.. >> So this must be a bug, right? >> > > > Hi Dag, > > Yes, you're right: I had tried to tighten up my implementation of PID > checks in the MCUtils package, following the PDG scheme definition, but > missed that for baryons there are exceptions to the ordering. > > I fixed this a while ago in MCUtils but had forgotten to sync the fixes > into Rivet. I'm not sure how it managed to not show up in our release > validation -- we should look into that. > > Anyway I've done the sync now, and the fixed header file (from > include/Rivet/Tools) is attached -- are you able to patch, or do you rely > on a pre-built copy of Rivet? Since it's a bug with real physics > implications, I'm tempted to get a patch release out asap. > > Thanks for the report! > > Now a couple of unrelated comments on your code snippet ;-) > > Particles hadrons_notFromHiggs; >> FourMomentum sum(0,0,0,0); >> for ( const GenParticle *ptcl : >> Rivet::particles(event.genEvent()) ) { >> Particle p(ptcl); >> if (!p.isStable()) continue; >> > > Since you only want stable particles, rather than loop over HepMC > GenParticles, convert them to Rivet Particles, and ignore the non-stable > ones the "Rivet way" is to set up a FinalState projection: > > // In init() > addProjection(FinalState(), "FS") > > // In apply() > const Particles& particles = applyProjection<FinalState>(event, > "FS").particles(); > for (const Particle& p : particles) { > ... > > I am trying to move some core intelligence out of the projections and into > standalone functions (or maybe Event methods) to make it easier to do many > things without projections if wanted, though -- the main benefit of > projections is automatic caching, but that's not always the most important > thing. > > Cheers, > Andy > > -- > Dr Andy Buckley, Lecturer / Royal Society University Research Fellow > Particle Physics Expt Group, University of Glasgow > -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://www.hepforge.org/lists-archive/rivet/attachments/20160412/4fcad349/attachment.html>
More information about the Rivet mailing list |