Skip to content
Snippets Groups Projects
Commit 3cbb4fb9 authored by Maarten Van Veghel's avatar Maarten Van Veghel Committed by Andre Gunther
Browse files

ensure sensible output in CellID for old files

parent 9e942025
No related branches found
No related tags found
1 merge request!4338Persistency for ChargedPID, BremInfo and GlobalChargedPID classes
......@@ -164,6 +164,13 @@ StatusCode ProtoParticlePacker::unpack( const PackedData& pproto, Data& proto, c
}
}
auto CellIDFromAdditionalInfo = []( auto v ) {
double ai = StandardPacker::fltPacked( v );
auto id = LHCb::Detector::Calo::CellID( ai >= 0. ? (unsigned)ai : 0u );
if ( !isValid( id ) ) id = LHCb::Detector::Calo::CellID{};
return id;
};
// if the proto is charged-like, unpack CaloChargedPID and BremInfo. If we are in old version without CaloChargedPID
// and BremInfo objects, create them from AdditionalInfo
if ( -1 != pproto.track ) {
......@@ -178,7 +185,7 @@ StatusCode ProtoParticlePacker::unpack( const PackedData& pproto, Data& proto, c
pid->setInEcal( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloChargedID:
pid->setClusterID( Detector::Calo::CellID( StandardPacker::fltPacked( v ) ) );
pid->setClusterID( CellIDFromAdditionalInfo( v ) );
break;
case LHCb::ProtoParticle::CaloTrMatch:
pid->setClusterMatch( StandardPacker::fltPacked( v ) );
......@@ -219,7 +226,7 @@ StatusCode ProtoParticlePacker::unpack( const PackedData& pproto, Data& proto, c
binfo->setInBrem( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloBremHypoID:
binfo->setBremHypoID( Detector::Calo::CellID( StandardPacker::fltPacked( v ) ) );
binfo->setBremHypoID( CellIDFromAdditionalInfo( v ) );
break;
case LHCb::ProtoParticle::CaloBremMatch:
binfo->setBremHypoMatch( StandardPacker::fltPacked( v ) );
......@@ -301,7 +308,7 @@ StatusCode ProtoParticlePacker::unpack( const PackedData& pproto, Data& proto, c
pid->setCaloNeutralE49( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloNeutralID:
pid->setCaloNeutralID( LHCb::Detector::Calo::CellID( StandardPacker::fltPacked( v ) ) );
pid->setCaloNeutralID( CellIDFromAdditionalInfo( v ) );
break;
case LHCb::ProtoParticle::CaloNeutralE19:
pid->setCaloNeutralE19( StandardPacker::fltPacked( v ) );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment