ATLAS Offline Software
PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2 
3 """ AssociationUtils/config.py
4  This file contains the configuration helper code for the overlap removal
5  tools in Athena. It is a work in progress. It may in fact be possible to
6  utilize some of this code also in RootCore with some PyROOT magic, but for
7  now you should just use the C++ helper code in OverlapRemovalInit if you're
8  working in RootCore.
9 """
10 
11 from AssociationUtils.AssociationUtilsConf import ( # noqa: F401
12  ORUtils__OverlapRemovalTool as OverlapRemovalTool,
13  ORUtils__DeltaROverlapTool as DeltaROverlapTool,
14  ORUtils__EleEleOverlapTool as EleEleOverlapTool,
15  ORUtils__EleJetOverlapTool as EleJetOverlapTool,
16  ORUtils__EleMuSharedTrkOverlapTool as EleMuSharedTrkOverlapTool,
17  ORUtils__MuJetOverlapTool as MuJetOverlapTool,
18  ORUtils__TauLooseEleOverlapTool as TauLooseEleOverlapTool,
19  ORUtils__TauLooseMuOverlapTool as TauLooseMuOverlapTool
20 )
21 
22 #-------------------------------------------------------------------------------
23 def recommended_tools(masterName='OverlapRemovalTool',
24  inputLabel='selected', outputLabel='overlaps',
25  bJetLabel='', maxElePtForBJetAwareOR = 100. * 1000,
26  boostedLeptons=False,
27  outputPassValue=False,
28  linkOverlapObjects=False,
29  doEleEleOR=False,
30  doElectrons=True, doMuons=True, doJets=True,
31  doTaus=True, doPhotons=True, doFatJets=False,
32  **kwargs):
33  """
34  Provides the pre-configured overlap removal recommendations.
35  All overlap tools will be (private) added to the master tool
36  which is then returned by this function.
37 
38  Arguments:
39  masterName - set the name of the master tool.
40  inputLabel - set the InputLabel property for all tools.
41  outputLabel - set the OutputLabel property for all tools.
42  bJetLabel - set user bjet decoration name. Leave blank to
43  disable btag-aware overlap removal.
44  maxElePtForBJetAwareOR - set the maximum electron pT for which b-tag
45  aware overlap removal is done. Set to negative
46  value to use for all electrons.
47  boostedLeptons - enable sliding dR cones for boosted lepton
48  analyses.
49  outputPassValue - set the OutputPassValue property for all tools
50  which determines whether passing objects are
51  marked with true or false.
52  linkOverlapObjects - enable ElementLinks to overlap objects.
53  doEleEleOR - enable electron-electron overlap removal.
54  doXXXX - these flags enable/disable object types to
55  configure tools for: doElectrons, doMuons,
56  doJets, doTaus, doPhotons, doFatJets.
57  kwargs - additional properties to be applied to all tools.
58  For example: OutputLevel.
59  """
60 
61  # These properties can be applied to all tools
62  common_args = {
63  'InputLabel' : inputLabel,
64  'OutputLabel' : outputLabel,
65  'OutputPassValue' : outputPassValue
66  }
67  # Extend with additional user-defined global properties
68  common_args.update(kwargs)
69 
70  # Configure the master tool
71  orTool = OverlapRemovalTool(masterName, **common_args)
72 
73  # Overlap tools share an additional common property for object linking
74  common_args['LinkOverlapObjects'] = linkOverlapObjects
75 
76  # Electron-electron
77  if doElectrons and doEleEleOR:
78  orTool.EleEleORT = EleEleOverlapTool('EleEleORT', **common_args)
79 
80  # Electron-muon
81  if doElectrons and doMuons:
82  orTool.EleMuORT = EleMuSharedTrkOverlapTool('EleMuORT', **common_args)
83  # Electron-jet
84  if doElectrons and doJets:
85  orTool.EleJetORT = EleJetOverlapTool('EleJetORT',
86  BJetLabel=bJetLabel,
87  MaxElePtForBJetAwareOR=maxElePtForBJetAwareOR,
88  UseSlidingDR=boostedLeptons,
89  **common_args)
90  # Muon-jet
91  if doMuons and doJets:
92  orTool.MuJetORT = MuJetOverlapTool('MuJetORT',
93  BJetLabel=bJetLabel,
94  UseSlidingDR=boostedLeptons,
95  **common_args)
96 
97  # Tau-electron
98  if doTaus and doElectrons:
99  orTool.TauEleORT = DeltaROverlapTool('TauEleORT', DR=0.2, **common_args)
100  # Tau-muon
101  if doTaus and doMuons:
102  orTool.TauMuORT = DeltaROverlapTool('TauMuORT', DR=0.2, **common_args)
103  # Tau-jet
104  if doTaus and doJets:
105  orTool.TauJetORT = DeltaROverlapTool('TauJetORT', DR=0.2, **common_args)
106 
107  # Photon-electron
108  if doPhotons and doElectrons:
109  orTool.PhoEleORT = DeltaROverlapTool('PhoEleORT', **common_args)
110  # Photon-muon
111  if doPhotons and doMuons:
112  orTool.PhoMuORT = DeltaROverlapTool('PhoMuORT', **common_args)
113  # Photon-jet
114  if doPhotons and doJets:
115  orTool.PhoJetORT = DeltaROverlapTool('PhoJetORT', **common_args)
116 
117  # Electron-fatjet
118  if doElectrons and doFatJets:
119  orTool.EleFatJetORT = DeltaROverlapTool('EleFatJetORT', DR=1.0, **common_args)
120  # Jet-fatjet
121  if doJets and doFatJets:
122  orTool.JetFatJetORT = DeltaROverlapTool('JetFatJetORT', DR=1.0, **common_args)
123 
124  return orTool
config.recommended_tools
def recommended_tools(masterName='OverlapRemovalTool', inputLabel='selected', outputLabel='overlaps', bJetLabel='', maxElePtForBJetAwareOR=100. *1000, boostedLeptons=False, outputPassValue=False, linkOverlapObjects=False, doEleEleOR=False, doElectrons=True, doMuons=True, doJets=True, doTaus=True, doPhotons=True, doFatJets=False, **kwargs)
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:23