Update [12.19.2019] -- Understanding Turning Decays On vs. Off in Run 9 Dijet Embedding Sample

One systematic uncertainties we need to assess in the neutral-triggered run 9 pp jet reconstruction analysis is the impact of secondary vertices on our measurement.  The plot below shows the systematic variations for eTtrg = (9, 11) GeV/c pi0-triggered charged recoil jets:

Without a doubt, the "no weak decays" variation -- which was intended to gauge the effect of secondary vertices -- is the largest within our dynamic range (0 to 20 GeV/c).  This is odd, because we would anticipate the effect to be very small...

The way we were assessing the weak decay systematic was by turning weak decays on and off at the generator-level of the Run 9 dijet embedding sample.  The sample has access to the entire Pythia event record, so we can identify the hadrons which will decay later vs. those which won't.  There are two quantities we used to distinguish these populations: the id of the vertex the particle is associated with, (labeled 'IdVtx') and the id of the "end vertex," the last vertex participated in, of the particle (labeled 'IdEnd').  To illustrate:

  1. [IdVtx == 1]: the particle is associated with the primary interaction vertex.  It may decay further, or it may not.
  2. [IdEnd == 0]: the particle participates in no more vertices, i.e. it won't decay any further.
  3. [IdVtx == 1 && IdEnd == 0]: the particle is associated with the primary vertex, but won't decay any further.

So by selecting all particles with [IdVtx == 1], we're selecting all the particles produced immediately after hadronization in the primary interaction vertex before they undergo any further decay (presumably).  By selecting particles all particles [IdEnd == 0], we're selecting all particles after they've undergone all decays regardless of which vertex they're associated with.  It's worth noting that in our Pythia8 sample, we allow all particles (except pi0's) to decay completely.

In the above plot, the "no weak decays" and "Embedding (Pythia6) prior" variations were created by:

  1. Reconstructing jets at the particle-level of the Run 9 dijet embedding sample using particles which have [IdVtx == 1] (for "no weak decays") or [IdEnd == 0] (for "Embedding prior"), are charged, and have the correct eta range;
  2. Reconstructing jets at the detector-level of the Run 9 dijet embedding sample using our usual parameters;
  3. Then the particle- and detector-level jets are matched to each other in (eta, phi, pT) space to produce response matrices and a jet-matching efficiencies;
  4. These response matrices and jet-matching efficiencies were then used to unfold our pi0-triggered data.

After some digging, I discovered that I made some errors in my code.  After fixing those, I compared data unfolded using responses generated from the above three cases -- particles with [IdVtx == 1], [IdEnd == 0], and [IdVtx == 1 && IdEnd == 0] -- versus data unfolded using a response generated from Pythia8 (where we've applied a parameterized response calculated from the Run 9 dijet embedding sample to create a detector-level Pythia8).

Still the "decays off" case deviates substantially from the default (the Pythia8 case).  However, both "decays on" cases agree quite well...