ATLAS Offline Software
Loading...
Searching...
No Matches
METMakerConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 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=""):
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 )
97 return makerAlg
getPhotonSelIsEM(name="PhotonSelIsEM_METMakerAlg")
getMETMaker(jetCollection, name="METMaker", **kwargs)
getMuonSelectionTool(name="MuonSelectionTool_METMakerAlg")
getMETMakerAlg(suffix, jetSelection="Tier0", jetColl="")
getTauSelectionTool(name="TauSelectionTool_METMakerAlg")
getEleSelLikelihood(name="EleSelLikelihood_METMakerAlg")