ATLAS Offline Software
Loading...
Searching...
No Matches
EGAM11.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2# ====================================================================
3# EGAM11.py
4# This defines DAOD_EGAM11, a skimmed DAOD format for Run 3.
5# Z->ee reduction for central electrons - for electron ID and calibration
6# Adaptation of EGAM1 for heavy ions
7# It requires the flag EGAM11 in Derivation_tf.py
8# ====================================================================
9
10from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
11from AthenaConfiguration.ComponentFactory import CompFactory
12from AthenaConfiguration.Enums import MetadataCategory
13
14from AthenaCommon.SystemOfUnits import MeV
15
16from DerivationFrameworkEGamma.PhotonsCPDetailedContent import (
17 PhotonsCPDetailedContent,
18)
19
20from DerivationFrameworkEGamma.TriggerContent import (
21 ExtraContainersTrigger,
22 ExtraContainersElectronTrigger,
23)
24
25
27 """Configure the EGAM11 skimming tool"""
28 expression = " || ".join(
29 [
30 "(count( EGAM11_DiElectronMass1 > 50.0*GeV ) >= 1)",
31 "(count( EGAM11_DiElectronMass2 > 50.0*GeV ) >= 1)",
32 "(count( EGAM11_DiElectronMass3 > 50.0*GeV ) >= 1)",
33 "(count( EGAM11_ElectronPhotonMass > 50.0*GeV )>=1)",
34 ]
35 )
36 print("EGAM11 skimming expression: ", expression)
37
38 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
39 xAODStringSkimmingToolCfg)
40 return xAODStringSkimmingToolCfg(flags, name="EGAM11SkimmingTool",
41 expression=expression, TrigDecisionTool=None)
42
43
45 """Configure the EGAM11 ee invariant mass augmentation tool 1"""
46 acc = ComponentAccumulator()
47
48 # ====================================================================
49 # 1. di-electron invariant mass for events passing the Z->ee
50 # selection for the e-gamma calibration
51 #
52 # 1 tight e, central, pT>25 GeV
53 # 1 medium e, pT>20 GeV
54 # opposite-sign
55 # mee>50 GeV (cut applied in skimming step later)
56 # ====================================================================
57
58 requirement_tag = " && ".join(
59 ["(Electrons.DFCommonElectronsLHTight)", "(Electrons.pt > 24.5*GeV)"]
60 )
61
62 requirement_probe = " && ".join(
63 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 19.5*GeV)"]
64 )
65
66 acc.setPrivateTools(
67 CompFactory.DerivationFramework.EGInvariantMassTool(
68 name="EGAM11_ZEEMassTool1",
69 Object1Requirements=requirement_tag,
70 Object2Requirements=requirement_probe,
71 StoreGateEntryName="EGAM11_DiElectronMass1",
72 Mass1Hypothesis=0.511 * MeV,
73 Mass2Hypothesis=0.511 * MeV,
74 Container1Name="Electrons",
75 Container2Name="Electrons",
76 CheckCharge=True,
77 DoTransverseMass=False,
78 MinDeltaR=0.0,
79 )
80 )
81
82 return acc
83
84
86 """Configure the EGAM11 ee invariant mass augmentation tool 2"""
87 acc = ComponentAccumulator()
88
89 # ====================================================================
90 # 2. di-electron invariant mass for events passing the Z->e selection
91 # for the e-gamma calibration
92 #
93 # 2 medium e, central, pT>20 GeV
94 # opposite-sign
95 # mee>50 GeV (cut applied in skimming step later)
96 # ====================================================================
97
98 requirement = " && ".join(
99 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 19.5*GeV)"]
100 )
101
102 acc.setPrivateTools(
103 CompFactory.DerivationFramework.EGInvariantMassTool(
104 name="EGAM11_ZEEMassTool2",
105 Object1Requirements=requirement,
106 Object2Requirements=requirement,
107 StoreGateEntryName="EGAM11_DiElectronMass2",
108 Mass1Hypothesis=0.511 * MeV,
109 Mass2Hypothesis=0.511 * MeV,
110 Container1Name="Electrons",
111 Container2Name="Electrons",
112 CheckCharge=True,
113 DoTransverseMass=False,
114 MinDeltaR=0.0,
115 )
116 )
117
118 return acc
119
120
122 """Configure the EGAM11 ee invariant mass augmentation tool 3"""
123 acc = ComponentAccumulator()
124
125 # ====================================================================
126 # 3. di-electron invariant mass for events passing the Z->ee
127 # selection for the e efficiencies with tag and probe.
128 #
129 # 1 tight e, central, pT>25 GeV
130 # 1 e, central, pT>4 GeV
131 # opposite-sign + same-sign
132 # mee>50 GeV (cut applied in skimming step later)
133 # ====================================================================
134
135 requirement_tag = " && ".join(
136 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 24.5*GeV)"]
137 )
138
139 requirement_probe = "Electrons.pt > 4*GeV"
140
141 acc.setPrivateTools(
142 CompFactory.DerivationFramework.EGInvariantMassTool(
143 name="EGAM11_ZEEMassTool3",
144 Object1Requirements=requirement_tag,
145 Object2Requirements=requirement_probe,
146 StoreGateEntryName="EGAM11_DiElectronMass3",
147 Mass1Hypothesis=0.511 * MeV,
148 Mass2Hypothesis=0.511 * MeV,
149 Container1Name="Electrons",
150 Container2Name="Electrons",
151 CheckCharge=False,
152 DoTransverseMass=False,
153 MinDeltaR=0.0,
154 )
155 )
156
157 return acc
158
159
161 """Configure the EGAM11 e+photon mass augmentation tool"""
162 acc = ComponentAccumulator()
163
164 # ====================================================================
165 # 4. Z->eg selection for reco SF (central)
166 # for tag and probe
167 #
168 # 1 tight e, central, pT>25 GeV
169 # note: use medium instead of tight for early data upon electron
170 # group request
171 # 1 gamma, pT>15 GeV, central
172 # opposite sign + same sign
173 # mey>50 GeV (cut applied in skimming step later)
174 # ====================================================================
175
176 requirement_tag = " && ".join(
177 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 24.5*GeV)"]
178 )
179
180 requirement_probe = "DFCommonPhotons_et > 14.5*GeV"
181
182 acc.setPrivateTools(
183 CompFactory.DerivationFramework.EGInvariantMassTool(
184 name="EGAM11_ZEGMassTool",
185 Object1Requirements=requirement_tag,
186 Object2Requirements=requirement_probe,
187 StoreGateEntryName="EGAM11_ElectronPhotonMass",
188 Mass1Hypothesis=0.511 * MeV,
189 Mass2Hypothesis=0.511 * MeV,
190 Container1Name="Electrons",
191 Container2Name="Photons",
192 Pt2BranchName="DFCommonPhotons_et",
193 Eta2BranchName="DFCommonPhotons_eta",
194 Phi2BranchName="DFCommonPhotons_phi",
195 CheckCharge=False,
196 DoTransverseMass=False,
197 MinDeltaR=0.0,
198 )
199 )
200 return acc
201
202
203# Main algorithm config
204def EGAM11KernelCfg(flags, name="EGAM11Kernel", **kwargs):
205 """Configure the derivation framework driving algorithm (kernel)
206 for EGAM11"""
207 acc = ComponentAccumulator()
208
209 # Schedule extra jets collections
210 from JetRecConfig.StandardSmallRJets import AntiKt4PV0Track
211 from JetRecConfig.JetRecConfig import JetRecCfg
212
213 jetList = [AntiKt4PV0Track]
214 for jd in jetList:
215 acc.merge(JetRecCfg(flags, jd))
216
217 # Common augmentations
218 # cannot use PhysCommon sequence because
219 # - no triggers
220 # - no TauJets
221 # so we have to use a modified version here
222 from DerivationFrameworkInDet.InDetCommonConfig import InDetCommonCfg
223 from DerivationFrameworkMuons.MuonsCommonConfig import MuonsCommonCfg
224 from DerivationFrameworkEGamma.EGammaCommonConfig import EGammaCommonCfg
225
226 TrackingFlags = flags.Tracking
227 acc.merge(
228 InDetCommonCfg(
229 flags,
230 DoVertexFinding=TrackingFlags.doVertexFinding,
231 AddPseudoTracks=TrackingFlags.doPseudoTracking,
232 DecoLRTTTVA=False,
233 DoR3LargeD0=flags.Tracking.doLargeD0,
234 StoreSeparateLargeD0Container=TrackingFlags.storeSeparateLargeD0Container,
235 MergeLRT=False,
236 )
237 )
238 acc.merge(MuonsCommonCfg(flags))
239 acc.merge(EGammaCommonCfg(flags))
240
241 # jet cleaning
242 # standard way in PhysCommon is
243 # - calculate tau ID (needed for default jet OR)
244 # - decorate jets with overlap removal
245 # - do event cleaning
246 # but taus are missing in HI derivations so need to do differently
247
248 # NO JVT criteria in HI data (see pp config for details)
249
250 # Decorate if jet passes OR and save decoration DFCommonJets_passOR
251 # Use modified OR that does not check overlaps with tauls
252 from AssociationUtils.AssociationUtilsConfig import OverlapRemovalToolCfg
253
254 outputLabel = "DFCommonJets_passOR_HI"
255 bJetLabel = "" # default
256 tauLabel = "" # workaround for missing taus
257 tauKey = "" # workaround for missing taus
258 orTool = acc.popToolsAndMerge(
259 OverlapRemovalToolCfg(
260 flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=False
261 )
262 )
263 algOR = CompFactory.OverlapRemovalGenUseAlg(
264 "OverlapRemovalGenUseAlg",
265 OverlapLabel=outputLabel,
266 OverlapRemovalTool=orTool,
267 JetKey = 'AntiKt4HIJets',
268 TauKey=tauKey,
269 TauLabel=tauLabel,
270 BJetLabel=bJetLabel,
271 )
272 acc.addEventAlgo(algOR)
273
274 # EGAM11 augmentations
275 augmentationTools = []
276
277 # ====================================================================
278 # ee and egamma invariant masses
279 # ====================================================================
280 EGAM11ZeeMassTool1 = acc.popToolsAndMerge(EGAM11ZeeMassTool1Cfg(flags))
281 acc.addPublicTool(EGAM11ZeeMassTool1)
282 augmentationTools.append(EGAM11ZeeMassTool1)
283
284 EGAM11ZeeMassTool2 = acc.popToolsAndMerge(EGAM11ZeeMassTool2Cfg(flags))
285 acc.addPublicTool(EGAM11ZeeMassTool2)
286 augmentationTools.append(EGAM11ZeeMassTool2)
287
288 EGAM11ZeeMassTool3 = acc.popToolsAndMerge(EGAM11ZeeMassTool3Cfg(flags))
289 acc.addPublicTool(EGAM11ZeeMassTool3)
290 augmentationTools.append(EGAM11ZeeMassTool3)
291
292 EGAM11ZegMassTool = acc.popToolsAndMerge(EGAM11ZegMassToolCfg(flags))
293 acc.addPublicTool(EGAM11ZegMassTool)
294 augmentationTools.append(EGAM11ZegMassTool)
295
296 # thinning tools
297 thinningTools = []
298 streamName = kwargs["StreamName"]
299
300 # Track thinning
301 if flags.Derivation.Egamma.doTrackThinning:
302 from DerivationFrameworkInDet.InDetToolsConfig import (
303 TrackParticleThinningCfg,
304 MuonTrackParticleThinningCfg,
305 TauTrackParticleThinningCfg,
306 )
307
308 TrackThinningKeepElectronTracks = True
309 TrackThinningKeepPhotonTracks = True
310 TrackThinningKeepAllElectronTracks = True
311 TrackThinningKeepJetTracks = False
312 TrackThinningKeepMuonTracks = False
313 TrackThinningKeepTauTracks = False
314 TrackThinningKeepPVTracks = True
315
316 # Tracks associated with Electrons
317 if TrackThinningKeepElectronTracks:
318 EGAM11ElectronTPThinningTool = (
319 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
320 name="EGAM11ElectronTPThinningTool",
321 StreamName=streamName,
322 SGKey="Electrons",
323 GSFTrackParticlesKey="GSFTrackParticles",
324 InDetTrackParticlesKey="InDetTrackParticles",
325 SelectionString="Electrons.pt > 0*GeV",
326 BestMatchOnly=True,
327 ConeSize=0.3,
328 )
329 )
330 acc.addPublicTool(EGAM11ElectronTPThinningTool)
331 thinningTools.append(EGAM11ElectronTPThinningTool)
332
333 # Tracks associated with Electrons (all tracks, large cone, for track
334 # isolation studies of the selected electrons)
335 if TrackThinningKeepAllElectronTracks:
336 EGAM11ElectronTPThinningTool2 = (
337 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
338 name="EGAM11ElectronTPThinningTool2",
339 StreamName=streamName,
340 SGKey="Electrons",
341 GSFTrackParticlesKey="GSFTrackParticles",
342 InDetTrackParticlesKey="InDetTrackParticles",
343 SelectionString="Electrons.pt > 4*GeV",
344 BestMatchOnly=False,
345 ConeSize=0.6,
346 )
347 )
348 acc.addPublicTool(EGAM11ElectronTPThinningTool2)
349 thinningTools.append(EGAM11ElectronTPThinningTool2)
350
351 # Tracks associated with Photons
352 if TrackThinningKeepPhotonTracks:
353 EGAM11PhotonTPThinningTool = (
354 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
355 name="EGAM11PhotonTPThinningTool",
356 StreamName=streamName,
357 SGKey="Photons",
358 GSFTrackParticlesKey="GSFTrackParticles",
359 InDetTrackParticlesKey="InDetTrackParticles",
360 GSFConversionVerticesKey="GSFConversionVertices",
361 SelectionString="Photons.pt > 0*GeV",
362 BestMatchOnly=True,
363 ConeSize=0.3,
364 )
365 )
366 acc.addPublicTool(EGAM11PhotonTPThinningTool)
367 thinningTools.append(EGAM11PhotonTPThinningTool)
368
369 # Tracks associated with Jets
370 if TrackThinningKeepJetTracks:
371 EGAM11JetTPThinningTool = (
372 CompFactory.DerivationFramework.JetTrackParticleThinning(
373 name="EGAM11JetTPThinningTool",
374 StreamName=streamName,
375 JetKey="AntiKt4EMTopoJets",
376 InDetTrackParticlesKey="InDetTrackParticles",
377 )
378 )
379 acc.addPublicTool(EGAM11JetTPThinningTool)
380 thinningTools.append(EGAM11JetTPThinningTool)
381
382 # Tracks associated with Muons
383 if TrackThinningKeepMuonTracks:
384 EGAM11MuonTPThinningTool = acc.getPrimaryAndMerge(
385 MuonTrackParticleThinningCfg(
386 flags,
387 name="EGAM11MuonTPThinningTool",
388 StreamName=streamName,
389 MuonKey="Muons",
390 InDetTrackParticlesKey="InDetTrackParticles",
391 )
392 )
393 thinningTools.append(EGAM11MuonTPThinningTool)
394
395 # Tracks associated with Taus
396 if TrackThinningKeepTauTracks:
397 EGAM11TauTPThinningTool = acc.getPrimaryAndMerge(
398 TauTrackParticleThinningCfg(
399 flags,
400 name="EGAM11TauTPThinningTool",
401 StreamName=streamName,
402 TauKey="TauJets",
403 ConeSize=0.6,
404 InDetTrackParticlesKey="InDetTrackParticles",
405 DoTauTracksThinning=True,
406 TauTracksKey="TauTracks",
407 )
408 )
409 thinningTools.append(EGAM11TauTPThinningTool)
410
411 # Tracks from primary vertex
412 thinning_expression = " && ".join(
413 [
414 "(InDetTrackParticles.DFCommonTightPrimary)",
415 "(abs(InDetTrackParticles.DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta)<3*mm)",
416 "(InDetTrackParticles.pt>10*GeV)",
417 ]
418 )
419 if TrackThinningKeepPVTracks:
420 EGAM11TPThinningTool = acc.getPrimaryAndMerge(
421 TrackParticleThinningCfg(
422 flags,
423 name="EGAM11TPThinningTool",
424 StreamName=streamName,
425 SelectionString=thinning_expression,
426 InDetTrackParticlesKey="InDetTrackParticles",
427 )
428 )
429 thinningTools.append(EGAM11TPThinningTool)
430
431 # keep topoclusters around electrons
432 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
433 CaloClusterThinningCfg,
434 )
435
436 EGAM11CCTCThinningTool = acc.getPrimaryAndMerge(
437 CaloClusterThinningCfg(
438 flags,
439 name="EGAM11CCTCThinningTool",
440 StreamName=streamName,
441 SGKey="Electrons",
442 SelectionString="Electrons.pt>4*GeV",
443 TopoClCollectionSGKey="SubtractedCaloCalTopoClusters",
444 ConeSize=0.5,
445 )
446 )
447 thinningTools.append(EGAM11CCTCThinningTool)
448
449 # truth thinning
450 if flags.Input.isMC:
451 # W, Z and Higgs
452 truth_cond_WZH = "(TruthParticles.isW || TruthParticles.isZ || TruthParticles.isHiggs)"
453 # Leptons
454 truth_cond_lep = "(TruthParticles.isLepton)"
455 # Top quark
456 truth_cond_top = "(TruthParticles.isTop)"
457 # Photon
458 truth_cond_gam = " && ".join(
459 ["(TruthParticles.isPhoton)", "(TruthParticles.pt > 1*GeV)"]
460 )
461 # stable particles
462 truth_cond_finalState = "(TruthParticles.isGenStable)"
463 truth_expression = (
464 "( "
465 + truth_cond_WZH
466 + " ) || "
467 + "( "
468 + truth_cond_lep
469 + " ) || "
470 + "( "
471 + truth_cond_top
472 + " ) || "
473 + "( "
474 + truth_cond_gam
475 + " ) || "
476 + "( "
477 + truth_cond_finalState
478 + " )"
479 )
480 print("EGAM11 truth thinning expression: ", truth_expression)
481
482 EGAM11TruthThinningTool = CompFactory.DerivationFramework.GenericTruthThinning(
483 name="EGAM11TruthThinningTool",
484 StreamName=streamName,
485 ParticleSelectionString=truth_expression,
486 PreserveDescendants=False,
487 PreserveGeneratorDescendants=True,
488 PreserveAncestors=True,
489 )
490 acc.addPublicTool(EGAM11TruthThinningTool)
491 thinningTools.append(EGAM11TruthThinningTool)
492
493 # skimming
494 skimmingTool = acc.getPrimaryAndMerge(EGAM11SkimmingToolCfg(flags))
495
496 # setup the kernel
497 acc.addEventAlgo(
498 CompFactory.DerivationFramework.DerivationKernel(
499 name,
500 SkimmingTools=[skimmingTool],
501 AugmentationTools=augmentationTools,
502 ThinningTools=thinningTools,
503 )
504 )
505
506 return acc
507
508
509def EGAM11Cfg(flags):
510 acc = ComponentAccumulator()
511
512 from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
513 EGAM11TriggerListsHelper = TriggerListsHelper(flags)
514
515 # configure skimming/thinning/augmentation tools
516 acc.merge(
518 flags,
519 name="EGAM11Kernel",
520 StreamName="StreamDAOD_EGAM11",
521 TriggerListsHelper=EGAM11TriggerListsHelper,
522 )
523 )
524
525 # configure slimming
526 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
527 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
528 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
529
530 EGAM11SlimmingHelper = SlimmingHelper(
531 "EGAM11SlimmingHelper",
532 NamesAndTypes=flags.Input.TypedCollections,
533 flags=flags,
534 )
535
536 # ------------------------------------------
537 # containers for which we save all variables
538 # -------------------------------------------
539
540 # baseline
541 EGAM11SlimmingHelper.AllVariables = [
542 "Electrons",
543 "GSFTrackParticles",
544 "egammaClusters",
545 "AntiKt4HIJets",
546 ]
547
548 # for trigger studies we also add trigger containers
549 MenuType = ""
550 if flags.Trigger.EDMVersion == 2:
551 MenuType = "Run2"
552 elif flags.Trigger.EDMVersion == 3:
553 MenuType = "Run3"
554 if MenuType:
555 EGAM11SlimmingHelper.AllVariables += ExtraContainersTrigger[MenuType]
556 EGAM11SlimmingHelper.AllVariables += ExtraContainersElectronTrigger[MenuType]
557
558 # on MC we also add:
559 if flags.Input.isMC:
560 EGAM11SlimmingHelper.AllVariables += [
561 "TruthEvents",
562 "TruthParticles",
563 "TruthVertices",
564 "egammaTruthParticles",
565 ]
566
567 # -------------------------------------------
568 # containers that we slim
569 # -------------------------------------------
570
571 # first add variables from smart-slimming
572 # adding only also those for which we add all variables since
573 # the XXXCPContent.py files also bring in some extra variables
574 # for other collections
575 EGAM11SlimmingHelper.SmartCollections = [
576 "Photons",
577 "Muons",
578 "PrimaryVertices",
579 "InDetTrackParticles"
580 ]
581 if flags.Input.isMC:
582 EGAM11SlimmingHelper.SmartCollections += [
583 "AntiKt4TruthJets",
584 "AntiKt4TruthDressedWZJets",
585 ]
586
587 # then add extra variables:
588
589 # muons
590 EGAM11SlimmingHelper.ExtraVariables += [
591 "Muons.ptcone20.ptcone30.ptcone40.etcone20.etcone30.etcone40"
592 ]
593
594 # conversion vertices
595 EGAM11SlimmingHelper.ExtraVariables += [
596 "GSFConversionVertices.x.y.z.px.py.pz.pt1.pt2.etaAtCalo.phiAtCalo",
597 "GSFConversionVertices.trackParticleLinks",
598 ]
599
600 # primary vertices
601 EGAM11SlimmingHelper.ExtraVariables += ["PrimaryVertices.sumPt2"]
602
603 # track jets
604 EGAM11SlimmingHelper.ExtraVariables += [
605 "AntiKt4PV0TrackJets.pt.eta.phi.e.m.constituentLinks"
606 ]
607
608 # photons: detailed shower shape variables
609 EGAM11SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
610
611 # truth
612 if flags.Input.isMC:
613 EGAM11SlimmingHelper.ExtraVariables += [
614 "MuonTruthParticles.e.px.py.pz.status.pdgId.truthClassification.truthOrigin.truthType"
615 ]
616
617 EGAM11SlimmingHelper.ExtraVariables += [
618 "Photons.truthClassification.truthOrigin.truthType.truthParticleLink"
619 ]
620
621 # Add event info
622 if flags.Derivation.Egamma.doEventInfoSlimming:
623 EGAM11SlimmingHelper.SmartCollections.append("EventInfo")
624 else:
625 EGAM11SlimmingHelper.AllVariables += ["EventInfo"]
626
627 # Add HIEventShape and CaloSums variables for heavy ions
628 EGAM11SlimmingHelper.AllVariables += ["HIEventShape"]
629 EGAM11SlimmingHelper.AllVariables += ["CaloSums"]
630
631 # Full CellContainers not added in HI data (CaloCellContainer#AllCalo and CaloClusterCellLinkContainer#egammaClusters_links)
632
633 EGAM11ItemList = EGAM11SlimmingHelper.GetItemList()
634 acc.merge(
635 OutputStreamCfg(
636 flags,
637 "DAOD_EGAM11",
638 ItemList=EGAM11ItemList,
639 AcceptAlgs=["EGAM11Kernel"],
640 )
641 )
642 acc.merge(
643 SetupMetaDataForStreamCfg(
644 flags,
645 "DAOD_EGAM11",
646 AcceptAlgs=["EGAM11Kernel"],
647 createMetadata=[
648 MetadataCategory.CutFlowMetaData,
649 MetadataCategory.TruthMetaData,
650 ],
651 )
652 )
653
654 return acc
void print(char *figname, TCanvas *c1)
EGAM11ZeeMassTool3Cfg(flags)
Definition EGAM11.py:121
EGAM11ZeeMassTool2Cfg(flags)
Definition EGAM11.py:85
EGAM11KernelCfg(flags, name="EGAM11Kernel", **kwargs)
Definition EGAM11.py:204
EGAM11SkimmingToolCfg(flags)
Definition EGAM11.py:26
EGAM11ZegMassToolCfg(flags)
Definition EGAM11.py:160
EGAM11ZeeMassTool1Cfg(flags)
Definition EGAM11.py:44
EGAM11Cfg(flags)
Definition EGAM11.py:509