Skip to content

Fix MMPrepDataContainerCnv_p1 to correctly read/write all MMPrepData objects (also those for multilayer 2)

Nicolas Koehler requested to merge nkoehler/athena:debugMMml into 21.3

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

Merge request reports