#include <OverlapRemovalToolLegacy.h>
Public Member Functions | |
OverlapRemovalTool (const std::string &name) | |
Create a proper constructor for Athena. | |
~OverlapRemovalTool () | |
Destructor. | |
Methods implementing the asg::IAsgTool interface | |
virtual StatusCode | initialize () override |
Initialize the tool. | |
Methods implementing the IOverlapRemovalTool interface | |
virtual StatusCode | removeOverlaps (const xAOD::ElectronContainer *electrons, const xAOD::MuonContainer *muons, const xAOD::JetContainer *jets, const xAOD::TauJetContainer *taus=0, const xAOD::PhotonContainer *photons=0) override |
virtual StatusCode | removeOverlaps (const xAOD::ElectronContainer *electrons, const xAOD::MuonContainer *muons, const xAOD::JetContainer *jets, const xAOD::TauJetContainer *taus, const xAOD::ElectronContainer *looseElectrons, const xAOD::MuonContainer *looseMuons, const xAOD::PhotonContainer *photons=0) override |
virtual StatusCode | removeEleJetOverlap (const xAOD::ElectronContainer &electrons, const xAOD::JetContainer &jets) override |
virtual StatusCode | removeMuonJetOverlap (const xAOD::MuonContainer &muons, const xAOD::JetContainer &jets) override |
Remove overlapping muons and jets. | |
virtual StatusCode | removeEleMuonOverlap (const xAOD::ElectronContainer &electrons, const xAOD::MuonContainer &muons) override |
virtual StatusCode | removeTauJetOverlap (const xAOD::TauJetContainer &taus, const xAOD::JetContainer &jets) override |
Remove jets overlapping with taus. | |
virtual StatusCode | removeTauEleOverlap (const xAOD::TauJetContainer &taus, const xAOD::ElectronContainer &electrons) override |
Remove overlapping taus and electrons. | |
virtual StatusCode | removeTauMuonOverlap (const xAOD::TauJetContainer &taus, const xAOD::MuonContainer &muons) override |
Remove overlapping taus and muons. | |
virtual StatusCode | removePhotonEleOverlap (const xAOD::PhotonContainer &photons, const xAOD::ElectronContainer &electrons) override |
Remove overlapping photons and electrons. | |
virtual StatusCode | removePhotonMuonOverlap (const xAOD::PhotonContainer &photons, const xAOD::MuonContainer &muons) override |
Remove overlapping photons and muons. | |
virtual StatusCode | removePhotonPhotonOverlap (const xAOD::PhotonContainer &photons) override |
Remove overlapping photons. | |
virtual StatusCode | removePhotonJetOverlap (const xAOD::PhotonContainer &photons, const xAOD::JetContainer &jets) override |
Remove overlapping photons and jets. | |
Protected Member Functions | |
StatusCode | isLooseEleForTauEleOR (const xAOD::Electron *electron, bool &pass) |
Loose electron ID for tau-electron OR. | |
StatusCode | isLooseMuonForTauMuonOR (const xAOD::Muon *muon, bool &pass) |
Loose muon ID for tau-muon OR. | |
bool | isBJet (const xAOD::Jet *jet) |
bool | objectOverlaps (const xAOD::IParticle *obj, const xAOD::IParticleContainer &container, double dR) |
Generic dR-based overlap check between one object and a container. | |
bool | objectsOverlap (const xAOD::IParticle *p1, const xAOD::IParticle *p2, double dRMax, double dRMin=0) |
Determine if objects overlap by a simple dR comparison. | |
StatusCode | addOverlapObjectLink (const xAOD::IParticle *p1, const xAOD::IParticle *p2) |
Decorate p1 with an overlap object link to p2. | |
double | deltaR2 (const xAOD::IParticle *p1, const xAOD::IParticle *p2) |
double | deltaR (const xAOD::IParticle *p1, const xAOD::IParticle *p2) |
deltaR = sqrt( deltaR2 ) | |
bool | isInputObject (const xAOD::IParticle *obj) |
Check if object is flagged as input for OR. | |
bool | isRejectedObject (const xAOD::IParticle *obj) |
Check if object has been rejected by decoration. | |
bool | isSurvivingObject (const xAOD::IParticle *obj) |
Check if object is surviving OR thus far. | |
void | setOverlapDecoration (const xAOD::IParticle *obj, bool result) |
Set output decoration on object, pass or fail. | |
void | setObjectPass (const xAOD::IParticle *obj) |
Shorthand way to set an object as pass. | |
void | setObjectFail (const xAOD::IParticle *obj) |
Shorthand way to set an object as fail. | |
bool | isDecorated (const xAOD::IParticleContainer &container) |
void | initializeDecorations (const xAOD::IParticleContainer &container) |
void | resetDecorations (const xAOD::IParticleContainer &container) |
Helper method for setting all objects as passing. | |
bool | checkTrackParticles (const xAOD::ElectronContainer &container) |
bool | checkSharesTrackDecoration (const xAOD::ElectronContainer &container) |
Check if input electron container is decorated with the flag for flag-running mode. | |
bool | sharesTrack (const xAOD::IParticle *obj) |
Check if electron shares track with a muon based on decoration. | |
StatusCode | setSharesTrackDecoration (const xAOD::IParticle *obj, bool sharesTrack) |
Set output decoration on electron indicating if it shares a track with a muon. | |
void | initializeSharesTrackDecoration (const xAOD::ElectronContainer &container) |
Set output decoration on all electrons also those not qualified for OR. Default is false. |
Overlap removal tool
This tool implements the harmonized object overlap removal recommendations from the harmonization study group 5, given in https://cds.cern.ch/record/1700874
This tool is deprecated and will no longer be supported. Please consider using the new OverlapRemovalTool in the ORUtils namespace.
OverlapRemovalTool::OverlapRemovalTool | ( | const std::string & | name | ) |
Create a proper constructor for Athena.
Constructor for standalone usage
bool OverlapRemovalTool::checkTrackParticles | ( | const xAOD::ElectronContainer & | container | ) | [protected] |
Following methods can be used to decorate an electron with an appropriate flag if it shares a track with a muon. It enables to rerun the full OR on skimmed/slimmed xAODs which do not contain the TrackParticleLinks anymore. The flag-writing and flag-running modes can be enabled via setProperty methods. Check if TrackParticleLinks are available in the input. Mainly needed if flag-running mode should be set automatically.
double OverlapRemovalTool::deltaR2 | ( | const xAOD::IParticle * | p1, | |
const xAOD::IParticle * | p2 | |||
) | [protected] |
Recommended calculation of overlap distance parameter, (delta R)^2. dR^2 = (y1-y2)^2 + (phi1-phi2)^2 Note this is calculated with the rapidity rather than the pseudorapidity. TLorentzVector::DeltaR uses the latter.
void OverlapRemovalTool::initializeDecorations | ( | const xAOD::IParticleContainer & | container | ) | [protected] |
Helper method for ensuring proper initialization of output decoration. This implementation takes advantage of the default initialization of the decoration value. So, 'overlaps' is by default false. This method will not change the decoration value if it exists.
bool OverlapRemovalTool::isBJet | ( | const xAOD::Jet * | jet | ) | [protected] |
Determine if jet is flagged as a b-jet TODO: Use StatusCode?
bool OverlapRemovalTool::isDecorated | ( | const xAOD::IParticleContainer & | container | ) | [protected] |
Check if output decoration has been applied to a container. Returns false if the container is empty. Output logic independent.
StatusCode OverlapRemovalTool::removeEleJetOverlap | ( | const xAOD::ElectronContainer & | electrons, | |
const xAOD::JetContainer & | jets | |||
) | [override, virtual] |
Remove overlapping electrons and jets This method will decorate both the electrons and jets according to both the e-jet and jet-e overlap removal prescriptions.
Implements IOverlapRemovalTool.
Reimplemented in ana::TopOverlapRemovalTool.
StatusCode OverlapRemovalTool::removeEleMuonOverlap | ( | const xAOD::ElectronContainer & | electrons, | |
const xAOD::MuonContainer & | muons | |||
) | [override, virtual] |
Remove overlapping electrons and muons TODO: make it possible to veto event based on this.
Implements IOverlapRemovalTool.
StatusCode OverlapRemovalTool::removeOverlaps | ( | const xAOD::ElectronContainer * | electrons, | |
const xAOD::MuonContainer * | muons, | |||
const xAOD::JetContainer * | jets, | |||
const xAOD::TauJetContainer * | taus, | |||
const xAOD::ElectronContainer * | looseElectrons, | |||
const xAOD::MuonContainer * | looseMuons, | |||
const xAOD::PhotonContainer * | photons = 0 | |||
) | [override, virtual] |
Top-level method for performing full overlap-removal. The individual OR methods will be called in the recommended order, and the considered objects will be decorated with the output result. Use this method form when you're using view-containers or subset containers in order to provide the loose electrons and muons for the tau-lep overlap removal.
Implements IOverlapRemovalTool.
StatusCode OverlapRemovalTool::removeOverlaps | ( | const xAOD::ElectronContainer * | electrons, | |
const xAOD::MuonContainer * | muons, | |||
const xAOD::JetContainer * | jets, | |||
const xAOD::TauJetContainer * | taus = 0 , |
|||
const xAOD::PhotonContainer * | photons = 0 | |||
) | [override, virtual] |
Top-level method for performing full overlap-removal. The individual OR methods will be called in the recommended order, and the considered objects will be decorated with the output result. Use this method form when the electron and muon containers are sufficiently loose for the tau-lep overlap removal.
Implements IOverlapRemovalTool.