|
[Rivet] Truth jets and RivetAndy Buckley andy.buckley at cern.chWed Jan 25 17:17:30 GMT 2017
On 25/01/17 10:49, Karl Gellerstedt wrote: > Hi Andy, > > I have two quick question about truth jets, that I hope you know the > answers to. > > Do you know if pile-up jets are included in the xAOD truth jet > collections, (AntiKt4TruthJets/TruthWZJets)? I should know this, but my mind has gone fuzzy and I can't remember how much is retained. My suspicion is that they are not there, and that a dedicated collection for truth pile-up jets is used: pile-up is simulated in separate simulation jobs and combined at the digitization stage. Zach Marshall or John Chapman would know, I'm sure. Try asking on the PMG mailing list? Also, the truth pile-up jet info is heavily thinned before xAOD, so at most you'd get the truth-jet filters but no particle constituent info. Note that truth-jet clustering is done independently for the signal event and each pile-up event, so it's perfectly possible for signal and pile-up jets to completely overlap without "taking bites" out of each other. > I’ve also had a look at Rivet (a really impressive work!), and do you > know what setup to use for the FastJet projection, to get jets > similar to the “AntiKtTruthWZJets”? Good question. I think the W/Z jets can't be exactly replicated in Rivet because they explicitly look for a W or Z parent: we avoid that. But I think you would get a very similar answer if you configured normal akT jets with the correct radius and pT threshold, and also configure the DressedLeptons projection to find prompt electrons and muons: then veto any jets where they overlap. Maybe with a narrower veto radius than the jet radius. Off the top of my head, something like this would work: // Init FinalState photons(Cuts::abspid == PID::PHOTON); PromptFinalState leptons(Cuts::abspid == PID::ELECTRON || Cuts::abspid == PID::MUON); declare(DressedLeptons(leptons, photons, Cuts::pT > 15*GeV), "Leptons"); // Analyze const Particles leptons = apply<FinalState>(event, "Leptons").particles(); Jets jets = apply<FinalState>(event, "Jets").jets(Cuts::pT > 20*GeV); for (const Particle& l : leptons) ifilter_reject(jets, deltaRLess(l, 0.3)); There are other ways that could also work, such as passing the FastJets projection a VetoedFinalState for clustering, where the veto is on anything selected by the DressedLeptons projection. Maybe that would be closer to the WZJets definition. I've copied in the other Rivet developers in case they have anything to add. Andy -- Dr Andy Buckley, Lecturer / Royal Society University Research Fellow Particle Physics Expt Group, University of Glasgow
More information about the Rivet mailing list |