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

fix additionalInfo condition for NeutralPID as well

parent 8d0b6d73
No related branches found
No related tags found
1 merge request!4338Persistency for ChargedPID, BremInfo and GlobalChargedPID classes
......@@ -294,8 +294,9 @@ StatusCode ProtoParticlePacker::unpack( const PackedData& pproto, Data& proto, c
// if the proto is neutral-like and we are in old version without NeutralPID object, create it from AdditionalInfo
if ( ( ver < 2 ) && ( -1 == pproto.track ) ) {
auto pid = std::make_unique<NeutralPID>();
proto.setNeutralPID( pid.get() );
// only add if relevent info there
bool add_pid = false;
auto pid = std::make_unique<NeutralPID>();
for ( const auto& [k, v] : with_carry( pprotos.extras(), pproto.firstExtra, pproto.lastExtra ) ) {
switch ( k ) {
case LHCb::ProtoParticle::CaloTrMatch:
......@@ -308,18 +309,23 @@ StatusCode ProtoParticlePacker::unpack( const PackedData& pproto, Data& proto, c
pid->setClusterMass( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloNeutralEcal:
add_pid |= true;
pid->setCaloNeutralEcal( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloNeutralHcal2Ecal:
add_pid |= true;
pid->setCaloNeutralHcal2Ecal( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloNeutralE49:
add_pid |= true;
pid->setCaloNeutralE49( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloNeutralID:
add_pid |= true;
pid->setCaloNeutralID( CellIDFromAdditionalInfo( v ) );
break;
case LHCb::ProtoParticle::CaloNeutralE19:
add_pid |= true;
pid->setCaloNeutralE19( StandardPacker::fltPacked( v ) );
break;
case LHCb::ProtoParticle::CaloClusterCode:
......@@ -339,7 +345,10 @@ StatusCode ProtoParticlePacker::unpack( const PackedData& pproto, Data& proto, c
break;
}
}
npids.insert( pid.release() );
if ( add_pid ) {
proto.setNeutralPID( pid.get() );
npids.insert( pid.release() );
}
} else if ( -1 != pproto.neutralPID ) {
if ( StandardPacker::hintAndKey64( pproto.neutralPID, &pprotos, &protos, hintID, key ) ) {
proto.setNeutralPID( {&protos, hintID, key} );
......
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