Equivalence between SubfindID and SubhaloID

Andrés Cardona
  • 14 Aug '19

Hi,

I'm trying to extract the merger trees for specific subhalos. I'm extracting them using the SubfindID, but te result is a list of subhalos (for example when is ask for the DescendantID), but that ID's are naturrally different from the SubfindID.

In order to continue my work, I'm asking for the relation between SubfindID and SubhaloID (any conversio formula, or a code, or a complementary file), because I need to extract also another quantities, but I just can do that using the SubfindID.

Thanks

Dylan Nelson
  • 15 Aug '19

Hi Andres,

If you are loading the DescendantID's of trees, then you are right that these "IDs" are referencing within the tree structure, not within the group catalog.

If you want to load some other property (or particles), then you want to load the SubfindID fields of those tree entries.

Perhaps if you can clarify a bit more what you mean, I can help further. In general, there is no equation mapping SubfindID<->SubhaloID.

Andrés Cardona
  • 16 Aug '19

Hi Dylan,

I understand that the ID's in Sublink and Subfind files are different.

I'm working with the merger trees, and I'm trying to find a connection between the SublinkID and the SubfindID.

Imagine this: I track the merger tree for a specific subhalo. In this, several others subhalos appears. I take that subhalos that I find in the merger tree, and to continue my work, I'm interested in locate those subhalos in the Subfind catalog. Is that possible?

Dylan Nelson
  • 16 Aug '19

Yes, at any point in the tree you can use the combination of SnapNum and SubfindID to locate that subhalo in the Subfind catalog.

Andrés Cardona
  • 16 Aug '19

I can't understand, I mean.

In the Sublink files there are a SubfindID. But if I'm not wrong, this corresponds to the SubfindID for the subhalo I'm extracting the merger tree, not for those that I find inside de merger tree. Am I wrong?

Dylan Nelson
  • 16 Aug '19

Hi Andres,

There is SubhaloID, which is an internal tree reference, and there is SubfindID, which as described in the docs is "Index of this subhalo in the Subfind group catalog."

Francisco Andrés Salinas
  • 28 Oct '19

Hi! I have a similar problem, need know the SubfindID of the Descendant in determined subhalo, want know the properties of the Descendant. But I can't find the SubfindID for the next SnapShoot. I only have the subhaloID in the tree. Exist some way to find the decendant in the next snapshoot?

Dylan Nelson
  • 28 Oct '19

Hi Francisco,

The way is: use the SubhaloID to "load" the correct entry for that descendant in the tree. Once you have the entry, it has both SnapNum and SubfindID'.

By "load" I mean find the location in the tree for this entry, similar to how the actual sublink.loadTree() function works.

Pradyumna Sadhu
  • 28 Jul '23

Hi Dylan,
I have a question along similar lines. I am facing issue accessing the merger trees, and I believe I am missing something trivial. I think I do not understand what id variable stands for in loadTree function. I saw that the FirstProgenitorID of the subhalo 0 at snapshot 0 is 96 at snapshot 4. So, I entered il.sublink.loadTree(basePath, 4, 96, fields = fields, onlyMDB = True) to see if I would be obtain back subhalo 0 at snapshot 99 using DescendantID, but I think I am not seeing what I expected.

I understand that SubhaloID and SubfindID are different. But entering the SubfindID in loadTree does not seem to work at all (throws errors).

I tried checking the documentation here to see what the id means, but I could not figure it out. I request you to help me in this regard

Dylan Nelson
  • 28 Jul '23

All of the loading functions, which are for a specific halo or subhalo, accept the ID of a halo or subhalo.

Pradyumna Sadhu
  • 28 Jul '23

Hi Dylan,
Thank you for your response!

I think a more straightforward way to ask my questions would be as follows:

I would like to calculate the SubfindID corresponding to a DescendantID (from reading other answers on this forum, DescendantID corresponds to SubhaloID of the merger tree but not SubfindID).

Dylan Nelson
  • 29 Jul '23

That's correct, DescendantID corresponds to a SubhaloID. Once you find the entry (index) in the tree of that "node" (whose SubhaloID equals the DescendantID you are searching for), you can also then just load the SubfindID of that node (i.e. index).

Pradyumna Sadhu
  • 1
  • 31 Jul '23

Please ignore this reply! I was using wrong offset files, it looks much better now. Apologies for spamming

Thank you again for the quick response, Dylan!
I am trying to obtain the orbits of all the subhalos which have infall times in 9.5 - 10 Gyr. In this regard, I was trying to see what the subhalo 143 at snapshot 79 was previously. I am obtaining a merger tree which does not even contain the snapshot 79 for some reason. Could you please help me in this regard? I apologize for the trouble

tng_question.png

  • Page 1 of 1