ATLAS Offline Software
Loading...
Searching...
No Matches
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
11from 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#-------------------------------------------------------------------------------
23def 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
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)