17 """Main config method for e-gamma decorations"""
19 acc = ComponentAccumulator()
21 includeFwdElectrons =
"ForwardElectrons" in flags.Input.Collections
26 from DerivationFrameworkEGamma.EGammaToolsConfig
import PhotonsDirectionToolCfg
28 DFCommonPhotonsDirection = acc.addPublicTool(acc.popToolsAndMerge(
29 PhotonsDirectionToolCfg(
31 name=
"DFCommonPhotonsDirection",
32 EtaSGEntry=
"DFCommonPhotons_eta",
33 PhiSGEntry=
"DFCommonPhotons_phi",
34 EtSGEntry=
"DFCommonPhotons_et",
44 isMC = flags.Input.isMC
47 isFullSim = flags.Sim.ISF.Simulator.isFullSim()
48 isRun2orRun3 = flags.GeoModel.Run
in (LHCPeriod.Run2, LHCPeriod.Run3)
50 print(
"EGammaCommon: isMC = ", isMC)
52 print(
"EGammaCommon: isFullSim = ", isFullSim)
55 from EGammaVariableCorrection.EGammaVariableCorrectionConfig
import (
56 ElectronVariableCorrectionToolCfg,
57 PhotonVariableCorrectionToolCfg,
58 ElectronPhotonVariableNFCorrectionToolCfg,
61 ElectronVariableCorrectionTool = acc.popToolsAndMerge(
62 ElectronVariableCorrectionToolCfg(flags)
64 acc.addPublicTool(ElectronVariableCorrectionTool)
66 PhotonVariableCorrectionTool = acc.popToolsAndMerge(
67 PhotonVariableCorrectionToolCfg(flags)
69 acc.addPublicTool(PhotonVariableCorrectionTool)
72 nFoldsNF = flags.Egamma.NFoldsNF
if flags.hasFlag(
'Egamma.NFoldsNF')
else None
73 PhotonVariableNFCorrectionTool = acc.popToolsAndMerge(
74 ElectronPhotonVariableNFCorrectionToolCfg(flags, nFolds=nFoldsNF)
76 acc.addPublicTool(PhotonVariableNFCorrectionTool)
83 from ROOT
import LikeEnum
85 from ElectronPhotonSelectorTools.AsgElectronLikelihoodToolsConfig
import (
86 AsgElectronLikelihoodToolCfg,
88 from ElectronPhotonSelectorTools.ElectronLikelihoodToolMapping
import electronLHmenu
90 lhMenu = electronLHmenu.offlineMC21
91 if flags.GeoModel.Run
is LHCPeriod.Run2:
92 lhMenu = electronLHmenu.offlineMC20
95 ElectronLHSelectorVeryLoose = acc.popToolsAndMerge(
96 AsgElectronLikelihoodToolCfg(
98 name=
"ElectronLHSelectorVeryLoose",
99 quality=LikeEnum.VeryLoose,
103 ElectronLHSelectorVeryLoose.primaryVertexContainer =
"PrimaryVertices"
104 acc.addPublicTool(ElectronLHSelectorVeryLoose)
107 ElectronLHSelectorLoose = acc.popToolsAndMerge(
108 AsgElectronLikelihoodToolCfg(
110 name=
"ElectronLHSelectorLoose",
111 quality=LikeEnum.Loose,
115 ElectronLHSelectorLoose.primaryVertexContainer =
"PrimaryVertices"
116 acc.addPublicTool(ElectronLHSelectorLoose)
119 ElectronLHSelectorLooseBL = acc.popToolsAndMerge(
120 AsgElectronLikelihoodToolCfg(
122 name=
"ElectronLHSelectorLooseBL",
123 quality=LikeEnum.LooseBL,
127 ElectronLHSelectorLooseBL.primaryVertexContainer =
"PrimaryVertices"
128 acc.addPublicTool(ElectronLHSelectorLooseBL)
131 ElectronLHSelectorMedium = acc.popToolsAndMerge(
132 AsgElectronLikelihoodToolCfg(
134 name=
"ElectronLHSelectorMedium",
135 quality=LikeEnum.Medium,
139 ElectronLHSelectorMedium.primaryVertexContainer =
"PrimaryVertices"
140 acc.addPublicTool(ElectronLHSelectorMedium)
143 ElectronLHSelectorTight = acc.popToolsAndMerge(
144 AsgElectronLikelihoodToolCfg(
146 name=
"ElectronLHSelectorTight",
147 quality=LikeEnum.Tight,
151 ElectronLHSelectorTight.primaryVertexContainer =
"PrimaryVertices"
152 acc.addPublicTool(ElectronLHSelectorTight)
157 from ElectronPhotonSelectorTools.AsgElectronSelectorToolConfig
import (
158 AsgElectronSelectorToolCfg,
162 ElectronDNNSelectorLoose = acc.popToolsAndMerge(
163 AsgElectronSelectorToolCfg(
165 name=
"ElectronDNNSelectorLoose",
166 WorkingPoint=
"LooseDNNElectron",
169 acc.addPublicTool(ElectronDNNSelectorLoose)
172 ElectronDNNSelectorMedium = acc.popToolsAndMerge(
173 AsgElectronSelectorToolCfg(
175 name=
"ElectronDNNSelectorMedium",
176 WorkingPoint=
"MediumDNNElectron",
179 acc.addPublicTool(ElectronDNNSelectorMedium)
182 ElectronDNNSelectorTight = acc.popToolsAndMerge(
183 AsgElectronSelectorToolCfg(
185 name=
"ElectronDNNSelectorTight",
186 WorkingPoint=
"TightDNNElectron",
189 acc.addPublicTool(ElectronDNNSelectorTight)
195 ElectronDNNSelectorVeryLooseNoCF97 = acc.popToolsAndMerge(
196 AsgElectronSelectorToolCfg(
198 name=
"ElectronDNNSelectorVeryLooseNoCF97",
199 WorkingPoint=
"VeryLooseNoCF97DNNElectron",
202 acc.addPublicTool(ElectronDNNSelectorVeryLooseNoCF97)
205 ElectronDNNSelectorLooseNoCF = acc.popToolsAndMerge(
206 AsgElectronSelectorToolCfg(
208 name=
"ElectronDNNSelectorLooseNoCF",
209 WorkingPoint=
"LooseNoCFDNNElectron",
212 acc.addPublicTool(ElectronDNNSelectorLooseNoCF)
215 ElectronDNNSelectorMediumNoCF = acc.popToolsAndMerge(
216 AsgElectronSelectorToolCfg(
218 name=
"ElectronDNNSelectorMediumNoCF",
219 WorkingPoint=
"MediumNoCFDNNElectron",
222 acc.addPublicTool(ElectronDNNSelectorMediumNoCF)
225 ElectronDNNSelectorTightNoCF = acc.popToolsAndMerge(
226 AsgElectronSelectorToolCfg(
228 name=
"ElectronDNNSelectorTightNoCF",
229 WorkingPoint=
"TightNoCFDNNElectron",
232 acc.addPublicTool(ElectronDNNSelectorTightNoCF)
237 if flags.Derivation.Egamma.addECIDS:
238 from ElectronPhotonSelectorTools.AsgElectronChargeIDSelectorToolConfig
import (
239 AsgElectronChargeIDSelectorToolCfg,
242 ElectronChargeIDSelector = acc.popToolsAndMerge(
243 AsgElectronChargeIDSelectorToolCfg(
244 flags, name=
"ElectronChargeIDSelectorLoose"
247 ElectronChargeIDSelector.primaryVertexContainer =
"PrimaryVertices"
248 ElectronChargeIDSelector.TrainingFile = (
249 "ElectronPhotonSelectorTools/ChargeID/ECIDS_20180731rel21Summer2018.root"
251 acc.addPublicTool(ElectronChargeIDSelector)
256 if includeFwdElectrons:
257 from ElectronPhotonSelectorTools.AsgForwardElectronLikelihoodToolConfig
import (
258 AsgForwardElectronLikelihoodToolCfg,
261 ForwardElectronLHSelectorLoose = acc.popToolsAndMerge(
262 AsgForwardElectronLikelihoodToolCfg(
264 name=
"ForwardElectronLHSelectorLoose",
265 WorkingPoint=
"LooseLHForwardElectron",
268 acc.addPublicTool(ForwardElectronLHSelectorLoose)
270 ForwardElectronLHSelectorMedium = acc.popToolsAndMerge(
271 AsgForwardElectronLikelihoodToolCfg(
273 name=
"ForwardElectronLHSelectorMedium",
274 WorkingPoint=
"MediumLHForwardElectron",
277 acc.addPublicTool(ForwardElectronLHSelectorMedium)
279 ForwardElectronLHSelectorTight = acc.popToolsAndMerge(
280 AsgForwardElectronLikelihoodToolCfg(
282 name=
"ForwardElectronLHSelectorTight",
283 WorkingPoint=
"TightLHForwardElectron",
286 acc.addPublicTool(ForwardElectronLHSelectorTight)
291 from ROOT
import egammaPID
293 from ElectronPhotonSelectorTools.AsgPhotonIsEMSelectorsConfig
import (
294 AsgPhotonIsEMSelectorCfg,
296 from ElectronPhotonSelectorTools.PhotonIsEMSelectorMapping
import photonPIDmenu
297 pidMenu = photonPIDmenu.offlineMC21
298 if flags.GeoModel.Run
is LHCPeriod.Run2:
299 pidMenu = photonPIDmenu.offlineMC20
302 PhotonIsEMSelectorLoose = acc.popToolsAndMerge(
303 AsgPhotonIsEMSelectorCfg(
305 name=
"PhotonIsEMSelectorLoose",
306 quality=egammaPID.PhotonIDLoose,
310 acc.addPublicTool(PhotonIsEMSelectorLoose)
313 PhotonIsEMSelectorMedium = acc.popToolsAndMerge(
314 AsgPhotonIsEMSelectorCfg(
316 name=
"PhotonIsEMSelectorMedium",
317 quality=egammaPID.PhotonIDMedium,
321 acc.addPublicTool(PhotonIsEMSelectorMedium)
324 PhotonIsEMSelectorTight = acc.popToolsAndMerge(
325 AsgPhotonIsEMSelectorCfg(
327 name=
"PhotonIsEMSelectorTight",
328 quality=egammaPID.PhotonIDTight,
332 acc.addPublicTool(PhotonIsEMSelectorTight)
337 photonIDBDTWP =
"TightBDTPhoton_Run3"
338 if flags.GeoModel.Run
is LHCPeriod.Run2:
339 photonIDBDTWP =
"TightBDTPhoton_Run2"
340 from ElectronPhotonSelectorTools.AsgPhotonBDTSelectorConfig
import (
341 PhotonBDTCalculatorCfg,
342 AsgPhotonBDTSelectorCfg,
344 PhotonBDTCalculator = acc.popToolsAndMerge(
345 PhotonBDTCalculatorCfg(
347 name=
"PhotonBDTCalculator",
351 PhotonBDTSelectorTight = acc.popToolsAndMerge(
352 AsgPhotonBDTSelectorCfg(
354 name=
"PhotonBDTSelectorTight",
355 ScoreDecoration=
"DFCommonPhotonsBDTScore",
356 WorkingPoint=photonIDBDTWP,
358 SuppressInputDependence=
True
361 PhotonBDTCalculatorNF = acc.popToolsAndMerge(
362 PhotonBDTCalculatorCfg(
364 name=
"PhotonBDTCalculatorNF",
368 PhotonBDTSelectorTightNF = acc.popToolsAndMerge(
369 AsgPhotonBDTSelectorCfg(
371 name=
"PhotonBDTSelectorTightNF",
372 ScoreDecoration=
"DFCommonPhotonsNFBDTScore",
373 WorkingPoint=photonIDBDTWP+
"_NFs",
375 SuppressInputDependence=
True
382 from egammaCaloTools.egammaCaloToolsConfig
import CaloFillRectangularClusterCfg
384 EGAMCOM_caloFillRect55 = acc.popToolsAndMerge(
385 CaloFillRectangularClusterCfg(
387 name=
"EGAMCOMCaloFillRectangularCluster55",
388 cells_name=
"AllCalo",
394 acc.addPublicTool(EGAMCOM_caloFillRect55)
396 EGAMCOM_caloFillRect35 = acc.popToolsAndMerge(
397 CaloFillRectangularClusterCfg(
399 name=
"EGAMCOMCaloFillRectangularCluster35",
400 cells_name=
"AllCalo",
406 acc.addPublicTool(EGAMCOM_caloFillRect35)
408 EGAMCOM_caloFillRect37 = acc.popToolsAndMerge(
409 CaloFillRectangularClusterCfg(
411 name=
"EGAMCOMCaloFillRectangularCluster37",
412 cells_name=
"AllCalo",
418 acc.addPublicTool(EGAMCOM_caloFillRect37)
420 EGAMCOM_caloFillRect711 = acc.popToolsAndMerge(
421 CaloFillRectangularClusterCfg(
423 name=
"EGAMCOMCaloFillRectangularCluster711",
424 cells_name=
"AllCalo",
430 acc.addPublicTool(EGAMCOM_caloFillRect711)
435 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGSelectionToolWrapperCfg
436 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
437 EGElectronLikelihoodToolWrapperCfg,
438 EGPhotonBDTToolWrapperCfg,
439 EGPhotonBDTToolDecoratorCfg
445 ElectronPassLHVeryLoose = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
447 name=
"ElectronPassLHVeryLoose",
448 EGammaElectronLikelihoodTool=ElectronLHSelectorVeryLoose,
449 EGammaFudgeMCTool=
None,
451 StoreGateEntryName=
"DFCommonElectronsLHVeryLoose",
452 ContainerName=
"Electrons",
458 ElectronPassLHLoose = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
460 name=
"ElectronPassLHLoose",
461 EGammaElectronLikelihoodTool=ElectronLHSelectorLoose,
462 EGammaFudgeMCTool=
None,
464 StoreGateEntryName=
"DFCommonElectronsLHLoose",
465 ContainerName=
"Electrons",
471 ElectronPassLHLooseBL = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
473 name=
"ElectronPassLHLooseBL",
474 EGammaElectronLikelihoodTool=ElectronLHSelectorLooseBL,
475 EGammaFudgeMCTool=
None,
477 StoreGateEntryName=
"DFCommonElectronsLHLooseBL",
478 ContainerName=
"Electrons",
484 ElectronPassLHMedium = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
486 name=
"ElectronPassLHMedium",
487 EGammaElectronLikelihoodTool=ElectronLHSelectorMedium,
488 EGammaFudgeMCTool=
None,
490 StoreGateEntryName=
"DFCommonElectronsLHMedium",
491 ContainerName=
"Electrons",
497 ElectronPassLHTight = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
499 name=
"ElectronPassLHTight",
500 EGammaElectronLikelihoodTool=ElectronLHSelectorTight,
501 EGammaFudgeMCTool=
None,
503 StoreGateEntryName=
"DFCommonElectronsLHTight",
504 ContainerName=
"Electrons",
510 ElectronPassDNNLoose = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
512 name=
"ElectronPassDNNLoose",
513 EGammaElectronLikelihoodTool=ElectronDNNSelectorLoose,
514 EGammaFudgeMCTool=(ElectronVariableCorrectionTool
if isMC
else None),
516 StoreGateEntryName=
"DFCommonElectronsDNNLoose",
517 ContainerName=
"Electrons",
519 StoreGateEntryMultipleNames=[
520 "DFCommonElectronsDNN_pel",
521 "DFCommonElectronsDNN_pcf",
522 "DFCommonElectronsDNN_ppc",
523 "DFCommonElectronsDNN_phf",
524 "DFCommonElectronsDNN_ple",
525 "DFCommonElectronsDNN_plh",
527 StoreMultipleOutputs=
True,
532 ElectronPassDNNMedium = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
534 name=
"ElectronPassDNNMedium",
535 EGammaElectronLikelihoodTool=ElectronDNNSelectorMedium,
536 EGammaFudgeMCTool=(ElectronVariableCorrectionTool
if isMC
else None),
538 StoreGateEntryName=
"DFCommonElectronsDNNMedium",
539 ContainerName=
"Electrons",
545 ElectronPassDNNTight = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
547 name=
"ElectronPassDNNTight",
548 EGammaElectronLikelihoodTool=ElectronDNNSelectorTight,
549 EGammaFudgeMCTool=(ElectronVariableCorrectionTool
if isMC
else None),
551 StoreGateEntryName=
"DFCommonElectronsDNNTight",
552 ContainerName=
"Electrons",
558 ElectronPassDNNVeryLooseNoCF97 = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
560 name=
"ElectronPassDNNVeryLooseNoCF97",
561 EGammaElectronLikelihoodTool=ElectronDNNSelectorVeryLooseNoCF97,
562 EGammaFudgeMCTool=(ElectronVariableCorrectionTool
if isMC
else None),
564 StoreGateEntryName=
"DFCommonElectronsDNNVeryLooseNoCF97",
565 ContainerName=
"Electrons",
570 ElectronPassDNNLooseNoCF = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
572 name=
"ElectronPassDNNLooseNoCF",
573 EGammaElectronLikelihoodTool=ElectronDNNSelectorLooseNoCF,
574 EGammaFudgeMCTool=(ElectronVariableCorrectionTool
if isMC
else None),
576 StoreGateEntryName=
"DFCommonElectronsDNNLooseNoCF",
577 ContainerName=
"Electrons",
583 ElectronPassDNNMediumNoCF = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
585 name=
"ElectronPassDNNMediumNoCF",
586 EGammaElectronLikelihoodTool=ElectronDNNSelectorMediumNoCF,
587 EGammaFudgeMCTool=(ElectronVariableCorrectionTool
if isMC
else None),
589 StoreGateEntryName=
"DFCommonElectronsDNNMediumNoCF",
590 ContainerName=
"Electrons",
596 ElectronPassDNNTightNoCF = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
598 name=
"ElectronPassDNNTightNoCF",
599 EGammaElectronLikelihoodTool=ElectronDNNSelectorTightNoCF,
600 EGammaFudgeMCTool=(ElectronVariableCorrectionTool
if isMC
else None),
602 StoreGateEntryName=
"DFCommonElectronsDNNTightNoCF",
603 ContainerName=
"Electrons",
609 if flags.Derivation.Egamma.addECIDS:
610 ElectronPassECIDS = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
612 name=
"ElectronPassECIDS",
613 EGammaElectronLikelihoodTool=ElectronChargeIDSelector,
614 EGammaFudgeMCTool=
None,
616 StoreGateEntryName=
"DFCommonElectronsECIDS",
617 ContainerName=
"Electrons",
622 if includeFwdElectrons:
624 ForwardElectronPassLHLoose = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
626 name=
"ForwardElectronPassLHLoose",
627 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorLoose,
628 EGammaFudgeMCTool=
None,
630 StoreGateEntryName=
"DFCommonForwardElectronsLHLoose",
631 ContainerName=
"ForwardElectrons",
636 ForwardElectronPassLHMedium = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
638 name=
"ForwardElectronPassLHMedium",
639 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorMedium,
640 EGammaFudgeMCTool=
None,
642 StoreGateEntryName=
"DFCommonForwardElectronsLHMedium",
643 ContainerName=
"ForwardElectrons",
648 ForwardElectronPassLHTight = acc.addPublicTool(acc.popToolsAndMerge(EGElectronLikelihoodToolWrapperCfg(
650 name=
"ForwardElectronPassLHTight",
651 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorTight,
652 EGammaFudgeMCTool=
None,
654 StoreGateEntryName=
"DFCommonForwardElectronsLHTight",
655 ContainerName=
"ForwardElectrons",
662 PhotonPassIsEMLoose = acc.addPublicTool(acc.popToolsAndMerge(
663 EGSelectionToolWrapperCfg(
665 name=
"PhotonPassIsEMLoose",
666 EGammaSelectionTool=PhotonIsEMSelectorLoose,
667 EGammaFudgeMCTool=(PhotonVariableCorrectionTool
if isFullSim
else None),
669 StoreGateEntryName=
"DFCommonPhotonsIsEMLoose",
670 ContainerName=
"Photons",
677 PhotonPassIsEMMedium = acc.addPublicTool(acc.popToolsAndMerge(
678 EGSelectionToolWrapperCfg(
680 name=
"PhotonPassIsEMMedium",
681 EGammaSelectionTool=PhotonIsEMSelectorMedium,
682 EGammaFudgeMCTool=(PhotonVariableCorrectionTool
if isFullSim
else None),
684 StoreGateEntryName=
"DFCommonPhotonsIsEMMedium",
685 ContainerName=
"Photons",
692 PhotonPassIsEMTight = acc.addPublicTool(acc.popToolsAndMerge(
693 EGSelectionToolWrapperCfg(
695 name=
"PhotonPassIsEMTight",
696 EGammaSelectionTool=PhotonIsEMSelectorTight,
697 EGammaFudgeMCTool=(PhotonVariableCorrectionTool
if isFullSim
else None),
699 StoreGateEntryName=
"DFCommonPhotonsIsEMTight",
700 ContainerName=
"Photons",
707 PhotonBDTDecorator = acc.addPublicTool(acc.popToolsAndMerge(
708 EGPhotonBDTToolDecoratorCfg(
710 name=
"PhotonBDTDecorator",
711 PhotonObservableTool=PhotonBDTCalculator,
712 EGammaFudgeMCTool=(PhotonVariableCorrectionTool
if isFullSim
else None),
713 StoreGateEntryName=
"DFCommonPhotonsBDT",
714 ContainerName=
"Photons",
719 PhotonPassBDTTight = acc.addPublicTool(acc.popToolsAndMerge(
720 EGPhotonBDTToolWrapperCfg(
722 name=
"PhotonPassBDTTight",
723 PhotonBDTSelectionTool=PhotonBDTSelectorTight,
724 EGammaFudgeMCTool=(PhotonVariableCorrectionTool
if isFullSim
else None),
726 StoreGateEntryName=
"DFCommonPhotonsBDT",
727 WorkingPointName=
"Tight",
728 ContainerName=
"Photons",
735 PhotonPassIsEMTightNF = acc.addPublicTool(acc.popToolsAndMerge(
736 EGSelectionToolWrapperCfg(
738 name=
"PhotonPassIsEMTightNF",
739 EGammaSelectionTool=PhotonIsEMSelectorTight,
740 EGammaFudgeMCTool=(PhotonVariableNFCorrectionTool
if (isMC
and isRun2orRun3)
else None),
742 StoreGateEntryName=
"DFCommonPhotonsIsEMTightNF",
743 ContainerName=
"Photons",
750 PhotonBDTDecoratorNF = acc.addPublicTool(acc.popToolsAndMerge(
751 EGPhotonBDTToolDecoratorCfg(
753 name=
"PhotonBDTDecoratorNF",
754 PhotonObservableTool=PhotonBDTCalculatorNF,
755 EGammaFudgeMCTool=(PhotonVariableNFCorrectionTool
if (isMC
and isRun2orRun3)
else None),
756 StoreGateEntryName=
"DFCommonPhotonsNFBDT",
757 ContainerName=
"Photons",
761 PhotonPassBDTTightNF = acc.addPublicTool(acc.popToolsAndMerge(
762 EGPhotonBDTToolWrapperCfg(
764 name=
"PhotonPassBDTTightNF",
765 PhotonBDTSelectionTool=PhotonBDTSelectorTightNF,
766 EGammaFudgeMCTool=(PhotonVariableNFCorrectionTool
if (isMC
and isRun2orRun3)
else None),
768 StoreGateEntryName=
"DFCommonPhotonsNFBDT",
769 WorkingPointName=
"Tight",
770 ContainerName=
"Photons",
777 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGPhotonCleaningWrapperCfg
779 PhotonPassCleaning = acc.addPublicTool(acc.popToolsAndMerge(
780 EGPhotonCleaningWrapperCfg(
782 name=
"PhotonPassCleaning",
783 EGammaFudgeMCTool=(PhotonVariableCorrectionTool
if isFullSim
else None),
784 StoreGateEntryName=
"DFCommonPhotonsCleaning",
785 ContainerName=
"Photons",
791 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGElectronAmbiguityToolCfg
793 ElectronAmbiguity = acc.addPublicTool(acc.popToolsAndMerge(
794 EGElectronAmbiguityToolCfg(
796 name=
"ElectronAdditionnalAmbiguity",
797 isMC=flags.Input.isMC,
802 EGAugmentationTools = [
803 DFCommonPhotonsDirection,
804 ElectronPassLHVeryLoose,
806 ElectronPassLHLooseBL,
807 ElectronPassLHMedium,
809 ElectronPassDNNLoose,
810 ElectronPassDNNMedium,
811 ElectronPassDNNTight,
812 ElectronPassDNNVeryLooseNoCF97,
813 ElectronPassDNNLooseNoCF,
814 ElectronPassDNNMediumNoCF,
815 ElectronPassDNNTightNoCF,
817 PhotonPassIsEMMedium,
819 PhotonPassIsEMTightNF,
822 PhotonBDTDecoratorNF,
823 PhotonPassBDTTightNF,
828 if flags.Derivation.Egamma.addECIDS:
829 EGAugmentationTools.extend([ElectronPassECIDS])
831 if includeFwdElectrons:
832 EGAugmentationTools.extend(
834 ForwardElectronPassLHLoose,
835 ForwardElectronPassLHMedium,
836 ForwardElectronPassLHTight,
840 from egammaAlgs.egammaAODFixesConfig
import runAODFix
841 _, fixes = runAODFix(flags)
843 if not(
'egammatopoIsoFix' in fixes):
844 if flags.Derivation.Egamma.addMissingCellInfo:
845 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
846 EgammaCoreCellRecoveryCfg,
849 CoreCellRecoveryTool = acc.popToolsAndMerge(
850 EgammaCoreCellRecoveryCfg(flags)
852 acc.addPublicTool(CoreCellRecoveryTool)
853 EGAugmentationTools.append(CoreCellRecoveryTool)
855 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGammaEnergyCalibrationWrapperCfg
856 TransformerEnergyCalibration = acc.addPublicTool(acc.popToolsAndMerge(
857 EGammaEnergyCalibrationWrapperCfg(
859 name=
"TransformerEnergyCalibration",
862 EGAugmentationTools.append(TransformerEnergyCalibration)
868 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
869 BkgElectronClassificationCfg,
872 BkgElectronClassificationTool = acc.addPublicTool(acc.popToolsAndMerge(
873 BkgElectronClassificationCfg(
875 name=
"BkgElectronClassificationTool"
878 EGAugmentationTools.append(BkgElectronClassificationTool)
881 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import (
882 TruthIsolationToolCfg,
885 TruthEgetIsolationTool = acc.getPrimaryAndMerge(
886 TruthIsolationToolCfg(
888 name=
"TruthEgetIsolationTool",
889 isoParticlesKey=
"egammaTruthParticles",
890 allParticlesKey=
"TruthParticles",
891 particleIDsToCalculate=[-11, 11, 22],
892 IsolationConeSizes=[0.2, 0.3, 0.4],
893 excludeIDsFromCone=[-16, -14, -13, -12, 12, 13, 14, 16],
894 IsolationVarNamePrefix=
"etcone",
895 ChargedParticlesOnly=
False,
898 EGAugmentationTools.append(TruthEgetIsolationTool)
901 TruthEgptIsolationTool = acc.getPrimaryAndMerge(
902 TruthIsolationToolCfg(
904 name=
"TruthEgptIsolationTool",
905 isoParticlesKey=
"egammaTruthParticles",
906 allParticlesKey=
"TruthParticles",
907 particleIDsToCalculate=[-11, 11, 22],
908 IsolationConeSizes=[0.2, 0.3, 0.4],
909 IsolationVarNamePrefix=
"ptcone",
910 ChargedParticlesOnly=
True,
913 EGAugmentationTools.append(TruthEgptIsolationTool)
916 from EventShapeTools.EventDensityConfig
import configEventDensityTool
917 from JetRecConfig.JetRecConfig
import (
922 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
925 constit_algs = getInputAlgs(cst.Truth, flags=flags)
926 constit_algs, ca = reOrderAlgs([a
for a
in constit_algs
if a
is not None])
928 for a
in constit_algs:
930 constitPJAlg = getConstitPJGAlg(cst.Truth, suffix=
None)
931 acc.addEventAlgo(constitPJAlg)
933 tc = configEventDensityTool(
934 "EDTruthCentralTool",
939 OutputContainer=
"TruthIsoCentralEventShape",
942 acc.addPublicTool(tc)
945 tf = configEventDensityTool(
946 "EDTruthForwardTool",
951 OutputContainer=
"TruthIsoForwardEventShape",
954 acc.addPublicTool(tf)
957 CompFactory.EventDensityAthAlg(
"EDTruthCentralAlg", EventDensityTool=tc)
960 CompFactory.EventDensityAthAlg(
"EDTruthForwardAlg", EventDensityTool=tf)
968 CompFactory.DerivationFramework.CommonAugmentation(
969 "EGammaCommonKernel", AugmentationTools=EGAugmentationTools
976 from IsolationAlgs.DerivationTrackIsoConfig
import DerivationTrackIsoCfg
978 acc.merge(DerivationTrackIsoCfg(flags, object_types=(
"Electrons",
"Muons")))
981 "JetETMissChargedParticleFlowObjects" in flags.Input.Collections
982 and "JetETMissNeutralParticleFlowObjects" in flags.Input.Collections
985 from IsolationAlgs.IsolationSteeringDerivConfig
import IsolationSteeringDerivCfg
987 acc.merge(IsolationSteeringDerivCfg(flags))