GlobalSim::NoBase Node1 GlobalSim::NoBase   + allFields() Node2 GlobalSim::BitSpec < GenericTOB, 64 > + width + field() + numFields() + forEachField() + json() + packFields() # makeFields() # allFields() # validateFields() - validateFieldList() - validateField() - checkOverlap() Node1->Node2 Node6 GlobalSim::BitSpec < topoc_pu_type, 64 > + width + field() + numFields() + forEachField() + json() + packFields() # makeFields() # allFields() # validateFields() - validateFieldList() - validateField() - checkOverlap() Node1->Node6 Node8 GlobalSim::BitSpec < Derived, N, Base > + width + field() + numFields() + forEachField() + json() + packFields() # makeFields() # allFields() # validateFields() - validateFieldList() - validateField() - checkOverlap() Node1->Node8 Node3 GlobalSim::GenericTOB + ptt + eta + phi + DECLARE_FIELDS() Node2->Node3 Node4 GlobalSim::BitSpec < JET1Jet, 128, GenericTOB > + width + field() + numFields() + forEachField() + json() + packFields() # makeFields() # allFields() # validateFields() - validateFieldList() - validateField() - checkOverlap() Node3->Node4 Node5 GlobalSim::JET1Jet + flag_et_overflow + flag_error + flag_next_tob_same_et + flag_truncate + ring_four_tobs + ring_three_tobs + ring_two_tobs + ring_one_tobs + total_tobs + ring_four_ptt + ring_three_ptt + ring_two_ptt + ring_one_ptt + ring_zero_ptt + DECLARE_FIELDS() Node4->Node5 Node7 GlobalSim::topoc_pu_type + ptt + eta + phi + flag_et_overflow + flag_error + flag_next_tob_same_et + flag_truncate - s_ET_UNIT + DECLARE_FIELDS() - et_encoder() - et_decoder() Node6->Node7