Now is a good time to reflect a bit on the FCC data model used so far. There is an upcoming meeting with other future experiments where we can report our experiences and get some new Ideas. Since this really concerns everyone using the software, it will be good to get input from as many people as possible, both for the technical implementation (PODIO) as for the conceptual model (fcc-edm)
I’ll start:
- Sometimes there is a bit of a trade-off between usability and efficiency. In principle, the “charge” member of the fcc particles is redundant, the charge information is contained in the PdgId of the particle, and can be converted with HepPDT. The code to do that looks like this:
/// lookup charge in particle properties
HepPDT::ParticleID particleID(2203);
std::cout << particleID.charge() << std::endl;
So I feel the charge could actually be removed, if there is some method to access it that is easy to type in a call to TTree::Draw()
[edit] There is also the issue that the type of charge is an integer
, which means it cannot be used for fractional charges, for example partons in the output of event generators. I think float
would be more appropriate