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",
38 isMC = flags.Input.isMC
41 isFullSim = flags.Sim.ISF.Simulator.isFullSim()
42 isRun2orRun3 = flags.GeoModel.Run
in (LHCPeriod.Run2, LHCPeriod.Run3)
44 print(
"EGammaCommon: isMC = ", isMC)
46 print(
"EGammaCommon: isFullSim = ", isFullSim)
53 from ROOT
import LikeEnum
55 from ElectronPhotonSelectorTools.AsgElectronLikelihoodToolsConfig
import (
56 AsgElectronLikelihoodToolCfg,
58 from ElectronPhotonSelectorTools.ElectronLikelihoodToolMapping
import electronLHmenu
60 lhMenu = electronLHmenu.offlineMC21
61 if flags.GeoModel.Run
is LHCPeriod.Run2:
62 lhMenu = electronLHmenu.offlineMC20
65 ElectronLHSelectorVeryLoose = acc.popToolsAndMerge(
66 AsgElectronLikelihoodToolCfg(
68 name=
"ElectronLHSelectorVeryLoose",
69 quality=LikeEnum.VeryLoose,
73 ElectronLHSelectorVeryLoose.primaryVertexContainer =
"PrimaryVertices"
74 acc.addPublicTool(ElectronLHSelectorVeryLoose)
77 ElectronLHSelectorLoose = acc.popToolsAndMerge(
78 AsgElectronLikelihoodToolCfg(
80 name=
"ElectronLHSelectorLoose",
81 quality=LikeEnum.Loose,
85 ElectronLHSelectorLoose.primaryVertexContainer =
"PrimaryVertices"
86 acc.addPublicTool(ElectronLHSelectorLoose)
89 ElectronLHSelectorLooseBL = acc.popToolsAndMerge(
90 AsgElectronLikelihoodToolCfg(
92 name=
"ElectronLHSelectorLooseBL",
93 quality=LikeEnum.LooseBL,
97 ElectronLHSelectorLooseBL.primaryVertexContainer =
"PrimaryVertices"
98 acc.addPublicTool(ElectronLHSelectorLooseBL)
101 ElectronLHSelectorMedium = acc.popToolsAndMerge(
102 AsgElectronLikelihoodToolCfg(
104 name=
"ElectronLHSelectorMedium",
105 quality=LikeEnum.Medium,
109 ElectronLHSelectorMedium.primaryVertexContainer =
"PrimaryVertices"
110 acc.addPublicTool(ElectronLHSelectorMedium)
113 ElectronLHSelectorTight = acc.popToolsAndMerge(
114 AsgElectronLikelihoodToolCfg(
116 name=
"ElectronLHSelectorTight",
117 quality=LikeEnum.Tight,
121 ElectronLHSelectorTight.primaryVertexContainer =
"PrimaryVertices"
122 acc.addPublicTool(ElectronLHSelectorTight)
127 from ElectronPhotonSelectorTools.AsgElectronSelectorToolConfig
import (
128 AsgElectronSelectorToolCfg,
132 ElectronDNNSelectorLoose = acc.popToolsAndMerge(
133 AsgElectronSelectorToolCfg(
135 name=
"ElectronDNNSelectorLoose",
136 WorkingPoint=
"LooseDNNElectron",
139 acc.addPublicTool(ElectronDNNSelectorLoose)
142 ElectronDNNSelectorMedium = acc.popToolsAndMerge(
143 AsgElectronSelectorToolCfg(
145 name=
"ElectronDNNSelectorMedium",
146 WorkingPoint=
"MediumDNNElectron",
149 acc.addPublicTool(ElectronDNNSelectorMedium)
152 ElectronDNNSelectorTight = acc.popToolsAndMerge(
153 AsgElectronSelectorToolCfg(
155 name=
"ElectronDNNSelectorTight",
156 WorkingPoint=
"TightDNNElectron",
159 acc.addPublicTool(ElectronDNNSelectorTight)
165 ElectronDNNSelectorVeryLooseNoCF97 = acc.popToolsAndMerge(
166 AsgElectronSelectorToolCfg(
168 name=
"ElectronDNNSelectorVeryLooseNoCF97",
169 WorkingPoint=
"VeryLooseNoCF97DNNElectron",
172 acc.addPublicTool(ElectronDNNSelectorVeryLooseNoCF97)
175 ElectronDNNSelectorLooseNoCF = acc.popToolsAndMerge(
176 AsgElectronSelectorToolCfg(
178 name=
"ElectronDNNSelectorLooseNoCF",
179 WorkingPoint=
"LooseNoCFDNNElectron",
182 acc.addPublicTool(ElectronDNNSelectorLooseNoCF)
185 ElectronDNNSelectorMediumNoCF = acc.popToolsAndMerge(
186 AsgElectronSelectorToolCfg(
188 name=
"ElectronDNNSelectorMediumNoCF",
189 WorkingPoint=
"MediumNoCFDNNElectron",
192 acc.addPublicTool(ElectronDNNSelectorMediumNoCF)
195 ElectronDNNSelectorTightNoCF = acc.popToolsAndMerge(
196 AsgElectronSelectorToolCfg(
198 name=
"ElectronDNNSelectorTightNoCF",
199 WorkingPoint=
"TightNoCFDNNElectron",
202 acc.addPublicTool(ElectronDNNSelectorTightNoCF)
207 if flags.Derivation.Egamma.addECIDS:
208 from ElectronPhotonSelectorTools.AsgElectronChargeIDSelectorToolConfig
import (
209 AsgElectronChargeIDSelectorToolCfg,
212 ElectronChargeIDSelector = acc.popToolsAndMerge(
213 AsgElectronChargeIDSelectorToolCfg(
214 flags, name=
"ElectronChargeIDSelectorLoose"
217 ElectronChargeIDSelector.primaryVertexContainer =
"PrimaryVertices"
218 ElectronChargeIDSelector.TrainingFile = (
219 "ElectronPhotonSelectorTools/ChargeID/ECIDS_20180731rel21Summer2018.root"
221 acc.addPublicTool(ElectronChargeIDSelector)
226 if includeFwdElectrons:
227 from ElectronPhotonSelectorTools.AsgForwardElectronLikelihoodToolConfig
import (
228 AsgForwardElectronLikelihoodToolCfg,
231 ForwardElectronLHSelectorLoose = acc.popToolsAndMerge(
232 AsgForwardElectronLikelihoodToolCfg(
234 name=
"ForwardElectronLHSelectorLoose",
235 WorkingPoint=
"LooseLHForwardElectron",
238 acc.addPublicTool(ForwardElectronLHSelectorLoose)
240 ForwardElectronLHSelectorMedium = acc.popToolsAndMerge(
241 AsgForwardElectronLikelihoodToolCfg(
243 name=
"ForwardElectronLHSelectorMedium",
244 WorkingPoint=
"MediumLHForwardElectron",
247 acc.addPublicTool(ForwardElectronLHSelectorMedium)
249 ForwardElectronLHSelectorTight = acc.popToolsAndMerge(
250 AsgForwardElectronLikelihoodToolCfg(
252 name=
"ForwardElectronLHSelectorTight",
253 WorkingPoint=
"TightLHForwardElectron",
256 acc.addPublicTool(ForwardElectronLHSelectorTight)
261 from ROOT
import egammaPID
263 from ElectronPhotonSelectorTools.AsgPhotonIsEMSelectorsConfig
import (
264 AsgPhotonIsEMSelectorCfg,
266 from ElectronPhotonSelectorTools.PhotonIsEMSelectorMapping
import photonPIDmenu
267 pidMenu = photonPIDmenu.offlineMC21
268 if flags.GeoModel.Run
is LHCPeriod.Run2:
269 pidMenu = photonPIDmenu.offlineMC20
272 PhotonIsEMSelectorLoose = acc.popToolsAndMerge(
273 AsgPhotonIsEMSelectorCfg(
275 name=
"PhotonIsEMSelectorLoose",
276 quality=egammaPID.PhotonIDLoose,
280 acc.addPublicTool(PhotonIsEMSelectorLoose)
283 PhotonIsEMSelectorMedium = acc.popToolsAndMerge(
284 AsgPhotonIsEMSelectorCfg(
286 name=
"PhotonIsEMSelectorMedium",
287 quality=egammaPID.PhotonIDMedium,
291 acc.addPublicTool(PhotonIsEMSelectorMedium)
294 PhotonIsEMSelectorTight = acc.popToolsAndMerge(
295 AsgPhotonIsEMSelectorCfg(
297 name=
"PhotonIsEMSelectorTight",
298 quality=egammaPID.PhotonIDTight,
302 acc.addPublicTool(PhotonIsEMSelectorTight)
307 photonIDBDTWP =
"TightBDTPhoton_Run3"
308 if flags.GeoModel.Run
is LHCPeriod.Run2:
309 photonIDBDTWP =
"TightBDTPhoton_Run2"
310 from ElectronPhotonSelectorTools.AsgPhotonBDTSelectorConfig
import (
311 PhotonBDTCalculatorCfg,
312 AsgPhotonBDTSelectorCfg,
314 PhotonBDTCalculator = acc.popToolsAndMerge(
315 PhotonBDTCalculatorCfg(
317 name=
"PhotonBDTCalculator",
321 PhotonBDTSelectorTight = acc.popToolsAndMerge(
322 AsgPhotonBDTSelectorCfg(
324 name=
"PhotonBDTSelectorTight",
325 ScoreDecoration=
"DFCommonPhotonsBDTScore",
326 WorkingPoint=photonIDBDTWP,
328 SuppressInputDependence=
True
331 PhotonBDTCalculatorNF = acc.popToolsAndMerge(
332 PhotonBDTCalculatorCfg(
334 name=
"PhotonBDTCalculatorNF",
338 PhotonBDTSelectorTightNF = acc.popToolsAndMerge(
339 AsgPhotonBDTSelectorCfg(
341 name=
"PhotonBDTSelectorTightNF",
342 ScoreDecoration=
"DFCommonPhotonsNFBDTScore",
343 WorkingPoint=photonIDBDTWP+
"_NFs",
345 SuppressInputDependence=
True
352 from egammaCaloTools.egammaCaloToolsConfig
import CaloFillRectangularClusterCfg
354 EGAMCOM_caloFillRect55 = acc.popToolsAndMerge(
355 CaloFillRectangularClusterCfg(
357 name=
"EGAMCOMCaloFillRectangularCluster55",
358 cells_name=
"AllCalo",
364 acc.addPublicTool(EGAMCOM_caloFillRect55)
366 EGAMCOM_caloFillRect35 = acc.popToolsAndMerge(
367 CaloFillRectangularClusterCfg(
369 name=
"EGAMCOMCaloFillRectangularCluster35",
370 cells_name=
"AllCalo",
376 acc.addPublicTool(EGAMCOM_caloFillRect35)
378 EGAMCOM_caloFillRect37 = acc.popToolsAndMerge(
379 CaloFillRectangularClusterCfg(
381 name=
"EGAMCOMCaloFillRectangularCluster37",
382 cells_name=
"AllCalo",
388 acc.addPublicTool(EGAMCOM_caloFillRect37)
390 EGAMCOM_caloFillRect711 = acc.popToolsAndMerge(
391 CaloFillRectangularClusterCfg(
393 name=
"EGAMCOMCaloFillRectangularCluster711",
394 cells_name=
"AllCalo",
400 acc.addPublicTool(EGAMCOM_caloFillRect711)
405 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGSelectionToolWrapperCfg
406 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
407 EGElectronLikelihoodToolWrapperCfg,
408 EGPhotonBDTToolWrapperCfg,
409 EGPhotonBDTToolDecoratorCfg
415 ElectronPassLHVeryLoose = acc.addPublicTool(acc.popToolsAndMerge(
416 EGElectronLikelihoodToolWrapperCfg(
418 name=
"ElectronPassLHVeryLoose",
419 EGammaElectronLikelihoodTool=ElectronLHSelectorVeryLoose,
421 StoreGateEntryName=
"DFCommonElectronsLHVeryLoose",
422 ContainerName=
"Electrons",
428 ElectronPassLHLoose = acc.addPublicTool(acc.popToolsAndMerge(
429 EGElectronLikelihoodToolWrapperCfg(
431 name=
"ElectronPassLHLoose",
432 EGammaElectronLikelihoodTool=ElectronLHSelectorLoose,
434 StoreGateEntryName=
"DFCommonElectronsLHLoose",
435 ContainerName=
"Electrons",
441 ElectronPassLHLooseBL = acc.addPublicTool(acc.popToolsAndMerge(
442 EGElectronLikelihoodToolWrapperCfg(
444 name=
"ElectronPassLHLooseBL",
445 EGammaElectronLikelihoodTool=ElectronLHSelectorLooseBL,
447 StoreGateEntryName=
"DFCommonElectronsLHLooseBL",
448 ContainerName=
"Electrons",
454 ElectronPassLHMedium = acc.addPublicTool(acc.popToolsAndMerge(
455 EGElectronLikelihoodToolWrapperCfg(
457 name=
"ElectronPassLHMedium",
458 EGammaElectronLikelihoodTool=ElectronLHSelectorMedium,
460 StoreGateEntryName=
"DFCommonElectronsLHMedium",
461 ContainerName=
"Electrons",
467 ElectronPassLHTight = acc.addPublicTool(acc.popToolsAndMerge(
468 EGElectronLikelihoodToolWrapperCfg(
470 name=
"ElectronPassLHTight",
471 EGammaElectronLikelihoodTool=ElectronLHSelectorTight,
473 StoreGateEntryName=
"DFCommonElectronsLHTight",
474 ContainerName=
"Electrons",
480 ElectronPassDNNLoose = acc.addPublicTool(acc.popToolsAndMerge(
481 EGElectronLikelihoodToolWrapperCfg(
483 name=
"ElectronPassDNNLoose",
484 EGammaElectronLikelihoodTool=ElectronDNNSelectorLoose,
486 StoreGateEntryName=
"DFCommonElectronsDNNLoose",
487 ContainerName=
"Electrons",
488 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
490 StoreGateEntryMultipleNames=[
491 "DFCommonElectronsDNN_pel",
492 "DFCommonElectronsDNN_pcf",
493 "DFCommonElectronsDNN_ppc",
494 "DFCommonElectronsDNN_phf",
495 "DFCommonElectronsDNN_ple",
496 "DFCommonElectronsDNN_plh",
498 StoreMultipleOutputs=
True,
503 ElectronPassDNNMedium = acc.addPublicTool(acc.popToolsAndMerge(
504 EGElectronLikelihoodToolWrapperCfg(
506 name=
"ElectronPassDNNMedium",
507 EGammaElectronLikelihoodTool=ElectronDNNSelectorMedium,
509 StoreGateEntryName=
"DFCommonElectronsDNNMedium",
510 ContainerName=
"Electrons",
511 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
517 ElectronPassDNNTight = acc.addPublicTool(acc.popToolsAndMerge(
518 EGElectronLikelihoodToolWrapperCfg(
520 name=
"ElectronPassDNNTight",
521 EGammaElectronLikelihoodTool=ElectronDNNSelectorTight,
523 StoreGateEntryName=
"DFCommonElectronsDNNTight",
524 ContainerName=
"Electrons",
525 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
531 ElectronPassDNNVeryLooseNoCF97 = acc.addPublicTool(acc.popToolsAndMerge(
532 EGElectronLikelihoodToolWrapperCfg(
534 name=
"ElectronPassDNNVeryLooseNoCF97",
535 EGammaElectronLikelihoodTool=ElectronDNNSelectorVeryLooseNoCF97,
537 StoreGateEntryName=
"DFCommonElectronsDNNVeryLooseNoCF97",
538 ContainerName=
"Electrons",
539 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
544 ElectronPassDNNLooseNoCF = acc.addPublicTool(acc.popToolsAndMerge(
545 EGElectronLikelihoodToolWrapperCfg(
547 name=
"ElectronPassDNNLooseNoCF",
548 EGammaElectronLikelihoodTool=ElectronDNNSelectorLooseNoCF,
550 StoreGateEntryName=
"DFCommonElectronsDNNLooseNoCF",
551 ContainerName=
"Electrons",
552 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
558 ElectronPassDNNMediumNoCF = acc.addPublicTool(acc.popToolsAndMerge(
559 EGElectronLikelihoodToolWrapperCfg(
561 name=
"ElectronPassDNNMediumNoCF",
562 EGammaElectronLikelihoodTool=ElectronDNNSelectorMediumNoCF,
564 StoreGateEntryName=
"DFCommonElectronsDNNMediumNoCF",
565 ContainerName=
"Electrons",
566 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
572 ElectronPassDNNTightNoCF = acc.addPublicTool(acc.popToolsAndMerge(
573 EGElectronLikelihoodToolWrapperCfg(
575 name=
"ElectronPassDNNTightNoCF",
576 EGammaElectronLikelihoodTool=ElectronDNNSelectorTightNoCF,
578 StoreGateEntryName=
"DFCommonElectronsDNNTightNoCF",
579 ContainerName=
"Electrons",
580 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
586 if flags.Derivation.Egamma.addECIDS:
587 ElectronPassECIDS = acc.addPublicTool(acc.popToolsAndMerge(
588 EGElectronLikelihoodToolWrapperCfg(
590 name=
"ElectronPassECIDS",
591 EGammaElectronLikelihoodTool=ElectronChargeIDSelector,
593 StoreGateEntryName=
"DFCommonElectronsECIDS",
594 ContainerName=
"Electrons",
599 if includeFwdElectrons:
601 ForwardElectronPassLHLoose = acc.addPublicTool(acc.popToolsAndMerge(
602 EGElectronLikelihoodToolWrapperCfg(
604 name=
"ForwardElectronPassLHLoose",
605 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorLoose,
607 StoreGateEntryName=
"DFCommonForwardElectronsLHLoose",
608 ContainerName=
"ForwardElectrons",
613 ForwardElectronPassLHMedium = acc.addPublicTool(acc.popToolsAndMerge(
614 EGElectronLikelihoodToolWrapperCfg(
616 name=
"ForwardElectronPassLHMedium",
617 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorMedium,
619 StoreGateEntryName=
"DFCommonForwardElectronsLHMedium",
620 ContainerName=
"ForwardElectrons",
625 ForwardElectronPassLHTight = acc.addPublicTool(acc.popToolsAndMerge(
626 EGElectronLikelihoodToolWrapperCfg(
628 name=
"ForwardElectronPassLHTight",
629 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorTight,
631 StoreGateEntryName=
"DFCommonForwardElectronsLHTight",
632 ContainerName=
"ForwardElectrons",
639 PhotonPassIsEMLoose = acc.addPublicTool(acc.popToolsAndMerge(
640 EGSelectionToolWrapperCfg(
642 name=
"PhotonPassIsEMLoose",
643 EGammaSelectionTool=PhotonIsEMSelectorLoose,
645 StoreGateEntryName=
"DFCommonPhotonsIsEMLoose",
646 ContainerName=
"Photons",
647 FudgedContainerName=
"FudgedPhotons" if isFullSim
else "",
654 PhotonPassIsEMMedium = acc.addPublicTool(acc.popToolsAndMerge(
655 EGSelectionToolWrapperCfg(
657 name=
"PhotonPassIsEMMedium",
658 EGammaSelectionTool=PhotonIsEMSelectorMedium,
660 StoreGateEntryName=
"DFCommonPhotonsIsEMMedium",
661 ContainerName=
"Photons",
662 FudgedContainerName=
"FudgedPhotons" if isFullSim
else "",
669 PhotonPassIsEMTight = acc.addPublicTool(acc.popToolsAndMerge(
670 EGSelectionToolWrapperCfg(
672 name=
"PhotonPassIsEMTight",
673 EGammaSelectionTool=PhotonIsEMSelectorTight,
675 StoreGateEntryName=
"DFCommonPhotonsIsEMTight",
676 ContainerName=
"Photons",
677 FudgedContainerName=
"FudgedPhotons" if isFullSim
else "",
684 PhotonBDTDecorator = acc.addPublicTool(acc.popToolsAndMerge(
685 EGPhotonBDTToolDecoratorCfg(
687 name=
"PhotonBDTDecorator",
688 PhotonObservableTool=PhotonBDTCalculator,
689 StoreGateEntryName=
"DFCommonPhotonsBDT",
690 ContainerName=
"Photons",
691 FudgedContainerName=
"FudgedPhotons" if isFullSim
else ""
696 PhotonPassBDTTight = acc.addPublicTool(acc.popToolsAndMerge(
697 EGPhotonBDTToolWrapperCfg(
699 name=
"PhotonPassBDTTight",
700 PhotonBDTSelectionTool=PhotonBDTSelectorTight,
702 StoreGateEntryName=
"DFCommonPhotonsBDT",
703 WorkingPointName=
"Tight",
704 ContainerName=
"Photons",
705 FudgedContainerName=
"FudgedPhotons" if isFullSim
else ""
712 PhotonPassIsEMTightNF = acc.addPublicTool(acc.popToolsAndMerge(
713 EGSelectionToolWrapperCfg(
715 name=
"PhotonPassIsEMTightNF",
716 EGammaSelectionTool=PhotonIsEMSelectorTight,
718 StoreGateEntryName=
"DFCommonPhotonsIsEMTightNF",
719 ContainerName=
"Photons",
720 FudgedContainerName=
"NFFudgedPhotons" if (isMC
and isRun2orRun3)
else ""
727 PhotonBDTDecoratorNF = acc.addPublicTool(acc.popToolsAndMerge(
728 EGPhotonBDTToolDecoratorCfg(
730 name=
"PhotonBDTDecoratorNF",
731 PhotonObservableTool=PhotonBDTCalculatorNF,
732 StoreGateEntryName=
"DFCommonPhotonsNFBDT",
733 ContainerName=
"Photons",
734 FudgedContainerName=
"NFFudgedPhotons" if (isMC
and isRun2orRun3)
else ""
738 PhotonPassBDTTightNF = acc.addPublicTool(acc.popToolsAndMerge(
739 EGPhotonBDTToolWrapperCfg(
741 name=
"PhotonPassBDTTightNF",
742 PhotonBDTSelectionTool=PhotonBDTSelectorTightNF,
744 StoreGateEntryName=
"DFCommonPhotonsNFBDT",
745 WorkingPointName=
"Tight",
746 ContainerName=
"Photons",
747 FudgedContainerName=
"NFFudgedPhotons" if (isMC
and isRun2orRun3)
else ""
754 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGPhotonCleaningWrapperCfg
756 PhotonPassCleaning = acc.addPublicTool(acc.popToolsAndMerge(
757 EGPhotonCleaningWrapperCfg(
759 name=
"PhotonPassCleaning",
760 StoreGateEntryName=
"DFCommonPhotonsCleaning",
761 ContainerName=
"Photons",
762 FudgedContainerName=
"FudgedPhotons" if isFullSim
else ""
768 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGElectronAmbiguityToolCfg
770 ElectronAmbiguity = acc.addPublicTool(acc.popToolsAndMerge(
771 EGElectronAmbiguityToolCfg(
773 name=
"ElectronAdditionnalAmbiguity",
774 isMC=flags.Input.isMC,
779 EGAugmentationTools = [
780 DFCommonPhotonsDirection,
781 ElectronPassLHVeryLoose,
783 ElectronPassLHLooseBL,
784 ElectronPassLHMedium,
786 ElectronPassDNNLoose,
787 ElectronPassDNNMedium,
788 ElectronPassDNNTight,
789 ElectronPassDNNVeryLooseNoCF97,
790 ElectronPassDNNLooseNoCF,
791 ElectronPassDNNMediumNoCF,
792 ElectronPassDNNTightNoCF,
794 PhotonPassIsEMMedium,
796 PhotonPassIsEMTightNF,
799 PhotonBDTDecoratorNF,
800 PhotonPassBDTTightNF,
805 if flags.Derivation.Egamma.addECIDS:
806 EGAugmentationTools.extend([ElectronPassECIDS])
808 if includeFwdElectrons:
809 EGAugmentationTools.extend(
811 ForwardElectronPassLHLoose,
812 ForwardElectronPassLHMedium,
813 ForwardElectronPassLHTight,
817 from egammaAlgs.egammaAODFixesConfig
import runAODFix
818 _, fixes = runAODFix(flags)
820 if not(
'egammatopoIsoFix' in fixes):
821 if flags.Derivation.Egamma.addMissingCellInfo:
822 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
823 EgammaCoreCellRecoveryCfg,
826 CoreCellRecoveryTool = acc.popToolsAndMerge(
827 EgammaCoreCellRecoveryCfg(flags)
829 acc.addPublicTool(CoreCellRecoveryTool)
830 EGAugmentationTools.append(CoreCellRecoveryTool)
832 if flags.Derivation.Egamma.addMissingCellInfo:
833 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGammaEnergyCalibrationWrapperCfg
834 TransformerEnergyCalibration = acc.addPublicTool(acc.popToolsAndMerge(
835 EGammaEnergyCalibrationWrapperCfg(
837 name=
"TransformerEnergyCalibration",
840 EGAugmentationTools.append(TransformerEnergyCalibration)
846 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
847 BkgElectronClassificationCfg,
850 BkgElectronClassificationTool = acc.addPublicTool(acc.popToolsAndMerge(
851 BkgElectronClassificationCfg(
853 name=
"BkgElectronClassificationTool"
856 EGAugmentationTools.append(BkgElectronClassificationTool)
859 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import (
860 TruthIsolationToolCfg,
863 TruthEgetIsolationTool = acc.getPrimaryAndMerge(
864 TruthIsolationToolCfg(
866 name=
"TruthEgetIsolationTool",
867 isoParticlesKey=
"egammaTruthParticles",
868 allParticlesKey=
"TruthParticles",
869 particleIDsToCalculate=[-11, 11, 22],
870 IsolationConeSizes=[0.2, 0.3, 0.4],
871 excludeIDsFromCone=[-16, -14, -13, -12, 12, 13, 14, 16],
872 IsolationVarNamePrefix=
"etcone",
873 ChargedParticlesOnly=
False,
876 EGAugmentationTools.append(TruthEgetIsolationTool)
879 TruthEgptIsolationTool = acc.getPrimaryAndMerge(
880 TruthIsolationToolCfg(
882 name=
"TruthEgptIsolationTool",
883 isoParticlesKey=
"egammaTruthParticles",
884 allParticlesKey=
"TruthParticles",
885 particleIDsToCalculate=[-11, 11, 22],
886 IsolationConeSizes=[0.2, 0.3, 0.4],
887 IsolationVarNamePrefix=
"ptcone",
888 ChargedParticlesOnly=
True,
891 EGAugmentationTools.append(TruthEgptIsolationTool)
894 from EventShapeTools.EventDensityConfig
import configEventDensityTool
895 from JetRecConfig.JetRecConfig
import (
900 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
903 constit_algs = getInputAlgs(cst.Truth, flags=flags)
904 constit_algs, ca = reOrderAlgs([a
for a
in constit_algs
if a
is not None])
906 for a
in constit_algs:
908 constitPJAlg = getConstitPJGAlg(cst.Truth, suffix=
None)
909 acc.addEventAlgo(constitPJAlg)
911 tc = configEventDensityTool(
912 "EDTruthCentralTool",
917 OutputContainer=
"TruthIsoCentralEventShape",
920 acc.addPublicTool(tc)
923 tf = configEventDensityTool(
924 "EDTruthForwardTool",
929 OutputContainer=
"TruthIsoForwardEventShape",
932 acc.addPublicTool(tf)
935 CompFactory.EventDensityAthAlg(
"EDTruthCentralAlg", EventDensityTool=tc)
938 CompFactory.EventDensityAthAlg(
"EDTruthForwardAlg", EventDensityTool=tf)
943 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
944 ElectronFudgeAlgorithmCfg, PhotonFudgeAlgorithmCfg, PhotonNFFudgeAlgorithmCfg)
945 acc.merge(ElectronFudgeAlgorithmCfg(flags))
947 acc.merge(PhotonNFFudgeAlgorithmCfg(flags))
949 acc.merge(PhotonFudgeAlgorithmCfg(flags))
956 CompFactory.DerivationFramework.CommonAugmentation(
957 "EGammaCommonKernel", AugmentationTools=EGAugmentationTools
964 from IsolationAlgs.DerivationTrackIsoConfig
import DerivationTrackIsoCfg
966 acc.merge(DerivationTrackIsoCfg(flags, object_types=(
"Electrons",
"Muons")))
969 "JetETMissChargedParticleFlowObjects" in flags.Input.Collections
970 and "JetETMissNeutralParticleFlowObjects" in flags.Input.Collections
973 from IsolationAlgs.IsolationSteeringDerivConfig
import IsolationSteeringDerivCfg
975 acc.merge(IsolationSteeringDerivCfg(flags))