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