ATLAS Offline Software
Loading...
Searching...
No Matches
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  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.

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(...) );
CHECK( ORUtils::recommendedTools(flags, toolBox) );
#define CHECK(...)
Evaluate an expression and check for errors.
A container and helper class for overlap removal tools.
Definition ToolBox.h:39
asg::AnaToolHandle< IOverlapTool > OverlapHandle_t
Definition ToolBox.h:46
OverlapHandle_t tauEleORT
Definition ToolBox.h:73
StatusCode setProperty(const std::string &property, const T2 &value)
set the given property of the tool.
StatusCode recommendedTools(const ORFlags &flags, ToolBox &toolBox)
Pre-configured standard recommended OR tools.

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 }
#define ORT_CHECK(ARG)