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:
228 from IsolationAlgs.IsolationSteeringDerivConfig
import FwdElectronIsolationSteeringDerivCfg
229 acc.merge(FwdElectronIsolationSteeringDerivCfg(flags))
231 from ElectronPhotonSelectorTools.AsgForwardElectronLikelihoodToolConfig
import (
232 AsgForwardElectronLikelihoodToolCfg,
235 ForwardElectronLHSelectorLoose = acc.popToolsAndMerge(
236 AsgForwardElectronLikelihoodToolCfg(
238 name=
"ForwardElectronLHSelectorLoose",
239 WorkingPoint=
"LooseLHForwardElectron",
242 acc.addPublicTool(ForwardElectronLHSelectorLoose)
244 ForwardElectronLHSelectorMedium = acc.popToolsAndMerge(
245 AsgForwardElectronLikelihoodToolCfg(
247 name=
"ForwardElectronLHSelectorMedium",
248 WorkingPoint=
"MediumLHForwardElectron",
251 acc.addPublicTool(ForwardElectronLHSelectorMedium)
253 ForwardElectronLHSelectorTight = acc.popToolsAndMerge(
254 AsgForwardElectronLikelihoodToolCfg(
256 name=
"ForwardElectronLHSelectorTight",
257 WorkingPoint=
"TightLHForwardElectron",
260 acc.addPublicTool(ForwardElectronLHSelectorTight)
265 from ROOT
import egammaPID
267 from ElectronPhotonSelectorTools.AsgPhotonIsEMSelectorsConfig
import (
268 AsgPhotonIsEMSelectorCfg,
270 from ElectronPhotonSelectorTools.PhotonIsEMSelectorMapping
import photonPIDmenu
271 pidMenu = photonPIDmenu.offlineMC21
272 if flags.GeoModel.Run
is LHCPeriod.Run2:
273 pidMenu = photonPIDmenu.offlineMC20
276 PhotonIsEMSelectorLoose = acc.popToolsAndMerge(
277 AsgPhotonIsEMSelectorCfg(
279 name=
"PhotonIsEMSelectorLoose",
280 quality=egammaPID.PhotonIDLoose,
284 acc.addPublicTool(PhotonIsEMSelectorLoose)
287 PhotonIsEMSelectorMedium = acc.popToolsAndMerge(
288 AsgPhotonIsEMSelectorCfg(
290 name=
"PhotonIsEMSelectorMedium",
291 quality=egammaPID.PhotonIDMedium,
295 acc.addPublicTool(PhotonIsEMSelectorMedium)
298 PhotonIsEMSelectorTight = acc.popToolsAndMerge(
299 AsgPhotonIsEMSelectorCfg(
301 name=
"PhotonIsEMSelectorTight",
302 quality=egammaPID.PhotonIDTight,
306 acc.addPublicTool(PhotonIsEMSelectorTight)
311 photonIDBDTWP =
"TightBDTPhoton_Run3"
312 if flags.GeoModel.Run
is LHCPeriod.Run2:
313 photonIDBDTWP =
"TightBDTPhoton_Run2"
314 from ElectronPhotonSelectorTools.AsgPhotonBDTSelectorConfig
import (
315 PhotonBDTCalculatorCfg,
316 AsgPhotonBDTSelectorCfg,
318 PhotonBDTCalculator = acc.popToolsAndMerge(
319 PhotonBDTCalculatorCfg(
321 name=
"PhotonBDTCalculator",
325 PhotonBDTSelectorTight = acc.popToolsAndMerge(
326 AsgPhotonBDTSelectorCfg(
328 name=
"PhotonBDTSelectorTight",
329 ScoreDecoration=
"DFCommonPhotonsBDTScore",
330 WorkingPoint=photonIDBDTWP,
332 SuppressInputDependence=
True
335 PhotonBDTCalculatorNF = acc.popToolsAndMerge(
336 PhotonBDTCalculatorCfg(
338 name=
"PhotonBDTCalculatorNF",
342 PhotonBDTSelectorTightNF = acc.popToolsAndMerge(
343 AsgPhotonBDTSelectorCfg(
345 name=
"PhotonBDTSelectorTightNF",
346 ScoreDecoration=
"DFCommonPhotonsNFBDTScore",
347 WorkingPoint=photonIDBDTWP+
"_NFs",
349 SuppressInputDependence=
True
356 from egammaCaloTools.egammaCaloToolsConfig
import CaloFillRectangularClusterCfg
358 EGAMCOM_caloFillRect55 = acc.popToolsAndMerge(
359 CaloFillRectangularClusterCfg(
361 name=
"EGAMCOMCaloFillRectangularCluster55",
362 cells_name=
"AllCalo",
368 acc.addPublicTool(EGAMCOM_caloFillRect55)
370 EGAMCOM_caloFillRect35 = acc.popToolsAndMerge(
371 CaloFillRectangularClusterCfg(
373 name=
"EGAMCOMCaloFillRectangularCluster35",
374 cells_name=
"AllCalo",
380 acc.addPublicTool(EGAMCOM_caloFillRect35)
382 EGAMCOM_caloFillRect37 = acc.popToolsAndMerge(
383 CaloFillRectangularClusterCfg(
385 name=
"EGAMCOMCaloFillRectangularCluster37",
386 cells_name=
"AllCalo",
392 acc.addPublicTool(EGAMCOM_caloFillRect37)
394 EGAMCOM_caloFillRect711 = acc.popToolsAndMerge(
395 CaloFillRectangularClusterCfg(
397 name=
"EGAMCOMCaloFillRectangularCluster711",
398 cells_name=
"AllCalo",
404 acc.addPublicTool(EGAMCOM_caloFillRect711)
409 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGSelectionToolWrapperCfg
410 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
411 EGElectronLikelihoodToolWrapperCfg,
412 EGPhotonBDTToolWrapperCfg,
413 EGPhotonBDTToolDecoratorCfg
419 ElectronPassLHVeryLoose = acc.addPublicTool(acc.popToolsAndMerge(
420 EGElectronLikelihoodToolWrapperCfg(
422 name=
"ElectronPassLHVeryLoose",
423 EGammaElectronLikelihoodTool=ElectronLHSelectorVeryLoose,
425 StoreGateEntryName=
"DFCommonElectronsLHVeryLoose",
426 ContainerName=
"Electrons",
432 ElectronPassLHLoose = acc.addPublicTool(acc.popToolsAndMerge(
433 EGElectronLikelihoodToolWrapperCfg(
435 name=
"ElectronPassLHLoose",
436 EGammaElectronLikelihoodTool=ElectronLHSelectorLoose,
438 StoreGateEntryName=
"DFCommonElectronsLHLoose",
439 ContainerName=
"Electrons",
445 ElectronPassLHLooseBL = acc.addPublicTool(acc.popToolsAndMerge(
446 EGElectronLikelihoodToolWrapperCfg(
448 name=
"ElectronPassLHLooseBL",
449 EGammaElectronLikelihoodTool=ElectronLHSelectorLooseBL,
451 StoreGateEntryName=
"DFCommonElectronsLHLooseBL",
452 ContainerName=
"Electrons",
458 ElectronPassLHMedium = acc.addPublicTool(acc.popToolsAndMerge(
459 EGElectronLikelihoodToolWrapperCfg(
461 name=
"ElectronPassLHMedium",
462 EGammaElectronLikelihoodTool=ElectronLHSelectorMedium,
464 StoreGateEntryName=
"DFCommonElectronsLHMedium",
465 ContainerName=
"Electrons",
471 ElectronPassLHTight = acc.addPublicTool(acc.popToolsAndMerge(
472 EGElectronLikelihoodToolWrapperCfg(
474 name=
"ElectronPassLHTight",
475 EGammaElectronLikelihoodTool=ElectronLHSelectorTight,
477 StoreGateEntryName=
"DFCommonElectronsLHTight",
478 ContainerName=
"Electrons",
484 ElectronPassDNNLoose = acc.addPublicTool(acc.popToolsAndMerge(
485 EGElectronLikelihoodToolWrapperCfg(
487 name=
"ElectronPassDNNLoose",
488 EGammaElectronLikelihoodTool=ElectronDNNSelectorLoose,
490 StoreGateEntryName=
"DFCommonElectronsDNNLoose",
491 ContainerName=
"Electrons",
492 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
494 StoreGateEntryMultipleNames=[
495 "DFCommonElectronsDNN_pel",
496 "DFCommonElectronsDNN_pcf",
497 "DFCommonElectronsDNN_ppc",
498 "DFCommonElectronsDNN_phf",
499 "DFCommonElectronsDNN_ple",
500 "DFCommonElectronsDNN_plh",
502 StoreMultipleOutputs=
True,
507 ElectronPassDNNMedium = acc.addPublicTool(acc.popToolsAndMerge(
508 EGElectronLikelihoodToolWrapperCfg(
510 name=
"ElectronPassDNNMedium",
511 EGammaElectronLikelihoodTool=ElectronDNNSelectorMedium,
513 StoreGateEntryName=
"DFCommonElectronsDNNMedium",
514 ContainerName=
"Electrons",
515 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
521 ElectronPassDNNTight = acc.addPublicTool(acc.popToolsAndMerge(
522 EGElectronLikelihoodToolWrapperCfg(
524 name=
"ElectronPassDNNTight",
525 EGammaElectronLikelihoodTool=ElectronDNNSelectorTight,
527 StoreGateEntryName=
"DFCommonElectronsDNNTight",
528 ContainerName=
"Electrons",
529 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
535 ElectronPassDNNVeryLooseNoCF97 = acc.addPublicTool(acc.popToolsAndMerge(
536 EGElectronLikelihoodToolWrapperCfg(
538 name=
"ElectronPassDNNVeryLooseNoCF97",
539 EGammaElectronLikelihoodTool=ElectronDNNSelectorVeryLooseNoCF97,
541 StoreGateEntryName=
"DFCommonElectronsDNNVeryLooseNoCF97",
542 ContainerName=
"Electrons",
543 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
548 ElectronPassDNNLooseNoCF = acc.addPublicTool(acc.popToolsAndMerge(
549 EGElectronLikelihoodToolWrapperCfg(
551 name=
"ElectronPassDNNLooseNoCF",
552 EGammaElectronLikelihoodTool=ElectronDNNSelectorLooseNoCF,
554 StoreGateEntryName=
"DFCommonElectronsDNNLooseNoCF",
555 ContainerName=
"Electrons",
556 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
562 ElectronPassDNNMediumNoCF = acc.addPublicTool(acc.popToolsAndMerge(
563 EGElectronLikelihoodToolWrapperCfg(
565 name=
"ElectronPassDNNMediumNoCF",
566 EGammaElectronLikelihoodTool=ElectronDNNSelectorMediumNoCF,
568 StoreGateEntryName=
"DFCommonElectronsDNNMediumNoCF",
569 ContainerName=
"Electrons",
570 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
576 ElectronPassDNNTightNoCF = acc.addPublicTool(acc.popToolsAndMerge(
577 EGElectronLikelihoodToolWrapperCfg(
579 name=
"ElectronPassDNNTightNoCF",
580 EGammaElectronLikelihoodTool=ElectronDNNSelectorTightNoCF,
582 StoreGateEntryName=
"DFCommonElectronsDNNTightNoCF",
583 ContainerName=
"Electrons",
584 FudgedContainerName=
"FudgedElectrons" if isMC
else "",
590 if flags.Derivation.Egamma.addECIDS:
591 ElectronPassECIDS = acc.addPublicTool(acc.popToolsAndMerge(
592 EGElectronLikelihoodToolWrapperCfg(
594 name=
"ElectronPassECIDS",
595 EGammaElectronLikelihoodTool=ElectronChargeIDSelector,
597 StoreGateEntryName=
"DFCommonElectronsECIDS",
598 ContainerName=
"Electrons",
603 if includeFwdElectrons:
605 ForwardElectronPassLHLoose = acc.addPublicTool(acc.popToolsAndMerge(
606 EGElectronLikelihoodToolWrapperCfg(
608 name=
"ForwardElectronPassLHLoose",
609 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorLoose,
611 StoreGateEntryName=
"DFCommonForwardElectronsLHLoose",
612 ContainerName=
"ForwardElectrons",
617 ForwardElectronPassLHMedium = acc.addPublicTool(acc.popToolsAndMerge(
618 EGElectronLikelihoodToolWrapperCfg(
620 name=
"ForwardElectronPassLHMedium",
621 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorMedium,
623 StoreGateEntryName=
"DFCommonForwardElectronsLHMedium",
624 ContainerName=
"ForwardElectrons",
629 ForwardElectronPassLHTight = acc.addPublicTool(acc.popToolsAndMerge(
630 EGElectronLikelihoodToolWrapperCfg(
632 name=
"ForwardElectronPassLHTight",
633 EGammaElectronLikelihoodTool=ForwardElectronLHSelectorTight,
635 StoreGateEntryName=
"DFCommonForwardElectronsLHTight",
636 ContainerName=
"ForwardElectrons",
643 PhotonPassIsEMLoose = acc.addPublicTool(acc.popToolsAndMerge(
644 EGSelectionToolWrapperCfg(
646 name=
"PhotonPassIsEMLoose",
647 EGammaSelectionTool=PhotonIsEMSelectorLoose,
649 StoreGateEntryName=
"DFCommonPhotonsIsEMLoose",
650 ContainerName=
"Photons",
651 FudgedContainerName=
"FudgedPhotons" if isFullSim
else "",
658 PhotonPassIsEMMedium = acc.addPublicTool(acc.popToolsAndMerge(
659 EGSelectionToolWrapperCfg(
661 name=
"PhotonPassIsEMMedium",
662 EGammaSelectionTool=PhotonIsEMSelectorMedium,
664 StoreGateEntryName=
"DFCommonPhotonsIsEMMedium",
665 ContainerName=
"Photons",
666 FudgedContainerName=
"FudgedPhotons" if isFullSim
else "",
673 PhotonPassIsEMTight = acc.addPublicTool(acc.popToolsAndMerge(
674 EGSelectionToolWrapperCfg(
676 name=
"PhotonPassIsEMTight",
677 EGammaSelectionTool=PhotonIsEMSelectorTight,
679 StoreGateEntryName=
"DFCommonPhotonsIsEMTight",
680 ContainerName=
"Photons",
681 FudgedContainerName=
"FudgedPhotons" if isFullSim
else "",
688 PhotonBDTDecorator = acc.addPublicTool(acc.popToolsAndMerge(
689 EGPhotonBDTToolDecoratorCfg(
691 name=
"PhotonBDTDecorator",
692 PhotonObservableTool=PhotonBDTCalculator,
693 StoreGateEntryName=
"DFCommonPhotonsBDT",
694 ContainerName=
"Photons",
695 FudgedContainerName=
"FudgedPhotons" if isFullSim
else ""
700 PhotonPassBDTTight = acc.addPublicTool(acc.popToolsAndMerge(
701 EGPhotonBDTToolWrapperCfg(
703 name=
"PhotonPassBDTTight",
704 PhotonBDTSelectionTool=PhotonBDTSelectorTight,
706 StoreGateEntryName=
"DFCommonPhotonsBDT",
707 WorkingPointName=
"Tight",
708 ContainerName=
"Photons",
709 FudgedContainerName=
"FudgedPhotons" if isFullSim
else ""
716 PhotonPassIsEMTightNF = acc.addPublicTool(acc.popToolsAndMerge(
717 EGSelectionToolWrapperCfg(
719 name=
"PhotonPassIsEMTightNF",
720 EGammaSelectionTool=PhotonIsEMSelectorTight,
722 StoreGateEntryName=
"DFCommonPhotonsIsEMTightNF",
723 ContainerName=
"Photons",
724 FudgedContainerName=
"NFFudgedPhotons" if (isMC
and isRun2orRun3)
else ""
731 PhotonBDTDecoratorNF = acc.addPublicTool(acc.popToolsAndMerge(
732 EGPhotonBDTToolDecoratorCfg(
734 name=
"PhotonBDTDecoratorNF",
735 PhotonObservableTool=PhotonBDTCalculatorNF,
736 StoreGateEntryName=
"DFCommonPhotonsNFBDT",
737 ContainerName=
"Photons",
738 FudgedContainerName=
"NFFudgedPhotons" if (isMC
and isRun2orRun3)
else ""
742 PhotonPassBDTTightNF = acc.addPublicTool(acc.popToolsAndMerge(
743 EGPhotonBDTToolWrapperCfg(
745 name=
"PhotonPassBDTTightNF",
746 PhotonBDTSelectionTool=PhotonBDTSelectorTightNF,
748 StoreGateEntryName=
"DFCommonPhotonsNFBDT",
749 WorkingPointName=
"Tight",
750 ContainerName=
"Photons",
751 FudgedContainerName=
"NFFudgedPhotons" if (isMC
and isRun2orRun3)
else ""
758 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGPhotonCleaningWrapperCfg
760 PhotonPassCleaning = acc.addPublicTool(acc.popToolsAndMerge(
761 EGPhotonCleaningWrapperCfg(
763 name=
"PhotonPassCleaning",
764 StoreGateEntryName=
"DFCommonPhotonsCleaning",
765 ContainerName=
"Photons",
766 FudgedContainerName=
"FudgedPhotons" if isFullSim
else ""
772 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGElectronAmbiguityToolCfg
774 ElectronAmbiguity = acc.addPublicTool(acc.popToolsAndMerge(
775 EGElectronAmbiguityToolCfg(
777 name=
"ElectronAdditionnalAmbiguity",
778 isMC=flags.Input.isMC,
783 EGAugmentationTools = [
784 DFCommonPhotonsDirection,
785 ElectronPassLHVeryLoose,
787 ElectronPassLHLooseBL,
788 ElectronPassLHMedium,
790 ElectronPassDNNLoose,
791 ElectronPassDNNMedium,
792 ElectronPassDNNTight,
793 ElectronPassDNNVeryLooseNoCF97,
794 ElectronPassDNNLooseNoCF,
795 ElectronPassDNNMediumNoCF,
796 ElectronPassDNNTightNoCF,
798 PhotonPassIsEMMedium,
800 PhotonPassIsEMTightNF,
803 PhotonBDTDecoratorNF,
804 PhotonPassBDTTightNF,
809 if flags.Derivation.Egamma.addECIDS:
810 EGAugmentationTools.extend([ElectronPassECIDS])
812 if includeFwdElectrons:
813 EGAugmentationTools.extend(
815 ForwardElectronPassLHLoose,
816 ForwardElectronPassLHMedium,
817 ForwardElectronPassLHTight,
821 from egammaAlgs.egammaAODFixesConfig
import runAODFix
822 _, fixes = runAODFix(flags)
824 if not(
'egammatopoIsoFix' in fixes):
825 if flags.Derivation.Egamma.addMissingCellInfo:
826 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
827 EgammaCoreCellRecoveryCfg,
830 CoreCellRecoveryTool = acc.popToolsAndMerge(
831 EgammaCoreCellRecoveryCfg(flags)
833 acc.addPublicTool(CoreCellRecoveryTool)
834 EGAugmentationTools.append(CoreCellRecoveryTool)
836 if flags.Derivation.Egamma.addMissingCellInfo:
837 from DerivationFrameworkEGamma.EGammaToolsConfig
import EGammaEnergyCalibrationWrapperCfg
838 TransformerEnergyCalibration = acc.addPublicTool(acc.popToolsAndMerge(
839 EGammaEnergyCalibrationWrapperCfg(
841 name=
"TransformerEnergyCalibration",
844 EGAugmentationTools.append(TransformerEnergyCalibration)
850 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
851 BkgElectronClassificationCfg,
854 BkgElectronClassificationTool = acc.addPublicTool(acc.popToolsAndMerge(
855 BkgElectronClassificationCfg(
857 name=
"BkgElectronClassificationTool"
860 EGAugmentationTools.append(BkgElectronClassificationTool)
863 from DerivationFrameworkMCTruth.TruthDerivationToolsConfig
import (
864 TruthIsolationToolCfg,
867 TruthEgetIsolationTool = acc.getPrimaryAndMerge(
868 TruthIsolationToolCfg(
870 name=
"TruthEgetIsolationTool",
871 isoParticlesKey=
"egammaTruthParticles",
872 allParticlesKey=
"TruthParticles",
873 particleIDsToCalculate=[-11, 11, 22],
874 IsolationConeSizes=[0.2, 0.3, 0.4],
875 excludeIDsFromCone=[-16, -14, -13, -12, 12, 13, 14, 16],
876 IsolationVarNamePrefix=
"etcone",
877 ChargedParticlesOnly=
False,
880 EGAugmentationTools.append(TruthEgetIsolationTool)
883 TruthEgptIsolationTool = acc.getPrimaryAndMerge(
884 TruthIsolationToolCfg(
886 name=
"TruthEgptIsolationTool",
887 isoParticlesKey=
"egammaTruthParticles",
888 allParticlesKey=
"TruthParticles",
889 particleIDsToCalculate=[-11, 11, 22],
890 IsolationConeSizes=[0.2, 0.3, 0.4],
891 IsolationVarNamePrefix=
"ptcone",
892 ChargedParticlesOnly=
True,
895 EGAugmentationTools.append(TruthEgptIsolationTool)
898 from EventShapeTools.EventDensityConfig
import configEventDensityTool
899 from JetRecConfig.JetRecConfig
import (
904 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
907 constit_algs = getInputAlgs(cst.Truth, flags=flags)
908 constit_algs, ca = reOrderAlgs([a
for a
in constit_algs
if a
is not None])
910 for a
in constit_algs:
912 constitPJAlg = getConstitPJGAlg(cst.Truth, suffix=
None)
913 acc.addEventAlgo(constitPJAlg)
915 tc = configEventDensityTool(
916 "EDTruthCentralTool",
921 OutputContainer=
"TruthIsoCentralEventShape",
924 acc.addPublicTool(tc)
927 tf = configEventDensityTool(
928 "EDTruthForwardTool",
933 OutputContainer=
"TruthIsoForwardEventShape",
936 acc.addPublicTool(tf)
939 CompFactory.EventDensityAthAlg(
"EDTruthCentralAlg", EventDensityTool=tc)
942 CompFactory.EventDensityAthAlg(
"EDTruthForwardAlg", EventDensityTool=tf)
947 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
948 ElectronFudgeAlgorithmCfg, PhotonFudgeAlgorithmCfg, PhotonNFFudgeAlgorithmCfg)
949 acc.merge(ElectronFudgeAlgorithmCfg(flags))
951 acc.merge(PhotonNFFudgeAlgorithmCfg(flags))
953 acc.merge(PhotonFudgeAlgorithmCfg(flags))
960 CompFactory.DerivationFramework.CommonAugmentation(
961 "EGammaCommonKernel", AugmentationTools=EGAugmentationTools
968 from IsolationAlgs.DerivationTrackIsoConfig
import DerivationTrackIsoCfg
970 if includeFwdElectrons:
971 acc.merge(DerivationTrackIsoCfg(flags, object_types=(
"Electrons",
"Muons",
"ForwardElectrons")))
973 acc.merge(DerivationTrackIsoCfg(flags, object_types=(
"Electrons",
"Muons")))
976 "JetETMissChargedParticleFlowObjects" in flags.Input.Collections
977 and "JetETMissNeutralParticleFlowObjects" in flags.Input.Collections
980 from IsolationAlgs.IsolationSteeringDerivConfig
import IsolationSteeringDerivCfg
982 acc.merge(IsolationSteeringDerivCfg(flags))