Object type map in new persistency model
In the new persistency model, unpacking needs to know the object type for a given location. These are registered during moore run creating output files. The current map looks like:
def classid_map(): classID_map = { "CaloClusters": 1541, "CaloDigits": 1542, "CaloAdcs": 1543, "Tracks": 1550, "CaloHypos": 1551, "ProtoParticles": 1552, "PVs": 1553, "TwoProngVertices": 1554, "WeightsVectors": 1555, "P2VRelations": 1560, "RichPIDs": 1561, "PP2MCPRelations": 1562, "MuonPIDs": 1571, "Particles": 1581, "Vertices": 1582, "FlavourTags": 1583, "P2InfoRelations": 1584, "P2IntRelations": 1591, #this has same class id as P2Vrelations, so add a 100 to it "P2MCPRelations": 1660, }
These numbers correspond to packed object class IDs. In principle they should correspond to unpacked object class IDs. In case of SOA classes, there won't be any packed class.
We would like to change this map to be consistent and also to avoid cases where packed representation is same for two object types (as noted above for relations).
Unfortunately this will require a new LHCb release and make the last one obsolete as this change is backward incompatible.