OverlapRemovalTool Class Reference

#include <OverlapRemovalToolLegacy.h>

Inheritance diagram for OverlapRemovalTool:
IOverlapRemovalTool asg::AsgTool asg::IAsgTool asg::IAsgTool ana::TopOverlapRemovalTool

List of all members.

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.

Detailed Description

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.

Author:
Steve Farrell <steven.farrell@cern.ch>

Constructor & Destructor Documentation

OverlapRemovalTool::OverlapRemovalTool ( const std::string &  name  ) 

Create a proper constructor for Athena.

Constructor for standalone usage


Member Function Documentation

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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 1 Dec 2017 for RootCore Packages by  doxygen 1.6.1