|
[Rivet] gen parton matching for jetsAndy Buckley andy.buckley at cern.chMon May 9 19:51:46 BST 2016
Hi Raghav, Not only that we are looking for compatibility between data and theory, but that the "internals" of parton shower records are not guaranteed to have physical meaning and are certainly not the same between different generators. There are some strategies that are more robust and "more physical" than others, but they are just ad hoc strategies rather than anything guaranteed, so we don't encode them in the Rivet interface. I am still tempted to "wrap" access to the raw GenEvent contents in Rivet's Particle objects, just to allow some of the existing tools to be used and stop the code from being quite so awkward. This would lose information about parentage, for which there are either other tools or the information is again not guaranteed to mean anything physical. Let's see... Andy On 09/05/16 18:54, Raghav Kunnawalkam Elayavalli wrote: > Hi Andy, > > I understand since you want this to be compatible with both data and theory so the emphasis on final state objects i guess. > I would much appreciate if you can share the "Rivety" way because I think such studies with the partons are very interesting in our case of heavy ions where the fluctuating underlying environment is correlated with our final state observables. Or if have any other ideas, im willing to test them out. thanks! > > Cheers > Raghav > > >> On May 9, 2016, at 7:48 PM, Andy Buckley <a.g.buckley at gmail.com> wrote: >> >> Hi Raghav, >> >> There is nothing very much easier, because Rivet very specifically focuses on *not* using partons in order to make analyses more robust and physical. >> >> (I am debating whether to provide a *slightly* more "Rivety" way to access the partons, just to make life nicer than working direct with HepMC (which would also make our life easier for analysis maintenance). But it's not obvious, because we really want to discourage this way of doing things.) >> >> Andy >> >> >> On 09/05/16 11:36, Raghav Kunnawalkam Elayavalli wrote: >>> Dear Rivet experts >>> >>> I have a simple question regarding gen parton matching using >>> HepMC::GenParticle in a foreach loop as shown below: >>> >>> HepMC::GenParticle* truthParton=NULL; >>> double truthDelR(0); >>> foreach (const HepMC::GenParticle& p, particles(event.genEvent())) { >>> if((p->pdg_id() != 21) and (abs(p->pdg_id()) > 6)) continue; >>> const double delR = >>> jets.front().delta_R(fastjet::PseudoJet(p->momentum().px(), >>> p->momentum().py(), >>> p->momentum().pz(), >>> p->momentum().e())); >>> if(truthParton==NULL){ >>> truthDelR = delR; >>> truthParton = p; >>> } >>> else if(delR < 0.6 && truthParton->momentum().perp() < >>> p->momentum().perp()){ >>> //if(null) assign truthParton, updateDelR >>> truthDelR = delR; >>> truthParton = p; >>> } >>> } >>> _h_TruthDeltaR->fill(truthDelR,weight); >>> >>> MC_GENSTUDY_JETCHARGE.cc:256:33: error: cannot initialize a variable of >>> type 'HepMC::GenParticle *' with an lvalue of type 'const >>> HepMC::GenParticle *const' >>> foreach (HepMC::GenParticle* p, particles(event.genEvent())) { >>> ^ >>> /Users/raghav/WORK/RIVET/local/include/boost/foreach.hpp:1107:14: note: >>> expanded from macro 'BOOST_FOREACH' >>> for (VAR = BOOST_FOREACH_DEREF(COL); >>> !BOOST_FOREACH_ID(_foreach_continue); >>> BOOST_FOREACH_ID(_foreach_continue) = true) >>> ^ >>> >>> Is there a simpler way to do this? it seems like there might be. thanks! >>> >>> Cheers >>> Raghav >>> >>> >>> >>> _______________________________________________ >>> Rivet mailing list >>> Rivet at projects.hepforge.org >>> https://www.hepforge.org/lists/listinfo/rivet >>> >> >> >> -- >> Dr Andy Buckley, Lecturer / Royal Society University Research Fellow >> Particle Physics Expt Group, University of Glasgow > -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |