Fix MMPrepDataContainerCnv_p1 to correctly read/write all MMPrepData objects (also those for multilayer 2)
Hi,
this MR changes the way MMPrepDataContainerCnv_p1
write/reads the MMPrepData objects. The Muon::MMPrepDataContainer_p1->m_prdDeltaId
vector stored the difference between cluster identifier and collection (module) identifier. However, this difference became larger than the maximum of unsigned short which is the data type of m_prdDeltaId
(i.e. for multilayer=2 clusters). This resulted in the Diff is greater than max size of diff permitted!!!
warning message printed by MMPrepDataContainerCnv_p1
.
Now, we encode multilayer, gasGap and channel in the unsigned short bits in transToPers
and read it back in persToTrans
. So we can encode all possible cluster identifiers and have also MMPrepData for multilayer=2 when reading ESDs.
Adding @rosati, @pscholer and @ckitsaki who might be interested in this fix.
Note: All currently existing Run 3 ESDs made with the previous version of MMPrepDataContainerCnv_p1
(only validation samples) need to be redone (we will do this in muon software centrally).
Best, Nico