55def IsoCloseByCorrAlgCfg(flags, name="IsoCloseByCorrAlg", suff = "", isPhysLite = False, containerNames = [ "Muons", "Electrons", "Photons"], depContainerNames = None, useSelTools = False, isoDecSuffix = "CloseByCorr", caloDecSuffix = "", hasLRT = False, **kwargs):
56
57 result = ComponentAccumulator()
58
59
60
61
62
63 depNames = depContainerNames if depContainerNames is not None else containerNames
64
65
66 elIsoWPs = [ "Loose_VarRad", "TightTrackOnly_FixedRad" ]
67 muIsoWPs = [ "PflowLoose_VarRad", "Loose_VarRad" ]
68 phIsoWPs = [ "FixedCutLoose", "TightCaloOnly" ]
69
70 isoTool = result.popToolsAndMerge( IsolationSelectionToolCfg( flags,
71 ElectronWPVec = elIsoWPs,
72 MuonWPVec = muIsoWPs,
73 PhotonWPVec = phIsoWPs))
74
75 selectionDecorator = "isoSelIsOK" + suff
76 kwargs.setdefault("IsoCloseByCorrectionTool",
77 result.popToolsAndMerge(IsoCloseByCorrectionToolCfg(flags,
78 IsolationSelectionTool = isoTool,
79 SelectionDecorator = selectionDecorator,
80 IsoDecSuffix = isoDecSuffix,
81 CaloDecSuffix = caloDecSuffix,
82 EleContainers = [ x for x in depNames if x.find("Ele") != -1],
83 MuoContainers = [ x for x in depNames if x.find("Muo") != -1],
84 PhoContainers = [ x for x in depNames if x.find("Pho") != -1])))
85
86
87 from MuonSelectorTools.MuonSelectorToolsConfig import MuonLoosenedNonCalibratedSelectionToolCfg
88 kwargs.setdefault("MuonSelectionTool", result.popToolsAndMerge(MuonLoosenedNonCalibratedSelectionToolCfg(flags,
89 MaxEta = 2.7,
90 MuQuality = 2,
91 UseLRT = hasLRT,
92 )))
93
94
95 kwargs.setdefault("PhotSelectionKey", "Photons.DFCommonPhotonsIsEMLoose")
96 if hasLRT:
97 kwargs.setdefault("ElecSelectionKey", "Electrons.DFCommonElectronsLHVeryLooseNoPix")
98 else:
99 kwargs.setdefault("ElecSelectionKey", "Electrons.DFCommonElectronsLHVeryLoose")
100
101
102 kwargs.setdefault("ParticleContainerKeys", containerNames)
103
104
105 kwargs.setdefault("MinElecPt", 0.)
106 kwargs.setdefault("MinMuonPt", 0.)
107 kwargs.setdefault("MinPhotPt", 0.)
108
109
110 the_alg = CompFactory.CP.IsoCloseByCorrectionAlg(name + suff,
111 SelectionDecorator = selectionDecorator,
112 **kwargs)
113 result.addEventAlgo(the_alg)
114 return result
115