Custom vs built-in merger finder

Jacob Morgan
  • 27 Dec '22

Hey there! I was working on finding isolated halos. I saw there is a built-in function for this, but I don't understand exactly how it works and I wanted to look for mergers only within a specific lookback time, which I don't know exactly how to do with this built-in function. Because merger trees only exist at the subhalo level I basically looked for central subhalo mergers. I tried to count the number of mergers myself by:

1) For a given halo id, find the central subhalo and use il.sublink.loadTree(MPB=True) to load the history of the SubhaloMassInRadType field.

2) Assemble stellar mass history (index 4) for each subhalo. I'm also aware that this field is listed from latest-->first snapshot

3) Establish a low stellar mass difference threshold (0.1) and look for any change in the mass history array larger than that (also checked inverse threshold, similar to how the built-in function seems to work).

4) If there's no stellar mass change larger than that in 5Gyr, add to list

However! I have found what appear to be ongoing major mergers (mass ratio close to 1:1) in my sample, around lookback time 2.5Gyr, which would surely have completed by t=0. After averaging over halo behavior and noticing some abnormalities, if I plot the gas of abnormal halos it's clear a merger is happening, at least in terms of gas. Thinking I had just chosen a bad mass field, I also checked the stellar and gaseous SubhaloMassInRadType and SubhaloMassType values in these seeming mergers, and also saw less than 10% change per snap.

Could my deviation from the built-in function have caused this? I don't understand exactly why the built-in function (il.sublink.numMergers) seems to laboriously iterate over different progenitor IDs when there's just an array of different masses for the subhalo at each snapshot. But trying it this way did lead to the weird results I describe here, where it seems my method failed to find some mergers.

Does anyone know how I could be missing mergers?

Thank you for your time!


Dylan Nelson
  • 28 Dec '22

The numMergers() is an example of using the information of the "full tree", rather than just the main progenitor branch. In particular, it counts mergers (which, in the subhalo-based tree, are defined as coalescence, i.e. the snapshot where the progenitor subhalo no longer exists because it has been incorporated into the descendant subhalo).

Of course you can identify and count mergers in other ways, as you suggest above. If you only want to count galaxy mergers with non-zero stellar mass and reasonably large merger mass ratios, looking for increases in stellar mass with time is reasonable. Stellar mass also increases in time through in-situ star formation, which could mix things up.

Just to be clear, by "isolation" you mean "quiet merger history"? One could also defined "isolated halos" spatially, e.g. those halos with no neighbor above 1e12 Msun halo mass within 10 Mpc, or no neighbor above its own mass within 10 rvir, as two examples.

Jacob Morgan
  • 11 Jan '23

Thank you for the reply! Yes, I did just mean "quiet merger history". But it seems like we may have to expand our definition of isolated! It turns out that merge-like behavior I saw were fly-by events, where the interloping subhalo becomes a part of the halo, but apparently not the central subhalo.

  • Page 1 of 1