Skip to content
Snippets Groups Projects
Commit 7662d1fc authored by Christopher Rob Jones's avatar Christopher Rob Jones
Browse files

ChargedProtoParticleTupleAlg: Access Muon and Rich PID info direct from data objects

parent d91a4d30
No related branches found
No related tags found
2 merge requests!3788Draft: Update SciFi cluster monitoring,!3753RICH Add detector regions to pixel objects
......@@ -84,36 +84,33 @@ void ChargedProtoParticleTupleAlg::operator()( const LHCb::ProtoParticles& proto
if ( sc ) sc = tuple->column( "TrackCloneDist", track->info( LHCb::Track::AdditionalInfo::CloneDist, 9e10 ) );
// rich
LHCb::RichPID tmpRPID;
tmpRPID.setPidResultCode(
static_cast<int>( proto->info( LHCb::ProtoParticle::additionalInfo::RichPIDStatus, 0 ) ) );
if ( sc ) sc = tuple->column( "RichDLLe", proto->info( LHCb::ProtoParticle::additionalInfo::RichDLLe, 0 ) );
if ( sc ) sc = tuple->column( "RichDLLmu", proto->info( LHCb::ProtoParticle::additionalInfo::RichDLLmu, 0 ) );
if ( sc ) sc = tuple->column( "RichDLLpi", proto->info( LHCb::ProtoParticle::additionalInfo::RichDLLpi, 0 ) );
if ( sc ) sc = tuple->column( "RichDLLk", proto->info( LHCb::ProtoParticle::additionalInfo::RichDLLk, 0 ) );
if ( sc ) sc = tuple->column( "RichDLLp", proto->info( LHCb::ProtoParticle::additionalInfo::RichDLLp, 0 ) );
if ( sc ) sc = tuple->column( "RichDLLd", proto->info( LHCb::ProtoParticle::additionalInfo::RichDLLd, 0 ) );
if ( sc ) sc = tuple->column( "RichDLLbt", proto->info( LHCb::ProtoParticle::additionalInfo::RichDLLbt, 0 ) );
if ( sc ) sc = tuple->column( "RichUsedAero", tmpRPID.usedAerogel() );
if ( sc ) sc = tuple->column( "RichUsedR1Gas", tmpRPID.usedRich1Gas() );
if ( sc ) sc = tuple->column( "RichUsedR2Gas", tmpRPID.usedRich2Gas() );
if ( sc ) sc = tuple->column( "RichAboveElThres", tmpRPID.electronHypoAboveThres() );
if ( sc ) sc = tuple->column( "RichAboveMuThres", tmpRPID.muonHypoAboveThres() );
if ( sc ) sc = tuple->column( "RichAbovePiThres", tmpRPID.pionHypoAboveThres() );
if ( sc ) sc = tuple->column( "RichAboveKaThres", tmpRPID.kaonHypoAboveThres() );
if ( sc ) sc = tuple->column( "RichAbovePrThres", tmpRPID.protonHypoAboveThres() );
if ( sc ) sc = tuple->column( "RichAboveDeThres", tmpRPID.deuteronHypoAboveThres() );
if ( sc ) sc = tuple->column( "RichBestPID", (int)tmpRPID.bestParticleID() );
const auto rPID = proto->richPID();
if ( sc ) sc = tuple->column( "RichDLLe", ( rPID ? rPID->particleDeltaLL( Rich::Electron ) : 0 ) );
if ( sc ) sc = tuple->column( "RichDLLmu", ( rPID ? rPID->particleDeltaLL( Rich::Muon ) : 0 ) );
if ( sc ) sc = tuple->column( "RichDLLpi", ( rPID ? rPID->particleDeltaLL( Rich::Pion ) : 0 ) );
if ( sc ) sc = tuple->column( "RichDLLk", ( rPID ? rPID->particleDeltaLL( Rich::Kaon ) : 0 ) );
if ( sc ) sc = tuple->column( "RichDLLp", ( rPID ? rPID->particleDeltaLL( Rich::Proton ) : 0 ) );
if ( sc ) sc = tuple->column( "RichDLLd", ( rPID ? rPID->particleDeltaLL( Rich::Deuteron ) : 0 ) );
if ( sc ) sc = tuple->column( "RichDLLbt", ( rPID ? rPID->particleDeltaLL( Rich::BelowThreshold ) : 0 ) );
if ( sc ) sc = tuple->column( "RichUsedAero", ( rPID ? rPID->usedAerogel() : false ) );
if ( sc ) sc = tuple->column( "RichUsedR1Gas", ( rPID ? rPID->usedRich1Gas() : false ) );
if ( sc ) sc = tuple->column( "RichUsedR2Gas", ( rPID ? rPID->usedRich2Gas() : false ) );
if ( sc ) sc = tuple->column( "RichAboveElThres", ( rPID ? rPID->electronHypoAboveThres() : false ) );
if ( sc ) sc = tuple->column( "RichAboveMuThres", ( rPID ? rPID->muonHypoAboveThres() : false ) );
if ( sc ) sc = tuple->column( "RichAbovePiThres", ( rPID ? rPID->pionHypoAboveThres() : false ) );
if ( sc ) sc = tuple->column( "RichAboveKaThres", ( rPID ? rPID->kaonHypoAboveThres() : false ) );
if ( sc ) sc = tuple->column( "RichAbovePrThres", ( rPID ? rPID->protonHypoAboveThres() : false ) );
if ( sc ) sc = tuple->column( "RichAboveDeThres", ( rPID ? rPID->deuteronHypoAboveThres() : false ) );
if ( sc ) sc = tuple->column( "RichBestPID", ( rPID ? (int)rPID->bestParticleID() : -1 ) );
// muon
LHCb::MuonPID tmpMPID;
tmpMPID.setStatus( static_cast<int>( proto->info( LHCb::ProtoParticle::additionalInfo::MuonPIDStatus, 0 ) ) );
if ( sc ) sc = tuple->column( "MuonBkgLL", proto->info( LHCb::ProtoParticle::additionalInfo::MuonBkgLL, 0 ) );
if ( sc ) sc = tuple->column( "MuonMuLL", proto->info( LHCb::ProtoParticle::additionalInfo::MuonMuLL, 0 ) );
if ( sc ) sc = tuple->column( "MuonNShared", proto->info( LHCb::ProtoParticle::additionalInfo::MuonNShared, 0 ) );
if ( sc ) sc = tuple->column( "MuonIsLooseMuon", tmpMPID.IsMuonLoose() );
if ( sc ) sc = tuple->column( "MuonIsMuon", tmpMPID.IsMuon() );
if ( sc ) sc = tuple->column( "MuonInAcc", proto->info( LHCb::ProtoParticle::additionalInfo::InAccMuon, false ) );
const auto mPID = proto->muonPID();
if ( sc ) sc = tuple->column( "MuonBkgLL", ( mPID ? mPID->MuonLLBg() : 0 ) );
if ( sc ) sc = tuple->column( "MuonMuLL", ( mPID ? mPID->MuonLLMu() : 0 ) );
if ( sc ) sc = tuple->column( "MuonNShared", ( mPID ? mPID->nShared() : 0 ) );
if ( sc ) sc = tuple->column( "MuonIsLooseMuon", ( mPID ? mPID->IsMuonLoose() : false ) );
if ( sc ) sc = tuple->column( "MuonIsMuon", ( mPID ? mPID->IsMuon() : false ) );
if ( sc ) sc = tuple->column( "MuonInAcc", ( mPID ? mPID->InAcceptance() : false ) );
// calo
if ( sc ) sc = tuple->column( "InAccSpd", proto->info( LHCb::ProtoParticle::additionalInfo::InAccSpd, false ) );
......
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