ATLAS Offline Software
Loading...
Searching...
No Matches
METMakerConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentFactory import CompFactory
4
5def getMETMaker(jetCollection, name="METMaker", **kwargs):
6 kwargs.setdefault("DoPFlow", False)
7 kwargs.setdefault("JetSelection", "Tight")
8
9 if kwargs["JetSelection"]=="Tier0":
10 kwargs.setdefault("JvtSelTool", None)
11 elif kwargs["DoPFlow"]:
12 kwargs.setdefault("JvtSelTool", CompFactory.CP.NNJvtSelectionTool(
13 name="JvtSelTool",
14 JetContainer=jetCollection,
15 JvtMomentName="NNJvt",
16 WorkingPoint="FixedEffPt",
17 MaxPtForJvt=60e3))
18 else:
19 kwargs.setdefault("JvtSelTool", CompFactory.CP.JvtSelectionTool(
20 name="JvtSelTool",
21 JetContainer=jetCollection,
22 JvtMomentName="Jvt",
23 WorkingPoint=kwargs["JetSelection"],
24 MaxPtForJvt=60e3,
25 IsPFlow=False))
26
27 return CompFactory.getComp("met::METMaker")(name, **kwargs)
28
29def getMuonSelectionTool(name="MuonSelectionTool_METMakerAlg"):
30 muonSel = CompFactory.getComp("CP::MuonSelectionTool")(name,
31 MuQuality=1, # Medium
32 TurnOffMomCorr= True,
33 MaxEta=2.4,
34 AllowSettingGeometryOnTheFly = True)
35 return muonSel
36
37def getEleSelLikelihood(name="EleSelLikelihood_METMakerAlg"):
38 elecSelLH = CompFactory.AsgElectronLikelihoodTool(name,
39 WorkingPoint="MediumLHElectron")
40 return elecSelLH
41
42def getPhotonSelIsEM(name="PhotonSelIsEM_METMakerAlg"):
43 photonSelIsEM = CompFactory.AsgPhotonIsEMSelector(name,
44 WorkingPoint="TightPhoton")
45 return photonSelIsEM
46
47def getTauSelectionTool(name="TauSelectionTool_METMakerAlg"):
48 from ROOT import TauAnalysisTools
49 SelectionCuts = TauAnalysisTools.SelectionCuts
50
51 tauSel = CompFactory.getComp("TauAnalysisTools::TauSelectionTool")("TauSelectionTool_METMakerAlg",
52 ConfigPath = "",
53 SelectionCuts = int(SelectionCuts.CutPt | SelectionCuts.CutAbsEta | SelectionCuts.CutAbsCharge | SelectionCuts.CutNTrack | SelectionCuts.CutJetIDWP),
54 PtMin = 20.0,
55 JetIDWP = TauAnalysisTools.JETIDRNNMEDIUM,
56 NTracks = (1, 3),
57 AbsCharge = 1,
58 AbsEtaRegion = (0.0, 1.37, 1.52, 2.5))
59 return tauSel
60
61def getMETMakerAlg(suffix,jetSelection="Tier0",jetColl="",**kwargs):
62
63 print ("Generate METMaker and METMakerAlg for METAssoc_"+suffix)
64
65 doPFlow = 'PFlow' in suffix
66 doTruth = suffix.startswith('Truth')
67 if jetColl=="":
68 jetColl = suffix+'Jets'
69 if doTruth:
70 jetColl = suffix.split('_')[1]+'Jets'
71
72 metMaker = getMETMaker(jetCollection=jetColl,
73 name='METMaker_'+suffix,
74 DoPFlow=doPFlow,
75 DoSoftTruth=doTruth,
76 JetSelection=jetSelection)
77
78 muonSel = getMuonSelectionTool()
79
80 elecSelLH = getEleSelLikelihood()
81
82 photonSelIsEM = getPhotonSelIsEM()
83
84 tauSel = getTauSelectionTool()
85
86 makerAlg = CompFactory.getComp("met::METMakerAlg")('METMakerAlg_'+suffix,
87 METMapName='METAssoc_'+suffix,
88 METCoreName='MET_Core_'+suffix,
89 METName='MET_Reference_'+suffix,
90 InputJets=jetColl,
91 Maker=metMaker,
92 MuonSelectionTool=muonSel,
93 ElectronLHSelectionTool=elecSelLH,
94 PhotonIsEMSelectionTool=photonSelIsEM,
95 TauSelectionTool=tauSel,
96 **kwargs
97 )
98 return makerAlg
99
100
101def main():
102
103 # Config flags steer the job at various levels
104 from AthenaConfiguration.AllConfigFlags import initConfigFlags
105 flags = initConfigFlags()
106 flags.fillFromArgs()
107 flags.lock()
108
109 # Get a ComponentAccumulator setting up the fundamental Athena job
110 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
111 cfg=MainServicesCfg(flags)
112
113 # Add the components for reading in pool files
114 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
115 cfg.merge(PoolReadCfg(flags))
116
117 from AthenaCommon.Constants import VERBOSE
118 cfg.addEventAlgo(
120 suffix="AntiKt4EMPFlow",
121 jetSelection="Tight",
122 OutputLevel=VERBOSE
123 )
124 )
125
126 cfg.run(10)
127
128if __name__=="__main__":
129 main()
getPhotonSelIsEM(name="PhotonSelIsEM_METMakerAlg")
getMETMaker(jetCollection, name="METMaker", **kwargs)
getMuonSelectionTool(name="MuonSelectionTool_METMakerAlg")
getMETMakerAlg(suffix, jetSelection="Tier0", jetColl="", **kwargs)
getTauSelectionTool(name="TauSelectionTool_METMakerAlg")
getEleSelLikelihood(name="EleSelLikelihood_METMakerAlg")