Issue retrieving the final state decay particles

Hi,

I want to retrieve the indices of the final state particles from my generated decay of ee → Zh, with h → ss → 4b (s is a bsm scalar). To do so I tested the method get_list_of_stable_particles_from_decay (link), and coded as follow.

First off, the scalar and b quark indices are retrieved by:

 # get the indices of the Higgs and the scalars, sorted in order h hs hs
 .Define('H2HSHS_indices', 'MCParticle::get_indices_ExclusiveDecay(25, {35, 35}, false, false)(Particle, Particle1)')

 # get the indices of the b quarks from related scalar, 1 are from the "first" scalar and 2 from the second one
 .Define('HS1_to_bb_indices', 'MCParticle::get_indices_MotherByIndex(H2HSHS_indices[1], {5, -5}, false, false, true, Particle, Particle1)')
 .Define('HS2_to_bb_indices', 'MCParticle::get_indices_MotherByIndex(H2HSHS_indices[2], {5, -5}, false, false, true, Particle, Particle1)')

And then the different decay particles are retrieved by:

# method to retrieve the decay chain from each scalar to stable particles
.Define('scalar1_decay_indices', 'MCParticle::get_list_of_stable_particles_from_decay(HS1_to_bb_indices[0], Particle, Particle1)')
.Define('scalar2_decay_indices', 'MCParticle::get_list_of_stable_particles_from_decay(HS2_to_bb_indices[0], Particle, Particle1)')

# method to retrieve the decay chain of daughters from the b quarks of scalar 1
.Define('s1b1_decay_indices', 'MCParticle::get_list_of_stable_particles_from_decay(HS1_to_bb_indices[1], Particle, Particle1)')
.Define('s1b2_decay_indices', 'MCParticle::get_list_of_stable_particles_from_decay(HS1_to_bb_indices[2], Particle, Particle1)')

# method to retrieve the decay chain of daughters from the b quarks of scalar 2
.Define('s2b1_decay_indices', 'MCParticle::get_list_of_stable_particles_from_decay(HS2_to_bb_indices[1], Particle, Particle1)')
.Define('s2b2_decay_indices', 'MCParticle::get_list_of_stable_particles_from_decay(HS2_to_bb_indices[2], Particle, Particle1)')

I expect the list of particles to be different for the two b’s in the decay of s → bb, and the list of particles of the s to be the combination of the two b lists. My issue is that I retrieve the same list of indices from the two different b’s (sometimes even with copies of indices in the list).

As an example output, I get:
H2HSHS_indices = {5, 14, 15}
HS1_to_bb_indices = {14, 16, 17}
HS2_to_bb_indices = {15, 18, 19}
scalar1_decay_indices = {104, 88, 89, 105, 106, 107, 108, 92, 93, 94, 95, 72, 73, 35, 36, 37, 26, 110, 111, 97, 98, 76, 77, 54, 39, 104, 88, 89, 105, 106, 107, 108, 92, 93, 94, 95, 72, 73, 35, 36, 37, 26, 110, 111, 97, 98, 76, 77, 54, 39}
s1b1_decay_indices = {104, 88, 89, 105, 106, 107, 108, 92, 93, 94, 95, 72, 73, 35, 36, 37, 26, 110, 111, 97, 98, 76, 77, 54, 39}
s1b2_decay_indices = {104, 88, 89, 105, 106, 107, 108, 92, 93, 94, 95, 72, 73, 35, 36, 37, 26, 110, 111, 97, 98, 76, 77, 54, 39}

I’m wondering if I’m doing something wrong using these methods? Can someone help me with this?

Thanks!

Cheers,
Magda

Hi Magda,

I think there is nothing wrong, neither with what you are doing, nor with what you get.
A quark by itself does not lead to a list of stable hadrons, it “combines” with an antiquark into a color neutral system, that then fragments into hadrons.
If your events have been hadronised by Pythia, looking into the event history, you shall see that Pythia made a “string” from the b and the b-bar coming from a s decay, and it is this string that led to the hadrons. The “parents” of the string are the b and the b-bar. It is then normal that, when you go down the history to get the particles that come out from the b and the b-bar, you get the same list of hadrons.

Cheers,
E.