TTree split level and custom classes for SetBranchAddress

Check out this related thread too:

you can face issues with alignment/padding, which in your example are further complicated by variable-size vectors, so it’s safer/easier to split the variables into individual branches.