ATLAS Offline Software
Loading...
Searching...
No Matches
python.EGAM11 Namespace Reference

Functions

 EGAM11SkimmingToolCfg (flags)
 EGAM11ZeeMassTool1Cfg (flags)
 EGAM11ZeeMassTool2Cfg (flags)
 EGAM11ZeeMassTool3Cfg (flags)
 EGAM11ZegMassToolCfg (flags)
 EGAM11KernelCfg (flags, name="EGAM11Kernel", **kwargs)
 EGAM11Cfg (flags)

Function Documentation

◆ EGAM11Cfg()

python.EGAM11.EGAM11Cfg ( flags)

Definition at line 508 of file EGAM11.py.

508def EGAM11Cfg(flags):
509 acc = ComponentAccumulator()
510
511 # configure skimming/thinning/augmentation tools
512 acc.merge(
513 EGAM11KernelCfg(
514 flags,
515 name="EGAM11Kernel",
516 StreamName="StreamDAOD_EGAM11",
517 TriggerListsHelper=None,
518 )
519 )
520
521 # configure slimming
522 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
523 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
524 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
525
526 EGAM11SlimmingHelper = SlimmingHelper(
527 "EGAM11SlimmingHelper",
528 NamesAndTypes=flags.Input.TypedCollections,
529 flags=flags,
530 )
531
532 # ------------------------------------------
533 # containers for which we save all variables
534 # -------------------------------------------
535
536 # baseline
537 EGAM11SlimmingHelper.AllVariables = [
538 "Electrons",
539 "GSFTrackParticles",
540 "egammaClusters",
541 "AntiKt4HIJets",
542 ]
543
544 # on MC we also add:
545 if flags.Input.isMC:
546 EGAM11SlimmingHelper.AllVariables += [
547 "TruthEvents",
548 "TruthParticles",
549 "TruthVertices",
550 "egammaTruthParticles",
551 ]
552
553 # -------------------------------------------
554 # containers that we slim
555 # -------------------------------------------
556
557 # first add variables from smart-slimming
558 # adding only also those for which we add all variables since
559 # the XXXCPContent.py files also bring in some extra variables
560 # for other collections
561 EGAM11SlimmingHelper.SmartCollections = [
562 "Photons",
563 "Muons",
564 "PrimaryVertices",
565 "InDetTrackParticles"
566 ]
567 if flags.Input.isMC:
568 EGAM11SlimmingHelper.SmartCollections += [
569 "AntiKt4TruthJets",
570 "AntiKt4TruthDressedWZJets",
571 ]
572
573 # then add extra variables:
574
575 # muons
576 EGAM11SlimmingHelper.ExtraVariables += [
577 "Muons.ptcone20.ptcone30.ptcone40.etcone20.etcone30.etcone40"
578 ]
579
580 # conversion vertices
581 EGAM11SlimmingHelper.ExtraVariables += [
582 "GSFConversionVertices.x.y.z.px.py.pz.pt1.pt2.etaAtCalo.phiAtCalo",
583 "GSFConversionVertices.trackParticleLinks",
584 ]
585
586 # primary vertices
587 EGAM11SlimmingHelper.ExtraVariables += ["PrimaryVertices.sumPt2"]
588
589 # track jets
590 EGAM11SlimmingHelper.ExtraVariables += [
591 "AntiKt4PV0TrackJets.pt.eta.phi.e.m.constituentLinks"
592 ]
593
594 # photons: detailed shower shape variables
595 EGAM11SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
596
597 # truth
598 if flags.Input.isMC:
599 EGAM11SlimmingHelper.ExtraVariables += [
600 "MuonTruthParticles.e.px.py.pz.status.pdgId.truthOrigin.truthType"
601 ]
602
603 EGAM11SlimmingHelper.ExtraVariables += [
604 "Photons.truthOrigin.truthType.truthParticleLink"
605 ]
606
607 # Add event info
608 if flags.Derivation.Egamma.doEventInfoSlimming:
609 EGAM11SlimmingHelper.SmartCollections.append("EventInfo")
610 else:
611 EGAM11SlimmingHelper.AllVariables += ["EventInfo"]
612
613 # Add HIEventShape and CaloSums variables for heavy ions
614 EGAM11SlimmingHelper.AllVariables += ["HIEventShape"]
615 EGAM11SlimmingHelper.AllVariables += ["CaloSums"]
616
617 # Full CellContainers not added in HI data (CaloCellContainer#AllCalo and CaloClusterCellLinkContainer#egammaClusters_links)
618
619 EGAM11ItemList = EGAM11SlimmingHelper.GetItemList()
620 acc.merge(
621 OutputStreamCfg(
622 flags,
623 "DAOD_EGAM11",
624 ItemList=EGAM11ItemList,
625 AcceptAlgs=["EGAM11Kernel"],
626 )
627 )
628 acc.merge(
629 SetupMetaDataForStreamCfg(
630 flags,
631 "DAOD_EGAM11",
632 AcceptAlgs=["EGAM11Kernel"],
633 createMetadata=[
634 MetadataCategory.CutFlowMetaData,
635 MetadataCategory.TruthMetaData,
636 ],
637 )
638 )
639
640 return acc

◆ EGAM11KernelCfg()

python.EGAM11.EGAM11KernelCfg ( flags,
name = "EGAM11Kernel",
** kwargs )
Configure the derivation framework driving algorithm (kernel)
for EGAM11

Definition at line 199 of file EGAM11.py.

199def EGAM11KernelCfg(flags, name="EGAM11Kernel", **kwargs):
200 """Configure the derivation framework driving algorithm (kernel)
201 for EGAM11"""
202 acc = ComponentAccumulator()
203
204 # Schedule extra jets collections
205 from JetRecConfig.StandardSmallRJets import AntiKt4PV0Track
206 from JetRecConfig.JetRecConfig import JetRecCfg
207
208 jetList = [AntiKt4PV0Track]
209 for jd in jetList:
210 acc.merge(JetRecCfg(flags, jd))
211
212 # Common augmentations
213 # cannot use PhysCommon sequence because
214 # - no triggers
215 # - no TauJets
216 # so we have to use a modified version here
217 from DerivationFrameworkInDet.InDetCommonConfig import InDetCommonCfg
218 from DerivationFrameworkMuons.MuonsCommonConfig import MuonsCommonCfg
219 from DerivationFrameworkEGamma.EGammaCommonConfig import EGammaCommonCfg
220
221 TrackingFlags = flags.Tracking
222 acc.merge(
223 InDetCommonCfg(
224 flags,
225 DoVertexFinding=TrackingFlags.doVertexFinding,
226 AddPseudoTracks=TrackingFlags.doPseudoTracking,
227 DecoLRTTTVA=False,
228 DoR3LargeD0=flags.Tracking.doLargeD0,
229 StoreSeparateLargeD0Container=TrackingFlags.storeSeparateLargeD0Container,
230 MergeLRT=False,
231 )
232 )
233 acc.merge(MuonsCommonCfg(flags))
234 acc.merge(EGammaCommonCfg(flags))
235
236 # jet cleaning
237 # standard way in PhysCommon is
238 # - calculate tau ID (needed for default jet OR)
239 # - decorate jets with overlap removal
240 # - do event cleaning
241 # but taus are missing in HI derivations so need to do differently
242
243 # NO JVT criteria in HI data (see pp config for details)
244
245 # Decorate if jet passes OR and save decoration DFCommonJets_passOR
246 # Use modified OR that does not check overlaps with tauls
247 from AssociationUtils.AssociationUtilsConfig import OverlapRemovalToolCfg
248
249 outputLabel = "DFCommonJets_passOR_HI"
250 bJetLabel = "" # default
251 tauLabel = "" # workaround for missing taus
252 tauKey = "" # workaround for missing taus
253 orTool = acc.popToolsAndMerge(
254 OverlapRemovalToolCfg(
255 flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=False
256 )
257 )
258 algOR = CompFactory.OverlapRemovalGenUseAlg(
259 "OverlapRemovalGenUseAlg",
260 OverlapLabel=outputLabel,
261 OverlapRemovalTool=orTool,
262 JetKey = 'AntiKt4HIJets',
263 TauKey=tauKey,
264 TauLabel=tauLabel,
265 BJetLabel=bJetLabel,
266 )
267 acc.addEventAlgo(algOR)
268
269 # EGAM11 augmentations
270 augmentationTools = []
271
272 # ====================================================================
273 # ee and egamma invariant masses
274 # ====================================================================
275 EGAM11ZeeMassTool1 = acc.popToolsAndMerge(EGAM11ZeeMassTool1Cfg(flags))
276 acc.addPublicTool(EGAM11ZeeMassTool1)
277 augmentationTools.append(EGAM11ZeeMassTool1)
278
279 EGAM11ZeeMassTool2 = acc.popToolsAndMerge(EGAM11ZeeMassTool2Cfg(flags))
280 acc.addPublicTool(EGAM11ZeeMassTool2)
281 augmentationTools.append(EGAM11ZeeMassTool2)
282
283 EGAM11ZeeMassTool3 = acc.popToolsAndMerge(EGAM11ZeeMassTool3Cfg(flags))
284 acc.addPublicTool(EGAM11ZeeMassTool3)
285 augmentationTools.append(EGAM11ZeeMassTool3)
286
287 EGAM11ZegMassTool = acc.popToolsAndMerge(EGAM11ZegMassToolCfg(flags))
288 acc.addPublicTool(EGAM11ZegMassTool)
289 augmentationTools.append(EGAM11ZegMassTool)
290
291 # thinning tools
292 thinningTools = []
293 streamName = kwargs["StreamName"]
294
295 # Track thinning
296 if flags.Derivation.Egamma.doTrackThinning:
297 from DerivationFrameworkInDet.InDetToolsConfig import (
298 TrackParticleThinningCfg,
299 MuonTrackParticleThinningCfg,
300 TauTrackParticleThinningCfg,
301 )
302
303 TrackThinningKeepElectronTracks = True
304 TrackThinningKeepPhotonTracks = True
305 TrackThinningKeepAllElectronTracks = True
306 TrackThinningKeepJetTracks = False
307 TrackThinningKeepMuonTracks = False
308 TrackThinningKeepTauTracks = False
309 TrackThinningKeepPVTracks = True
310
311 # Tracks associated with Electrons
312 if TrackThinningKeepElectronTracks:
313 EGAM11ElectronTPThinningTool = (
314 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
315 name="EGAM11ElectronTPThinningTool",
316 StreamName=streamName,
317 SGKey="Electrons",
318 GSFTrackParticlesKey="GSFTrackParticles",
319 InDetTrackParticlesKey="InDetTrackParticles",
320 SelectionString="Electrons.pt > 0*GeV",
321 BestMatchOnly=True,
322 ConeSize=0.3,
323 )
324 )
325 acc.addPublicTool(EGAM11ElectronTPThinningTool)
326 thinningTools.append(EGAM11ElectronTPThinningTool)
327
328 # Tracks associated with Electrons (all tracks, large cone, for track
329 # isolation studies of the selected electrons)
330 if TrackThinningKeepAllElectronTracks:
331 EGAM11ElectronTPThinningTool2 = (
332 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
333 name="EGAM11ElectronTPThinningTool2",
334 StreamName=streamName,
335 SGKey="Electrons",
336 GSFTrackParticlesKey="GSFTrackParticles",
337 InDetTrackParticlesKey="InDetTrackParticles",
338 SelectionString="Electrons.pt > 4*GeV",
339 BestMatchOnly=False,
340 ConeSize=0.6,
341 )
342 )
343 acc.addPublicTool(EGAM11ElectronTPThinningTool2)
344 thinningTools.append(EGAM11ElectronTPThinningTool2)
345
346 # Tracks associated with Photons
347 if TrackThinningKeepPhotonTracks:
348 EGAM11PhotonTPThinningTool = (
349 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
350 name="EGAM11PhotonTPThinningTool",
351 StreamName=streamName,
352 SGKey="Photons",
353 GSFTrackParticlesKey="GSFTrackParticles",
354 InDetTrackParticlesKey="InDetTrackParticles",
355 GSFConversionVerticesKey="GSFConversionVertices",
356 SelectionString="Photons.pt > 0*GeV",
357 BestMatchOnly=True,
358 ConeSize=0.3,
359 )
360 )
361 acc.addPublicTool(EGAM11PhotonTPThinningTool)
362 thinningTools.append(EGAM11PhotonTPThinningTool)
363
364 # Tracks associated with Jets
365 if TrackThinningKeepJetTracks:
366 EGAM11JetTPThinningTool = (
367 CompFactory.DerivationFramework.JetTrackParticleThinning(
368 name="EGAM11JetTPThinningTool",
369 StreamName=streamName,
370 JetKey="AntiKt4EMTopoJets",
371 InDetTrackParticlesKey="InDetTrackParticles",
372 )
373 )
374 acc.addPublicTool(EGAM11JetTPThinningTool)
375 thinningTools.append(EGAM11JetTPThinningTool)
376
377 # Tracks associated with Muons
378 if TrackThinningKeepMuonTracks:
379 EGAM11MuonTPThinningTool = acc.getPrimaryAndMerge(
380 MuonTrackParticleThinningCfg(
381 flags,
382 name="EGAM11MuonTPThinningTool",
383 StreamName=streamName,
384 MuonKey="Muons",
385 InDetTrackParticlesKey="InDetTrackParticles",
386 )
387 )
388 thinningTools.append(EGAM11MuonTPThinningTool)
389
390 # Tracks associated with Taus
391 if TrackThinningKeepTauTracks:
392 EGAM11TauTPThinningTool = acc.getPrimaryAndMerge(
393 TauTrackParticleThinningCfg(
394 flags,
395 name="EGAM11TauTPThinningTool",
396 StreamName=streamName,
397 TauKey="TauJets",
398 ConeSize=0.6,
399 InDetTrackParticlesKey="InDetTrackParticles",
400 DoTauTracksThinning=True,
401 TauTracksKey="TauTracks",
402 )
403 )
404 thinningTools.append(EGAM11TauTPThinningTool)
405
406 # Tracks from primary vertex
407 thinning_expression = " && ".join(
408 [
409 "(InDetTrackParticles.DFCommonTightPrimary)",
410 "(abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta)<3*mm)",
411 "(InDetTrackParticles.pt>10*GeV)",
412 ]
413 )
414 if TrackThinningKeepPVTracks:
415 EGAM11TPThinningTool = acc.getPrimaryAndMerge(
416 TrackParticleThinningCfg(
417 flags,
418 name="EGAM11TPThinningTool",
419 StreamName=streamName,
420 SelectionString=thinning_expression,
421 InDetTrackParticlesKey="InDetTrackParticles",
422 )
423 )
424 thinningTools.append(EGAM11TPThinningTool)
425
426 # keep topoclusters around electrons
427 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig import (
428 CaloClusterThinningCfg,
429 )
430
431 EGAM11CCTCThinningTool = acc.getPrimaryAndMerge(
432 CaloClusterThinningCfg(
433 flags,
434 name="EGAM11CCTCThinningTool",
435 StreamName=streamName,
436 SGKey="Electrons",
437 SelectionString="Electrons.pt>4*GeV",
438 TopoClCollectionSGKey="SubtractedCaloCalTopoClusters",
439 ConeSize=0.5,
440 )
441 )
442 thinningTools.append(EGAM11CCTCThinningTool)
443
444 # truth thinning
445 if flags.Input.isMC:
446 # W, Z and Higgs
447 truth_cond_WZH = " && ".join(
448 ["(abs(TruthParticles.pdgId) >= 23)", "(abs(TruthParticles.pdgId) <= 25)"]
449 )
450 # Leptons
451 truth_cond_lep = " && ".join(
452 ["(abs(TruthParticles.pdgId) >= 11)", "(abs(TruthParticles.pdgId) <= 16)"]
453 )
454 # Top quark
455 truth_cond_top = "(abs(TruthParticles.pdgId) == 6)"
456 # Photon
457 truth_cond_gam = " && ".join(
458 ["(abs(TruthParticles.pdgId) == 22)", "(TruthParticles.pt > 1*GeV)"]
459 )
460 # stable particles
461 truth_cond_finalState = "(TruthParticles.isGenStable)"
462 truth_expression = (
463 "( "
464 + truth_cond_WZH
465 + " ) || "
466 + "( "
467 + truth_cond_lep
468 + " ) || "
469 + "( "
470 + truth_cond_top
471 + " ) || "
472 + "( "
473 + truth_cond_gam
474 + " ) || "
475 + "( "
476 + truth_cond_finalState
477 + " )"
478 )
479 print("EGAM11 truth thinning expression: ", truth_expression)
480
481 EGAM11TruthThinningTool = CompFactory.DerivationFramework.GenericTruthThinning(
482 name="EGAM11TruthThinningTool",
483 StreamName=streamName,
484 ParticleSelectionString=truth_expression,
485 PreserveDescendants=False,
486 PreserveGeneratorDescendants=True,
487 PreserveAncestors=True,
488 )
489 acc.addPublicTool(EGAM11TruthThinningTool)
490 thinningTools.append(EGAM11TruthThinningTool)
491
492 # skimming
493 skimmingTool = acc.getPrimaryAndMerge(EGAM11SkimmingToolCfg(flags))
494
495 # setup the kernel
496 acc.addEventAlgo(
497 CompFactory.DerivationFramework.DerivationKernel(
498 name,
499 SkimmingTools=[skimmingTool],
500 AugmentationTools=augmentationTools,
501 ThinningTools=thinningTools,
502 )
503 )
504
505 return acc
506
507
void print(char *figname, TCanvas *c1)

◆ EGAM11SkimmingToolCfg()

python.EGAM11.EGAM11SkimmingToolCfg ( flags)
Configure the EGAM11 skimming tool

Definition at line 21 of file EGAM11.py.

21def EGAM11SkimmingToolCfg(flags):
22 """Configure the EGAM11 skimming tool"""
23 expression = " || ".join(
24 [
25 "(count( EGAM11_DiElectronMass1 > 50.0*GeV ) >= 1)",
26 "(count( EGAM11_DiElectronMass2 > 50.0*GeV ) >= 1)",
27 "(count( EGAM11_DiElectronMass3 > 50.0*GeV ) >= 1)",
28 "(count( EGAM11_ElectronPhotonMass > 50.0*GeV )>=1)",
29 ]
30 )
31 print("EGAM11 skimming expression: ", expression)
32
33 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
34 xAODStringSkimmingToolCfg)
35 return xAODStringSkimmingToolCfg(flags, name="EGAM11SkimmingTool",
36 expression=expression, TrigDecisionTool=None)
37
38

◆ EGAM11ZeeMassTool1Cfg()

python.EGAM11.EGAM11ZeeMassTool1Cfg ( flags)
Configure the EGAM11 ee invariant mass augmentation tool 1

Definition at line 39 of file EGAM11.py.

39def EGAM11ZeeMassTool1Cfg(flags):
40 """Configure the EGAM11 ee invariant mass augmentation tool 1"""
41 acc = ComponentAccumulator()
42
43 # ====================================================================
44 # 1. di-electron invariant mass for events passing the Z->ee
45 # selection for the e-gamma calibration
46 #
47 # 1 tight e, central, pT>25 GeV
48 # 1 medium e, pT>20 GeV
49 # opposite-sign
50 # mee>50 GeV (cut applied in skimming step later)
51 # ====================================================================
52
53 requirement_tag = " && ".join(
54 ["(Electrons.DFCommonElectronsLHTight)", "(Electrons.pt > 24.5*GeV)"]
55 )
56
57 requirement_probe = " && ".join(
58 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 19.5*GeV)"]
59 )
60
61 acc.setPrivateTools(
62 CompFactory.DerivationFramework.EGInvariantMassTool(
63 name="EGAM11_ZEEMassTool1",
64 Object1Requirements=requirement_tag,
65 Object2Requirements=requirement_probe,
66 StoreGateEntryName="EGAM11_DiElectronMass1",
67 Mass1Hypothesis=0.511 * MeV,
68 Mass2Hypothesis=0.511 * MeV,
69 Container1Name="Electrons",
70 Container2Name="Electrons",
71 CheckCharge=True,
72 DoTransverseMass=False,
73 MinDeltaR=0.0,
74 )
75 )
76
77 return acc
78
79

◆ EGAM11ZeeMassTool2Cfg()

python.EGAM11.EGAM11ZeeMassTool2Cfg ( flags)
Configure the EGAM11 ee invariant mass augmentation tool 2

Definition at line 80 of file EGAM11.py.

80def EGAM11ZeeMassTool2Cfg(flags):
81 """Configure the EGAM11 ee invariant mass augmentation tool 2"""
82 acc = ComponentAccumulator()
83
84 # ====================================================================
85 # 2. di-electron invariant mass for events passing the Z->e selection
86 # for the e-gamma calibration
87 #
88 # 2 medium e, central, pT>20 GeV
89 # opposite-sign
90 # mee>50 GeV (cut applied in skimming step later)
91 # ====================================================================
92
93 requirement = " && ".join(
94 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 19.5*GeV)"]
95 )
96
97 acc.setPrivateTools(
98 CompFactory.DerivationFramework.EGInvariantMassTool(
99 name="EGAM11_ZEEMassTool2",
100 Object1Requirements=requirement,
101 Object2Requirements=requirement,
102 StoreGateEntryName="EGAM11_DiElectronMass2",
103 Mass1Hypothesis=0.511 * MeV,
104 Mass2Hypothesis=0.511 * MeV,
105 Container1Name="Electrons",
106 Container2Name="Electrons",
107 CheckCharge=True,
108 DoTransverseMass=False,
109 MinDeltaR=0.0,
110 )
111 )
112
113 return acc
114
115

◆ EGAM11ZeeMassTool3Cfg()

python.EGAM11.EGAM11ZeeMassTool3Cfg ( flags)
Configure the EGAM11 ee invariant mass augmentation tool 3

Definition at line 116 of file EGAM11.py.

116def EGAM11ZeeMassTool3Cfg(flags):
117 """Configure the EGAM11 ee invariant mass augmentation tool 3"""
118 acc = ComponentAccumulator()
119
120 # ====================================================================
121 # 3. di-electron invariant mass for events passing the Z->ee
122 # selection for the e efficiencies with tag and probe.
123 #
124 # 1 tight e, central, pT>25 GeV
125 # 1 e, central, pT>4 GeV
126 # opposite-sign + same-sign
127 # mee>50 GeV (cut applied in skimming step later)
128 # ====================================================================
129
130 requirement_tag = " && ".join(
131 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 24.5*GeV)"]
132 )
133
134 requirement_probe = "Electrons.pt > 4*GeV"
135
136 acc.setPrivateTools(
137 CompFactory.DerivationFramework.EGInvariantMassTool(
138 name="EGAM11_ZEEMassTool3",
139 Object1Requirements=requirement_tag,
140 Object2Requirements=requirement_probe,
141 StoreGateEntryName="EGAM11_DiElectronMass3",
142 Mass1Hypothesis=0.511 * MeV,
143 Mass2Hypothesis=0.511 * MeV,
144 Container1Name="Electrons",
145 Container2Name="Electrons",
146 CheckCharge=False,
147 DoTransverseMass=False,
148 MinDeltaR=0.0,
149 )
150 )
151
152 return acc
153
154

◆ EGAM11ZegMassToolCfg()

python.EGAM11.EGAM11ZegMassToolCfg ( flags)
Configure the EGAM11 e+photon mass augmentation tool

Definition at line 155 of file EGAM11.py.

155def EGAM11ZegMassToolCfg(flags):
156 """Configure the EGAM11 e+photon mass augmentation tool"""
157 acc = ComponentAccumulator()
158
159 # ====================================================================
160 # 4. Z->eg selection for reco SF (central)
161 # for tag and probe
162 #
163 # 1 tight e, central, pT>25 GeV
164 # note: use medium instead of tight for early data upon electron
165 # group request
166 # 1 gamma, pT>15 GeV, central
167 # opposite sign + same sign
168 # mey>50 GeV (cut applied in skimming step later)
169 # ====================================================================
170
171 requirement_tag = " && ".join(
172 ["(Electrons.DFCommonElectronsLHMedium)", "(Electrons.pt > 24.5*GeV)"]
173 )
174
175 requirement_probe = "DFCommonPhotons_et > 14.5*GeV"
176
177 acc.setPrivateTools(
178 CompFactory.DerivationFramework.EGInvariantMassTool(
179 name="EGAM11_ZEGMassTool",
180 Object1Requirements=requirement_tag,
181 Object2Requirements=requirement_probe,
182 StoreGateEntryName="EGAM11_ElectronPhotonMass",
183 Mass1Hypothesis=0.511 * MeV,
184 Mass2Hypothesis=0.511 * MeV,
185 Container1Name="Electrons",
186 Container2Name="Photons",
187 Pt2BranchName="DFCommonPhotons_et",
188 Eta2BranchName="DFCommonPhotons_eta",
189 Phi2BranchName="DFCommonPhotons_phi",
190 CheckCharge=False,
191 DoTransverseMass=False,
192 MinDeltaR=0.0,
193 )
194 )
195 return acc
196
197
198# Main algorithm config