4#ifndef MCTRUTHCLASSIFIER_IMCTRUTHCLASSIFIER_H
5#define MCTRUTHCLASSIFIER_IMCTRUTHCLASSIFIER_H
21#include <unordered_map>
38#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
80 std::vector<std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>>
egPartClas;
113 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
117 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
121#ifndef GENERATIONBASE
124 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
127 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
130 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
133 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
136 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
139 virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
a link optimized in size for a GenParticle in a McEventCollection
virtual ~IMCTruthClassifier()=default
Virtual destructor.
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleTruthClassifier(const xAOD::TrackParticle *, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleTruthClassifier(const xAOD::Muon *, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleTruthClassifier(const xAOD::Electron *, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual const xAOD::TruthParticle * getGenPart(const xAOD::TrackParticle *, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleTruthClassifier(const xAOD::CaloCluster *, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleTruthClassifier(const xAOD::Jet *, bool DR, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleTruthClassifier(const xAOD::TruthParticle *, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleTruthClassifier(const xAOD::Photon *, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual const xAOD::TruthParticle * egammaClusMatch(const xAOD::CaloCluster *, bool, MCTruthPartClassifier::Info *info=nullptr) const =0
virtual std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > particleHepMCTruthClassifier(const HepMcParticleLink &theLink, MCTruthPartClassifier::Info *info=nullptr) const =0
std::vector< MCTruthPartClassifier::ParticleType > cnvPhotPartType
std::vector< MCTruthPartClassifier::ParticleOrigin > cnvPhotPartOrig
Info(const EventContext &ctx)
void resetMotherProperties()
std::vector< const xAOD::TruthParticle * > egPartPtr
std::vector< const xAOD::TrackParticle * > cnvPhotTrkPtr
void setMotherProperties(const xAOD::TruthParticle *from)
const xAOD::TruthParticle * Mother() const
std::vector< const xAOD::TruthParticle * > cnvPhotTrkToTruthPart
const EventContext & eventContext
std::vector< std::pair< MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin > > egPartClas
const xAOD::TruthParticle * genPart
const xAOD::TruthParticle * PhotonMother() const
MCTruthPartClassifier::ParticleOutCome particleOutCome
std::vector< float > egPartdR
const xAOD::TruthParticle * mother
const xAOD::TruthParticle * photonMother
=============================================================================
Jet_v1 Jet
Definition of the current "jet version".
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TruthParticle_v1 TruthParticle
Typedef to implementation.
Muon_v1 Muon
Reference the current persistent version:
Photon_v1 Photon
Definition of the current "egamma version".
Electron_v1 Electron
Definition of the current "egamma version".