ATLAS Offline Software
Classes | Functions
ORUtils Namespace Reference

Classes

class  AltMuJetOverlapTool
 Implements mu-jet OR optimized for high-pt muons in boosted and highly radiative (jetty) topologies. More...
 
class  BaseOverlapTool
 Common base class tool for overlap tools. More...
 
class  BJetHelper
 Helper class for b-jet decorations. More...
 
class  DeltaRMatcher
 Encapsulates the delta-R matching strategy. More...
 
class  DeltaROverlapTool
 A simple overlap finder that uses a dR match. More...
 
class  EleEleOverlapTool
 A tool implementing the recommended ele-ele overlap removal. More...
 
class  EleJetOverlapTool
 A tool implementing the recommended ele-jet overlap removal. More...
 
class  EleMuSharedTrkOverlapTool
 Tool for removing overlaps between electrons and muons that share a track or are DR matched. More...
 
class  IOverlapRemovalTool
 Interface for the overlap removal tool. More...
 
class  IOverlapTool
 Interface class for overlap removal tools. More...
 
class  IParticleAssociator
 Interface for a class which checks for a match between IParticles. More...
 
class  MuJetGhostDRMatcher
 Matches a muon to a jet via ghost association or a delta-R. More...
 
class  MuJetOverlapTool
 A tool implementing the recommended mu-jet overlap removal. More...
 
class  ObjLinkOverlapTool
 A generic tool which finds overlaps using ElementLinks. More...
 
struct  ORFlags
 A struct of global config options used to simplify the config helper interface. More...
 
class  OverlapDecorationHelper
 Encapsulates the code needed to access and set overlap-related decorations. More...
 
class  OverlapLinkHelper
 Helper class for setting links between overlapping objects. More...
 
class  OverlapRemovalTool
 top-level tool for performing overlap removal. More...
 
class  SlidingDeltaRMatcher
 DR matching strategy where cone decreases with pt. More...
 
class  TauAntiTauJetOverlapTool
 A tool implementing a specialized tau-jet overlap removal. More...
 
class  TauJetOverlapTool
 A tool implementing the recommended tau-jet overlap removal. More...
 
class  TauLooseEleOverlapTool
 A tool implementing the recommended tau-electron overlap removal. More...
 
class  TauLooseMuOverlapTool
 A tool implementing the recommended tau-muon overlap removal. More...
 
class  ToolBox
 A container and helper class for overlap removal tools. More...
 

Functions

StatusCode recommendedTools (const ORFlags &flags, ToolBox &toolBox)
 Pre-configured standard recommended OR tools. More...
 

Function Documentation

◆ recommendedTools()

StatusCode ORUtils::recommendedTools ( const ORFlags flags,
ToolBox toolBox 
)

Pre-configured standard recommended OR tools.

This function provides the tool configuration corresponding to the updated overlap removal recommendations as summarized in this ASG meeting by Will Buttinger: https://indico.cern.ch/event/457238/

The tools are returned uninitialized; the user can override properties and initialize all the tools with a call to ToolBox::initialize.

This function uses the ORFlags object to communicate common configuration options and the ToolBox design based on AnaToolHandle.

Users can replace overlap tools with their own configured versions by setting ToolBox handles prior to calling this method. Right now the way to do that would be with something like this:

toolBox.tauEleORT =
ORUtils::ToolBox::OverlapHandle_t("ORUtils::DeltaROverlapTool/TauEleORT");
CHECK( toolBox.tauEleORT.setProperty(...) );

Note that the config function will still set the 'global' properties on your custom tool (e.g. input label). I'm assuming this is the behavior users would want.

Parameters
[in]flagsAn ORFlags object containing config options.
[out]toolBoxContainer to be filled with tools.

Definition at line 50 of file OverlapRemovalInit.cxx.

51  {
52  // Master tool
53  tbox.masterTool.setTypeAndName("ORUtils::OverlapRemovalTool/" +
54  flags.masterName);
55 
56  // El-el
57  if(flags.doElectrons && flags.doEleEleOR && tbox.eleEleORT.empty()) {
58  tbox.eleEleORT.setTypeAndName("ORUtils::EleEleOverlapTool/" +
59  flags.masterName + ".EleEleORT");
60  }
61 
62  // El-mu
63  if(flags.doElectrons && flags.doMuons && tbox.eleMuORT.empty()) {
64  tbox.eleMuORT.setTypeAndName("ORUtils::EleMuSharedTrkOverlapTool/" +
65  flags.masterName + ".EleMuORT");
66  }
67  // El-jet
68  if(flags.doElectrons && flags.doJets && tbox.eleJetORT.empty()) {
69  tbox.eleJetORT.setTypeAndName("ORUtils::EleJetOverlapTool/" +
70  flags.masterName + ".EleJetORT");
71  ORT_CHECK( tbox.eleJetORT.setProperty("BJetLabel", flags.bJetLabel) );
72  ORT_CHECK( tbox.eleJetORT.setProperty("MaxElePtForBJetAwareOR", flags.maxElePtForBJetAwareOR) );
73  ORT_CHECK( tbox.eleJetORT.setProperty("UseSlidingDR", flags.boostedLeptons) );
74  }
75  // Mu-jet
76  if(flags.doMuons && flags.doJets && tbox.muJetORT.empty()) {
77  tbox.muJetORT.setTypeAndName("ORUtils::MuJetOverlapTool/" +
78  flags.masterName + ".MuJetORT");
79  ORT_CHECK( tbox.muJetORT.setProperty("BJetLabel", flags.bJetLabel) );
80  ORT_CHECK( tbox.muJetORT.setProperty("UseSlidingDR", flags.boostedLeptons) );
81  }
82 
83  // Tau-ele overlap tool
84  if(flags.doTaus && flags.doElectrons && tbox.tauEleORT.empty()) {
85  tbox.tauEleORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
86  flags.masterName + ".TauEleORT");
87  ORT_CHECK( tbox.tauEleORT.setProperty("DR", 0.2) );
88  }
89  // Tau-mu overlap tool
90  if(flags.doTaus && flags.doMuons && tbox.tauMuORT.empty()) {
91  tbox.tauMuORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
92  flags.masterName + ".TauMuORT");
93  ORT_CHECK( tbox.tauMuORT.setProperty("DR", 0.2) );
94  }
95  // Tau-jet overlap tool
96  if(flags.doTaus && flags.doJets && tbox.tauJetORT.empty()) {
97  tbox.tauJetORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
98  flags.masterName + ".TauJetORT");
99  ORT_CHECK( tbox.tauJetORT.setProperty("DR", 0.2) );
100  }
101 
102  // Pho-ele overlap tool
103  if(flags.doPhotons && flags.doElectrons && tbox.phoEleORT.empty()) {
104  tbox.phoEleORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
105  flags.masterName + ".PhoEleORT");
106  }
107  // Pho-mu overlap tool
108  if(flags.doPhotons && flags.doMuons && tbox.phoMuORT.empty()) {
109  tbox.phoMuORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
110  flags.masterName + ".PhoMuORT");
111  }
112  // Pho-jet overlap tool
113  if(flags.doPhotons && flags.doJets && tbox.phoJetORT.empty()) {
114  tbox.phoJetORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
115  flags.masterName + ".PhoJetORT");
116  }
117 
118  // Ele-fatjet overlap tool
119  if(flags.doElectrons && flags.doFatJets && tbox.eleFatJetORT.empty()) {
120  tbox.eleFatJetORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
121  flags.masterName + ".EleFatJetORT");
122  ORT_CHECK( tbox.eleFatJetORT.setProperty("DR", 1.0) );
123  }
124 
125  // Jet-fatjet overlap tool
126  if(flags.doJets && flags.doFatJets && tbox.jetFatJetORT.empty()) {
127  tbox.jetFatJetORT.setTypeAndName("ORUtils::DeltaROverlapTool/" +
128  flags.masterName + ".JetFatJetORT");
129  ORT_CHECK( tbox.jetFatJetORT.setProperty("DR", 1.0) );
130  }
131 
132  // Overlap tool common properties
133  for(auto hptr : tbox.getOverlapTools()) {
134  ORT_CHECK( hptr->setProperty("LinkOverlapObjects", flags.linkOverlapObjects) );
135  }
136 
137  // Global common properties
138  ORT_CHECK( tbox.setGlobalProperty("InputLabel", flags.inputLabel) );
139  ORT_CHECK( tbox.setGlobalProperty("OutputLabel", flags.outputLabel) );
140  ORT_CHECK( tbox.setGlobalProperty("OutputPassValue", flags.outputPassValue) );
141 
142  return StatusCode::SUCCESS;
143  }
AthenaPoolTestRead.flags
flags
Definition: AthenaPoolTestRead.py:8
ORUtils::recommendedTools
StatusCode recommendedTools(const ORFlags &flags, ToolBox &toolBox)
Pre-configured standard recommended OR tools.
Definition: OverlapRemovalInit.cxx:50
ORT_CHECK
#define ORT_CHECK(ARG)
Definition: OverlapRemovalInit.cxx:22
asg::AnaToolHandle::setProperty
StatusCode setProperty(const std::string &property, const T2 &value)
set the given property of the tool.
ORUtils::ToolBox::tauEleORT
OverlapHandle_t tauEleORT
Definition: ToolBox.h:73
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
ORUtils::ToolBox
A container and helper class for overlap removal tools.
Definition: ToolBox.h:39
ORUtils::ToolBox::OverlapHandle_t
asg::AnaToolHandle< IOverlapTool > OverlapHandle_t
Definition: ToolBox.h:46