ATLAS Offline Software
Functions | Variables
LeptonTaggersConfig Namespace Reference

Functions

ComponentAccumulator VtxFittingToolCfg (ConfigFlags, **kwargs)
 
ComponentAccumulator DecorateReFitPrimaryVertexCfg (ConfigFlags, name="PrimaryVertexReFitter", lepton_type="", **kwargs)
 
ComponentAccumulator VtxItrMergingToolCfg (flags, name="VertexIterativeMergingTool", lepton_name="", **kwargs)
 
ComponentAccumulator DecorateNonPromptVertexCfg (flags, name="DecorateNonPromptVertex", lepton_name="", **kwargs)
 
ComponentAccumulator RNNToolCfg (flags, name="RNNTool", RNN_name="RNN_name", lepton_name="", **kwargs)
 
ComponentAccumulator DecoratePromptLeptonRNNCfg (flags, RNN_name="RNN_name", lepton_name="", name="DecoratePromptLeptonRNN", **kwargs)
 
def getStringIntVars (BDT_name)
 
def getStringFloatVars (BDT_name, part_type='')
 
ComponentAccumulator DecoratePLITCfg (flags, Tagger_name="", lepton_name="", **kwargs)
 
ComponentAccumulator DecoratePromptLeptonImprovedCfg (flags, BDT_name="", lepton_name="", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets", veto_BDT_name=None, **kwargs)
 
ComponentAccumulator DecorateImprovedPromptLeptonAlgsCfg (ConfigFlags, name="DecorateImprovedPromptLeptonAlgs", lepton_type="", **kwargs)
 
ComponentAccumulator DecoratePLITAlgsCfg (ConfigFlags, name="DecoratePLITAlgsCfg", lepton_type="", **kwargs)
 
def GetExtraPromptVariablesForDxAOD (name='', addSpectators=False, onlyBDT=True)
 
def GetExtraImprovedPromptVariablesForDxAOD (name='', onlyBDT=False)
 
def GetExtraPLITVariablesForDxAOD (name='')
 

Variables

 lep_tag_log = logging.getLogger('LeptonTaggersConfig')
 
 parser = ArgumentParser(description="Test the LeptonTaggersConfig")
 
 type
 
 str
 
 choices
 
 default
 
 help
 
 int
 
 args = parser.parse_args()
 
 FLAGS = initConfigFlags()
 
 ProductionStep
 
 MaxEvents
 
 SkipEvents
 
 Files
 
 Run
 
 ACC = MainServicesCfg(FLAGS)
 
 trigger_lists_helper = TriggerListsHelper(FLAGS)
 
 withDetails
 
 True
 
 summariseProps
 
 status = ACC.run()
 

Function Documentation

◆ DecorateImprovedPromptLeptonAlgsCfg()

ComponentAccumulator LeptonTaggersConfig.DecorateImprovedPromptLeptonAlgsCfg (   ConfigFlags,
  name = "DecorateImprovedPromptLeptonAlgs",
  lepton_type = "",
**  kwargs 
)
CA to decorate with PLIV input algorithms

Definition at line 420 of file LeptonTaggersConfig.py.

421  ConfigFlags, name="DecorateImprovedPromptLeptonAlgs",
422  lepton_type="", **kwargs
423 ) -> ComponentAccumulator:
424  """
425  CA to decorate with PLIV input algorithms
426  """
427  valid_lepton_types = ["", "Electrons", "Muons"]
428  if lepton_type not in valid_lepton_types:
429  lep_tag_log.error("Requested lepton type: %s", lepton_type)
430  lep_tag_log.error("Allowed lepton types: %s", valid_lepton_types)
431  raise ValueError('DecorateImprovedPromptLeptonAlgsCfg - '
432  + f'unknown lepton type: "{lepton_type}"')
433 
434  acc = ComponentAccumulator()
435 
436  if lepton_type in ["", "Electrons"]:
437  acc.merge(DecorateReFitPrimaryVertexCfg(ConfigFlags, lepton_type="Electrons"))
438  acc.merge(DecorateNonPromptVertexCfg(ConfigFlags, lepton_name="Electrons"))
439  acc.merge(DecoratePromptLeptonRNNCfg(ConfigFlags,
440  RNN_name='PromptLeptonRNN',
441  lepton_name='Electrons'))
443  ConfigFlags, BDT_name="PromptLeptonImprovedVetoBARR",
444  lepton_name="Electrons", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets"
445  ))
447  ConfigFlags, BDT_name="PromptLeptonImprovedVetoECAP",
448  veto_BDT_name='PromptLeptonImprovedVetoBARR',
449  lepton_name="Electrons", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets"
450  ))
451 
452  if lepton_type in ["", "Muons"]:
453  acc.merge(DecorateReFitPrimaryVertexCfg(ConfigFlags, lepton_type="Muons"))
454  acc.merge(DecorateNonPromptVertexCfg(ConfigFlags, lepton_name="Muons"))
455  acc.merge(DecoratePromptLeptonRNNCfg(ConfigFlags,
456  RNN_name='PromptLeptonRNN',
457  lepton_name='Muons'))
459  ConfigFlags, BDT_name="PromptLeptonImprovedVeto",
460  lepton_name="Muons", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets"
461  ))
462 
463  return acc
464 

◆ DecorateNonPromptVertexCfg()

ComponentAccumulator LeptonTaggersConfig.DecorateNonPromptVertexCfg (   flags,
  name = "DecorateNonPromptVertex",
  lepton_name = "",
**  kwargs 
)
Configure the non-prompt vertex decorator.

Definition at line 115 of file LeptonTaggersConfig.py.

115 def DecorateNonPromptVertexCfg(flags, name="DecorateNonPromptVertex",
116  lepton_name="", **kwargs) -> ComponentAccumulator:
117  """
118  Configure the non-prompt vertex decorator.
119  """
120  if lepton_name not in ['Electrons', 'Muons']:
121  raise ValueError(f'DecorateNonPromptVertex - unknown lepton type: "{lepton_name}"')
122 
123  acc = ComponentAccumulator()
124 
125  vertex_fitting_tool = acc.popToolsAndMerge(VtxFittingToolCfg(flags))
126 
127  kwargs.setdefault("VertexFittingTool",vertex_fitting_tool)
128 
129  kwargs.setdefault(
130  "VertexMergingTool",
131  acc.popToolsAndMerge(VtxItrMergingToolCfg(
132  flags, lepton_name=lepton_name,
133  VertexFittingTool=vertex_fitting_tool
134  ))
135  )
136 
137  kwargs.setdefault("LeptonContainerName", lepton_name)
138  kwargs.setdefault("ReFitPriVtxContainerName", f"RefittedPriVtx_{lepton_name}")
139  kwargs.setdefault("SVContainerName", f"SecVtxContainer_{lepton_name}")
140 
141  kwargs.setdefault("SecVtxLinksName", "SecVtxLinks")
142  kwargs.setdefault("DeepMergedSecVtxLinksName", "DeepMergedSecVtxLinks")
143  kwargs.setdefault("NoLeptonPriVtxLinkName", f"RefittedPriVtxWithoutLepton_{lepton_name}")
144  kwargs.setdefault("IndexVectorName", "PromptLeptonInput_SecondaryVertexIndexVector")
145 
146  alg = CompFactory.Prompt.NonPromptLeptonVertexingAlg(
147  name=f'NonPromptVtx_decorate_{lepton_name}',
148  **kwargs
149  )
150 
151  acc.addEventAlgo(alg, primary=True)
152 
153  return acc
154 
155 

◆ DecoratePLITAlgsCfg()

ComponentAccumulator LeptonTaggersConfig.DecoratePLITAlgsCfg (   ConfigFlags,
  name = "DecoratePLITAlgsCfg",
  lepton_type = "",
**  kwargs 
)
CA to decorate with PLIT input algorithms

Definition at line 465 of file LeptonTaggersConfig.py.

466  ConfigFlags, name="DecoratePLITAlgsCfg",
467  lepton_type="", **kwargs
468 ) -> ComponentAccumulator:
469  """
470  CA to decorate with PLIT input algorithms
471  """
472  valid_lepton_types = ["", "Electrons", "Muons"]
473  if lepton_type not in valid_lepton_types:
474  lep_tag_log.error("Requested lepton type: %s", lepton_type)
475  lep_tag_log.error("Allowed lepton types: %s", valid_lepton_types)
476  raise ValueError('DecoratePLITAlgsCfg - '
477  + f'unknown lepton type: "{lepton_type}"')
478 
479  acc = ComponentAccumulator()
480 
481  if lepton_type in ["", "Electrons"]:
482  acc.merge(DecoratePLITCfg(ConfigFlags, Tagger_name="PLIT", lepton_name="Electrons"))
483 
484  if lepton_type in ["", "Muons"]:
485  acc.merge(DecoratePLITCfg(ConfigFlags, Tagger_name="PLIT", lepton_name="Muons"))
486 
487  return acc
488 
489 #------------------------------------------------------------------------------

◆ DecoratePLITCfg()

ComponentAccumulator LeptonTaggersConfig.DecoratePLITCfg (   flags,
  Tagger_name = "",
  lepton_name = "",
**  kwargs 
)
Configure the PLIT decorator.

Definition at line 277 of file LeptonTaggersConfig.py.

277 def DecoratePLITCfg(
278  flags, Tagger_name="", lepton_name="",
279  **kwargs
280 ) -> ComponentAccumulator:
281  """
282  Configure the PLIT decorator.
283  """
284  lep_tag_log.info("calling DecoratePLITCfg with name="+Tagger_name+" lepton_name="+lepton_name)
285 
286  acc = ComponentAccumulator()
287 
288  #
289  # Prepare DecoratePromptLepton alg
290  #
291  kwargs.setdefault("LeptonContainerName", lepton_name)
292  kwargs.setdefault("TracksContainerKey", "InDetTrackParticles")
293  kwargs.setdefault("CaloClusterContainerKey", "egammaClusters")
294  kwargs.setdefault("TaggerName", Tagger_name)
295 
296  # check if Run3 (or beyond) configs should be used
297  isRun3 = (flags.GeoModel.Run >= LHCPeriod.Run3)
298 
299  # Make sure the decorations have a unique name to avoid multiple tools writing the same name
300  kwargs.setdefault("acc_trk_dr_lepton","dr_lepton"+lepton_name)
301  kwargs.setdefault("acc_trk_electron_track","electron_track"+lepton_name)
302  kwargs.setdefault("acc_trk_muon_track","muon_track"+lepton_name)
303  kwargs.setdefault("acc_trk_dr_leptontrack","dr_leptontrack"+lepton_name)
304  kwargs.setdefault("dec_trk_dr_lepton","dr_lepton"+lepton_name)
305  kwargs.setdefault("dec_trk_electron_track","electron_track"+lepton_name)
306  kwargs.setdefault("dec_trk_muon_track","muon_track"+lepton_name)
307  kwargs.setdefault("dec_trk_dr_leptontrack","dr_leptontrack"+lepton_name)
308 
309  # path on calib area (found by path resolver
310  # /cvmfs/atlas.cern.ch/repo/sw/database/GroupData/
311  if lepton_name == 'Electrons':
312  if isRun3:
313  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
314  kwargs.setdefault("ConfigFileVersion", 'network_run3_electrons_barrel.onnx')
315  kwargs.setdefault("ConfigFileVersion_endcap", 'network_run3_electrons_endcap.onnx')
316  else:
317  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
318  kwargs.setdefault("ConfigFileVersion", 'network_run2_electrons_barrel.onnx')
319  kwargs.setdefault("ConfigFileVersion_endcap", 'network_run2_electrons_endcap.onnx')
320  elif lepton_name == 'Muons':
321  if isRun3:
322  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
323  kwargs.setdefault("ConfigFileVersion", 'network_run3_muons.onnx')
324  else:
325  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
326  kwargs.setdefault("ConfigFileVersion", 'network_run2_muons.onnx')
327  else:
328  raise ValueError(f'Decorate{Tagger_name} - unknown lepton type: "{lepton_name}"')
329 
330  alg = CompFactory.Prompt.DecoratePLIT(
331  f'{lepton_name}_decorate{Tagger_name}', **kwargs
332  )
333  acc.addEventAlgo(alg, primary=True)
334 
335  lep_tag_log.info(
336  'Decorate%s - prepared %s algorithm for: %s',
337  Tagger_name, Tagger_name, lepton_name
338  )
339 
340  return acc
341 

◆ DecoratePromptLeptonImprovedCfg()

ComponentAccumulator LeptonTaggersConfig.DecoratePromptLeptonImprovedCfg (   flags,
  BDT_name = "",
  lepton_name = "",
  track_jet_name = "AntiKtVR30Rmax4Rmin02PV0TrackJets",
  veto_BDT_name = None,
**  kwargs 
)
Configure the PromptLeptonImproved decorator.

Definition at line 342 of file LeptonTaggersConfig.py.

343  flags, BDT_name="", lepton_name="", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets",
344  veto_BDT_name=None,
345  **kwargs
346 ) -> ComponentAccumulator:
347  """
348  Configure the PromptLeptonImproved decorator.
349  """
350  lep_tag_log.info("calling DecoratePromptLeptonImprovedCfg with BDT_name="+BDT_name+" lepton_name="+lepton_name+" track_jet_name="+track_jet_name)
351  #
352  # Check track jet container is correct
353  #
354  if track_jet_name != 'AntiKtVR30Rmax4Rmin02PV0TrackJets':
355  raise ValueError(f'Decorate{BDT_name} - unknown track jet collection: "{track_jet_name}"')
356 
357  acc = ComponentAccumulator()
358 
359  #
360  # Prepare DecoratePromptLepton alg
361  #
362  kwargs.setdefault("LeptonContainerName", lepton_name)
363 
364  kwargs.setdefault("TrackJetContainerName", track_jet_name)
365  kwargs.setdefault("PrimaryVertexContainerName", 'PrimaryVertices')
366  kwargs.setdefault("ClusterContainerName", 'CaloCalTopoClusters')
367 
368  kwargs.setdefault("BDTName", BDT_name)
369  kwargs.setdefault("InputVarDecoratePrefix", 'PromptLeptonImprovedInput_')
370  kwargs.setdefault("PrintTime", False)
371 
372  #
373  # Read configuration from AFS for this initial merge request, will switch to cvmfs with second request
374  #
375  if lepton_name == 'Electrons':
376  kwargs.setdefault("MethodTitleMVA", f'BDT_Electron_{BDT_name}')
377  kwargs.setdefault("ConfigFileVersion", 'InputData-2020-02-25/BDT/Electron/' + BDT_name)
378  kwargs.setdefault("accessorRNNVars", ['PromptLeptonRNN_prompt'])
379  elif lepton_name == 'Muons':
380  kwargs.setdefault("MethodTitleMVA", f'BDT_Muon_{BDT_name}')
381  kwargs.setdefault("ConfigFileVersion", 'InputData-2020-02-25/BDT/Muon/' + BDT_name)
382  kwargs.setdefault("accessorRNNVars", ['PromptLeptonRNN_prompt'])
383  else:
384  raise ValueError(f'Decorate{BDT_name} - unknown lepton type: "{lepton_name}"')
385 
386  kwargs.setdefault("stringIntVars", getStringIntVars(BDT_name))
387  kwargs.setdefault("stringFloatVars", getStringFloatVars(BDT_name))
388  kwargs.setdefault("extraDecoratorFloatVars", ['RawPt'])
389  kwargs.setdefault("extraDecoratorShortVars", ['CandVertex_NPassVtx'])
390  kwargs.setdefault("vetoDecoratorFloatVars", ['PromptLeptonRNN_prompt'])
391  kwargs.setdefault("vetoDecoratorShortVars", [])
392 
393  if veto_BDT_name:
394  kwargs['vetoDecoratorFloatVars'] += ['RawPt']
395  kwargs['vetoDecoratorFloatVars'] += getStringFloatVars(veto_BDT_name)
396  kwargs['vetoDecoratorShortVars'] += ['CandVertex_NPassVtx']
397  kwargs['vetoDecoratorShortVars'] += getStringIntVars(veto_BDT_name)
398 
399  kwargs.setdefault("leptonPtBinsVector", [10.0e3, 15.0e3, 20.0e3, 25.0e3, 32.0e3, 43.0e3, 100.0e3])
400 
401 
402  #
403  # Secondary vertex selection for the PromptLeptonImproved
404  #
405  kwargs.setdefault("VertexLinkName", 'DeepMergedSecVtxLinks')
406 
407  alg = CompFactory.Prompt.DecoratePromptLeptonImproved(
408  f'{lepton_name}_decorate{BDT_name}', **kwargs
409  )
410  acc.addEventAlgo(alg, primary=True)
411 
412  lep_tag_log.info(
413  'Decorate%s - prepared %s algorithm for: %s, %s',
414  BDT_name, BDT_name, lepton_name, track_jet_name
415  )
416 
417  return acc
418 
419 

◆ DecoratePromptLeptonRNNCfg()

ComponentAccumulator LeptonTaggersConfig.DecoratePromptLeptonRNNCfg (   flags,
  RNN_name = "RNN_name",
  lepton_name = "",
  name = "DecoratePromptLeptonRNN",
**  kwargs 
)
Configure the prompt lepton RNN decorator.

Definition at line 190 of file LeptonTaggersConfig.py.

190 def DecoratePromptLeptonRNNCfg(flags, RNN_name="RNN_name", lepton_name="",
191  name="DecoratePromptLeptonRNN",
192  **kwargs) -> ComponentAccumulator:
193  """
194  Configure the prompt lepton RNN decorator.
195  """
196  lep_tag_log.info("calling DecoratePromptLeptonRNNCfg with name"+RNN_name+" with lepton_name="+lepton_name)
197  if lepton_name not in ["Electrons", "Muons"]:
198  raise ValueError(f'DecorateNonPromptVertex - unknown lepton type: "{lepton_name}"')
199 
200  acc = ComponentAccumulator()
201 
202  #
203  # Prepare DecoratePromptLepton alg
204  #
205  kwargs.setdefault("inputContainerLepton", lepton_name)
206  kwargs.setdefault("inputContainerTrack", 'InDetTrackParticles')
207  kwargs.setdefault("inputContainerTrackJet", 'AntiKtVR30Rmax4Rmin02PV0TrackJets')
208  kwargs.setdefault("inputContainerPrimaryVertices", 'PrimaryVertices')
209 
210  kwargs.setdefault("decorationPrefixRNN", 'PromptLeptonRNN_')
211 
212  kwargs.setdefault("debug", False)
213  kwargs.setdefault("outputStream", 'out')
214 
215  kwargs.setdefault("toolRNN", acc.popToolsAndMerge(
216  RNNToolCfg(flags, RNN_name=RNN_name, lepton_name=lepton_name)
217  ))
218 
219  alg = CompFactory.Prompt.DecoratePromptLeptonRNN(
220  name=f'{lepton_name}_decorate_RNN_{RNN_name}', **kwargs
221  )
222  acc.addEventAlgo(alg, primary=True)
223 
224  lep_tag_log.info('Decorate%s - prepared %s algorithm for: %s',
225  RNN_name, RNN_name, lepton_name)
226 
227  return acc
228 
229 

◆ DecorateReFitPrimaryVertexCfg()

ComponentAccumulator LeptonTaggersConfig.DecorateReFitPrimaryVertexCfg (   ConfigFlags,
  name = "PrimaryVertexReFitter",
  lepton_type = "",
**  kwargs 
)
CA to run the PrimaryVertexReFitter algorithm.

Definition at line 59 of file LeptonTaggersConfig.py.

60  ConfigFlags, name="PrimaryVertexReFitter",
61  lepton_type="", **kwargs
62 ) -> ComponentAccumulator:
63  """
64  CA to run the PrimaryVertexReFitter algorithm.
65  """
66 
67  if lepton_type not in ['Electrons', 'Muons']:
68  raise ValueError(f'DecorateReFitPrimaryVertex - unknown lepton type: "{lepton_type}"')
69 
70  acc = ComponentAccumulator()
71 
72  kwargs.setdefault("ReFitPriVtxName", f"RefittedPriVtx_{lepton_type}")
73  kwargs.setdefault("LeptonContainerName", lepton_type)
74 
75  kwargs.setdefault("DistToRefittedPriVtxName", "distToRefittedPriVtx")
76  kwargs.setdefault("NormDistToRefittedPriVtxName", "normDistToRefittedPriVtx")
77  kwargs.setdefault("RefittedVtxWithoutLeptonLinkName",
78  f"RefittedPriVtxWithoutLepton_{lepton_type}")
79 
80  alg_name = f'PrimaryVertexReFitter_{lepton_type}_decoratePriVtx'
81 
82  kwargs.setdefault("VertexFittingTool", acc.popToolsAndMerge(
83  VtxFittingToolCfg(ConfigFlags)
84  ))
85 
86  the_alg = CompFactory.Prompt.PrimaryVertexReFitter(alg_name, **kwargs)
87 
88  acc.addEventAlgo(the_alg, primary = True)
89  lep_tag_log.info("end of DecorateReFitPrimaryVertexCfg")
90  return acc
91 
92 

◆ GetExtraImprovedPromptVariablesForDxAOD()

def LeptonTaggersConfig.GetExtraImprovedPromptVariablesForDxAOD (   name = '',
  onlyBDT = False 
)

Definition at line 544 of file LeptonTaggersConfig.py.

544 def GetExtraImprovedPromptVariablesForDxAOD(name='', onlyBDT=False):
545 
546  prompt_lep_vars = []
547 
548  #
549  # Decorate lepton only with the BDT outputs when the onlyBDT flag is true.
550  #
551  if onlyBDT:
552  # Add lepton raw pT and pTBin as default which is needed for the PLIV working points.
553  rawpt_vars ="PromptLeptonImprovedInput_MVAXBin.PromptLeptonImprovedInput_RawPt"
554 
555  if name == "" or name == "Electrons":
556  prompt_lep_vars += ["Electrons.PromptLeptonImprovedVetoBARR.PromptLeptonImprovedVetoECAP.%s"%rawpt_vars]
557 
558  if name == "" or name == "Muons":
559  prompt_lep_vars += ["Muons.PromptLeptonImprovedVeto.%s"%rawpt_vars]
560 
561  return prompt_lep_vars
562 
563  prompt_vars = "PromptLeptonImprovedInput_MVAXBin.PromptLeptonImprovedInput_RawPt."
564  prompt_vars += "PromptLeptonImprovedInput_PtFrac.PromptLeptonImprovedInput_DRlj."
565  prompt_vars += "PromptLeptonImprovedInput_topoetcone30rel.PromptLeptonImprovedInput_ptvarcone30rel."
566 
567  if name == "" or name == "Electrons":
568  # Add PromptLeptonTagger electron RNN and new inputs for PromptLeptonImprovedVetoBARR/PromptLeptonImprovedVetoECAP
569  prompt_el_vars = "PromptLeptonRNN_prompt.PromptLeptonRNN_non_prompt_b.PromptLeptonRNN_non_prompt_c.PromptLeptonRNN_conversion."
570  prompt_el_vars += "PromptLeptonImprovedVetoBARR.PromptLeptonImprovedVetoECAP.PromptLeptonImprovedInput_TrackJetNTrack.PromptLeptonImprovedInput_PtRel.PromptLeptonImprovedInput_CaloClusterSumEtRel.PromptLeptonImprovedInput_CandVertex_normDistToPriVtxLongitudinalBest_ThetaCutVtx"
571 
572  prompt_lep_vars += ["Electrons." + prompt_vars + prompt_el_vars]
573 
574  if name == "" or name == "Muons":
575  # Add PromptLeptonTagger muon RNN and new inputs for PromptLeptonImprovedVeto
576  prompt_mu_vars = "PromptLeptonRNN_prompt.PromptLeptonRNN_non_prompt_b.PromptLeptonRNN_non_prompt_c."
577  prompt_mu_vars += "PromptLeptonImprovedVeto.PromptLeptonImprovedInput_ptvarcone30_TightTTVA_pt500rel.PromptLeptonImprovedInput_CaloClusterERel.PromptLeptonImprovedInput_CandVertex_normDistToPriVtxLongitudinalBest"
578 
579  prompt_lep_vars += ["Muons." + prompt_vars + prompt_mu_vars]
580 
581  return prompt_lep_vars
582 
583 #------------------------------------------------------------------------------

◆ GetExtraPLITVariablesForDxAOD()

def LeptonTaggersConfig.GetExtraPLITVariablesForDxAOD (   name = '')

Definition at line 584 of file LeptonTaggersConfig.py.

584 def GetExtraPLITVariablesForDxAOD(name=''):
585 
586  prompt_lep_vars = []
587 
588  #
589  # Decorate lepton with the score outputs
590  #
591  if name == "" or name == "Electrons":
592  prompt_lep_vars += ["Electrons.PLIT_PLITel_pelxpromp", "Electrons.PLIT_PLITel_pnpxall"]
593 
594  if name == "" or name == "Muons":
595  prompt_lep_vars += ["Muons.PLIT_TPLTmu_pmuxpromp", "Muons.PLIT_TPLTmu_pnpxall"]
596 
597  return prompt_lep_vars
598 
599 
600 # Script to run for testing the config
601 # from https://atlassoftwaredocs.web.cern.ch/athena/configuration/ca/

◆ GetExtraPromptVariablesForDxAOD()

def LeptonTaggersConfig.GetExtraPromptVariablesForDxAOD (   name = '',
  addSpectators = False,
  onlyBDT = True 
)

Definition at line 490 of file LeptonTaggersConfig.py.

490 def GetExtraPromptVariablesForDxAOD(name='', addSpectators=False, onlyBDT=True):
491 
492  prompt_lep_vars = []
493 
494  #
495  # Decorate lepton only with the BDT outputs when the onlyBDT flag is true.
496  #
497  # NOTE: The output score name for BDTname=LowPtPromptLeptonVeto is "LowPtPLV" instead "LowPtPromptLeptonVeto".
498  # This is to harmonize with the variable augmented in CP::IsolationLowPtPLVTool
499  #
500  if onlyBDT:
501  if name == "" or name == "Electrons":
502  prompt_lep_vars += ["Electrons.PromptLeptonVeto.PromptLeptonIso.LowPtPLV."]
503 
504  if name == "" or name == "Muons":
505  prompt_lep_vars += ["Muons.PromptLeptonVeto.PromptLeptonIso.LowPtPLV."]
506 
507  return prompt_lep_vars
508 
509 
510  prompt_vars = "PromptLeptonVeto.PromptLeptonIso.LowPtPLV."
511  prompt_vars += "PromptLeptonInput_TrackJetNTrack.PromptLeptonInput_sv1_jf_ntrkv."
512  prompt_vars += "PromptLeptonInput_ip2.PromptLeptonInput_ip3."
513  prompt_vars += "PromptLeptonInput_LepJetPtFrac.PromptLeptonInput_DRlj."
514  prompt_vars += "PromptLeptonInput_PtFrac.PromptLeptonInput_PtRel."
515  prompt_vars += "PromptLeptonInput_DL1mu.PromptLeptonInput_rnnip."
516  prompt_vars += "PromptLeptonInput_topoetcone20rel.PromptLeptonInput_ptvarcone20rel."
517  prompt_vars += "PromptLeptonInput_topoetcone30rel.PromptLeptonInput_ptvarcone30rel."
518 
519  prompt_vars += "PromptLeptonInput_SecondaryVertexIndexVector.PromptLeptonInput_SecondaryVertexIndexVectorInDet.PromptLeptonInput_SecondaryVertexIndexVectorMerge.PromptLeptonInput_SecondaryVertexIndexVectorDeepMerge."
520  prompt_vars += "rhocen.rhofor.SecVtxLinks.RefittedPriVtxLink.RefittedPriVtxWithoutLeptonLink."
521 
522 
523  secondaryvertex_vars = "SVType.trackParticleLinks.trackWeights.neutralParticleLinks.neutralWeights.SecondaryVertexIndex.SecondaryVertexIndexVectorInput.chiSquared.numberDoF.x.y.z.covariance.vertexType.energyFraction.mass.normDist.ntrk.distToPriVtx.normDistToPriVtx.distToRefittedPriVtx.normDistToRefittedPriVtx.distToRefittedRmLepPriVtx.normDistToRefittedRmLepPriVtx"
524 
525  if addSpectators :
526  prompt_vars += "PromptLeptonInput_JetPt.PromptLeptonInput_JetEta.PromptLeptonInput_JetPhi.PromptLeptonInput_JetM."
527 
528  if name == "" or name == "Electrons":
529  prompt_el_vars = "ptvarcone40.topoetcone20.topoetcone20ptCorrection.ptcone20_TightTTVA_pt500.ptcone20_TightTTVA_pt1000.ptvarcone20_TightTTVA_pt1000.ptvarcone30_TightTTVA_pt500.ptvarcone30_TightTTVA_pt1000.ptvarcone40_TightTTVALooseCone_pt500"
530 
531  prompt_lep_vars += ["Electrons." + prompt_vars + prompt_el_vars]
532  prompt_lep_vars += ["SecVtxContainer_Electrons.%s" %secondaryvertex_vars]
533  prompt_lep_vars += ["SecVtx_ConvVtxContainer_Electrons.%s" %secondaryvertex_vars]
534 
535  if name == "" or name == "Muons":
536  prompt_mu_vars = "ET_Core.ET_EMCore.ET_HECCore.ET_TileCore.EnergyLoss.EnergyLossSigma.MeasEnergyLoss.MeasEnergyLossSigma.ParamEnergyLoss.ParamEnergyLossSigmaMinus.ParamEnergyLossSigmaPlus.neflowisol20.neflowisol30.neflowisol40.ptvarcone20_TightTTVA_pt500.ptvarcone30_TightTTVA_pt500.ptvarcone40_TightTTVA_pt500.ptvarcone20_TightTTVA_pt1000.ptvarcone30_TightTTVA_pt1000.ptvarcone40_TightTTVA_pt1000.caloExt_Decorated.caloExt_eta.caloExt_phi"
537 
538  prompt_lep_vars += ["Muons." + prompt_vars + prompt_mu_vars]
539  prompt_lep_vars += ["SecVtxContainer_Muons.%s" %secondaryvertex_vars]
540 
541  return prompt_lep_vars
542 
543 #------------------------------------------------------------------------------

◆ getStringFloatVars()

def LeptonTaggersConfig.getStringFloatVars (   BDT_name,
  part_type = '' 
)
Get the float variables for the BDT (I think)

Definition at line 247 of file LeptonTaggersConfig.py.

247 def getStringFloatVars(BDT_name, part_type=''):
248  """
249  Get the float variables for the BDT (I think)
250  """
251  float_vars = []
252 
253  if BDT_name == 'PromptLeptonImprovedVeto':
254  float_vars += ['topoetcone30rel',
255  'ptvarcone30_TightTTVA_pt500rel',
256  'PromptLeptonRNN_prompt',
257  'PtFrac',
258  'DRlj',
259  'CaloClusterERel',
260  'CandVertex_normDistToPriVtxLongitudinalBest']
261  elif (BDT_name == 'PromptLeptonImprovedVetoBARR'
262  or BDT_name == 'PromptLeptonImprovedVetoECAP'):
263  float_vars += ['topoetcone30rel',
264  'ptvarcone30rel',
265  'PromptLeptonRNN_prompt',
266  'PtFrac',
267  'DRlj',
268  'CaloClusterSumEtRel',
269  'PtRel',
270  'CandVertex_normDistToPriVtxLongitudinalBest_ThetaCutVtx']
271  else:
272  raise ValueError(f'getStringFloatVars - unknown alg: "{BDT_name}"')
273 
274  return float_vars
275 
276 

◆ getStringIntVars()

def LeptonTaggersConfig.getStringIntVars (   BDT_name)
Get the integer variables for the BDT (I think)

Definition at line 230 of file LeptonTaggersConfig.py.

230 def getStringIntVars(BDT_name):
231  """
232  Get the integer variables for the BDT (I think)
233  """
234  int_vars = []
235 
236  if BDT_name == 'PromptLeptonImprovedVeto':
237  int_vars += ['MVAXBin']
238  elif (BDT_name == 'PromptLeptonImprovedVetoBARR'
239  or BDT_name == 'PromptLeptonImprovedVetoECAP'):
240  int_vars += ['MVAXBin', 'TrackJetNTrack']
241  else:
242  raise ValueError(f'getStringIntVars - unknown alg: "{BDT_name}"')
243 
244  return int_vars
245 
246 

◆ RNNToolCfg()

ComponentAccumulator LeptonTaggersConfig.RNNToolCfg (   flags,
  name = "RNNTool",
  RNN_name = "RNN_name",
  lepton_name = "",
**  kwargs 
)
Configure the RNN tool.

Definition at line 156 of file LeptonTaggersConfig.py.

156 def RNNToolCfg(flags, name="RNNTool",
157  RNN_name="RNN_name", lepton_name="",
158  **kwargs) -> ComponentAccumulator:
159  """
160  Configure the RNN tool.
161  """
162  lep_tag_log.info("calling RNNToolCfg with name"+RNN_name+" with lepton_name="+lepton_name)
163 
164  if lepton_name not in ["Electrons", "Muons"]:
165  raise ValueError(f'RNNTool - unknown lepton type: "{lepton_name}"')
166 
167  acc = ComponentAccumulator()
168 
169  #
170  # Read configuration from AFS for this initial merge request, will switch to cvmfs with second request
171  #
172  if lepton_name == 'Electrons':
173  kwargs.setdefault("configRNNVersion", 'InputData-2020-02-25/RNN/Electron')
174  kwargs.setdefault("configRNNJsonFile",
175  'elecs_feb20_fullrun2_linear_ptraw_ntk5_model_ndense10_nhidden50_nepoch10_nbatch256_use_weights_nn-config.json')
176 
177  elif lepton_name == 'Muons':
178  kwargs.setdefault("configRNNVersion", 'InputData-2020-02-25/RNN/Muon')
179  kwargs.setdefault("configRNNJsonFile",
180  'muons_feb19_fullrun2_linear_ptraw_ntk5_model_ndense10_nhidden50_nepoch10_nbatch256_use_weights_nn-config.json')
181 
182  tool_rnn = CompFactory.Prompt.RNNTool(
183  name=f'{RNN_name}_{lepton_name}_RNNTool', **kwargs
184  )
185  acc.setPrivateTools(tool_rnn)
186 
187  return acc
188 
189 

◆ VtxFittingToolCfg()

ComponentAccumulator LeptonTaggersConfig.VtxFittingToolCfg (   ConfigFlags,
**  kwargs 
)
Generate a vertex fitting tool.

Definition at line 27 of file LeptonTaggersConfig.py.

27 def VtxFittingToolCfg(ConfigFlags, **kwargs) -> ComponentAccumulator:
28  """
29  Generate a vertex fitting tool.
30  """
31  acc = ComponentAccumulator()
32  lep_tag_log.info("creating VtxFittingTool")
33 
34  kwargs.setdefault("doSeedVertexFit", False)
35 
36  kwargs.setdefault("DistToPriVtxName", "distToPriVtx")
37  kwargs.setdefault("NormDistToPriVtxName", "normDistToPriVtx")
38  kwargs.setdefault("DistToRefittedPriVtxName", "distToRefittedPriVtx")
39  kwargs.setdefault("NormDistToRefittedPriVtxName", "normDistToRefittedPriVtx")
40  kwargs.setdefault("DistToRefittedRmLepPriVtxName", "distToRefittedRmLepPriVtx")
41  kwargs.setdefault("NormDistToRefittedRmLepPriVtxName",
42  "normDistToRefittedRmLepPriVtx")
43 
44  from TrkConfig.TrkVertexBilloirToolsConfig import FastVertexFitterCfg
45  fast_vtx_fitter = acc.popToolsAndMerge(FastVertexFitterCfg(ConfigFlags))
46 
47  kwargs.setdefault("vertexFitterTool", fast_vtx_fitter)
48  kwargs.setdefault("seedVertexFitterTool", fast_vtx_fitter)
49 
50  vertex_fitting_tool = CompFactory.Prompt.VertexFittingTool(
51  name="VertexFittingTool", **kwargs
52  )
53 
54  acc.setPrivateTools(vertex_fitting_tool)
55  lep_tag_log.info("end of VtxFittingTool creation")
56  return acc
57 
58 

◆ VtxItrMergingToolCfg()

ComponentAccumulator LeptonTaggersConfig.VtxItrMergingToolCfg (   flags,
  name = "VertexIterativeMergingTool",
  lepton_name = "",
**  kwargs 
)
Generate a VtxItrMergingTool configuration.

Definition at line 93 of file LeptonTaggersConfig.py.

93 def VtxItrMergingToolCfg(flags, name="VertexIterativeMergingTool",
94  lepton_name="", **kwargs) -> ComponentAccumulator:
95  """
96  Generate a VtxItrMergingTool configuration.
97  """
98  lep_tag_log.info("creating VtxItrMergingToolCfg configuration")
99 
100  acc = ComponentAccumulator()
101 
102  kwargs.setdefault("minFitProb", 0.03)
103 
104  tool_name = f'VtxIterFitMergingTool_{lepton_name}'
105 
106  vtxItrMergingTool = CompFactory.Prompt.VertexIterativeFitMergingTool(
107  name=tool_name, **kwargs
108  )
109 
110  acc.setPrivateTools(vtxItrMergingTool)
111 
112  return acc
113 
114 

Variable Documentation

◆ ACC

LeptonTaggersConfig.ACC = MainServicesCfg(FLAGS)

Definition at line 641 of file LeptonTaggersConfig.py.

◆ args

LeptonTaggersConfig.args = parser.parse_args()

Definition at line 617 of file LeptonTaggersConfig.py.

◆ choices

LeptonTaggersConfig.choices

Definition at line 606 of file LeptonTaggersConfig.py.

◆ default

LeptonTaggersConfig.default

Definition at line 607 of file LeptonTaggersConfig.py.

◆ Files

LeptonTaggersConfig.Files

Definition at line 631 of file LeptonTaggersConfig.py.

◆ FLAGS

LeptonTaggersConfig.FLAGS = initConfigFlags()

Definition at line 621 of file LeptonTaggersConfig.py.

◆ help

LeptonTaggersConfig.help

Definition at line 608 of file LeptonTaggersConfig.py.

◆ int

LeptonTaggersConfig.int

Definition at line 611 of file LeptonTaggersConfig.py.

◆ lep_tag_log

LeptonTaggersConfig.lep_tag_log = logging.getLogger('LeptonTaggersConfig')

Definition at line 4 of file LeptonTaggersConfig.py.

◆ MaxEvents

LeptonTaggersConfig.MaxEvents

Definition at line 626 of file LeptonTaggersConfig.py.

◆ parser

LeptonTaggersConfig.parser = ArgumentParser(description="Test the LeptonTaggersConfig")

Definition at line 605 of file LeptonTaggersConfig.py.

◆ ProductionStep

LeptonTaggersConfig.ProductionStep

Definition at line 624 of file LeptonTaggersConfig.py.

◆ Run

LeptonTaggersConfig.Run

Definition at line 634 of file LeptonTaggersConfig.py.

◆ SkipEvents

LeptonTaggersConfig.SkipEvents

Definition at line 627 of file LeptonTaggersConfig.py.

◆ status

LeptonTaggersConfig.status = ACC.run()

Definition at line 664 of file LeptonTaggersConfig.py.

◆ str

LeptonTaggersConfig.str

Definition at line 606 of file LeptonTaggersConfig.py.

◆ summariseProps

LeptonTaggersConfig.summariseProps

Definition at line 661 of file LeptonTaggersConfig.py.

◆ trigger_lists_helper

LeptonTaggersConfig.trigger_lists_helper = TriggerListsHelper(FLAGS)

Definition at line 649 of file LeptonTaggersConfig.py.

◆ True

LeptonTaggersConfig.True

Definition at line 661 of file LeptonTaggersConfig.py.

◆ type

LeptonTaggersConfig.type

Definition at line 606 of file LeptonTaggersConfig.py.

◆ withDetails

LeptonTaggersConfig.withDetails

Definition at line 661 of file LeptonTaggersConfig.py.

python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
LeptonTaggersConfig.DecorateNonPromptVertexCfg
ComponentAccumulator DecorateNonPromptVertexCfg(flags, name="DecorateNonPromptVertex", lepton_name="", **kwargs)
Definition: LeptonTaggersConfig.py:115
LeptonTaggersConfig.getStringIntVars
def getStringIntVars(BDT_name)
Definition: LeptonTaggersConfig.py:230
LeptonTaggersConfig.VtxItrMergingToolCfg
ComponentAccumulator VtxItrMergingToolCfg(flags, name="VertexIterativeMergingTool", lepton_name="", **kwargs)
Definition: LeptonTaggersConfig.py:93
LeptonTaggersConfig.GetExtraPLITVariablesForDxAOD
def GetExtraPLITVariablesForDxAOD(name='')
Definition: LeptonTaggersConfig.py:584
LeptonTaggersConfig.GetExtraImprovedPromptVariablesForDxAOD
def GetExtraImprovedPromptVariablesForDxAOD(name='', onlyBDT=False)
Definition: LeptonTaggersConfig.py:544
LeptonTaggersConfig.VtxFittingToolCfg
ComponentAccumulator VtxFittingToolCfg(ConfigFlags, **kwargs)
Definition: LeptonTaggersConfig.py:27
LeptonTaggersConfig.DecorateReFitPrimaryVertexCfg
ComponentAccumulator DecorateReFitPrimaryVertexCfg(ConfigFlags, name="PrimaryVertexReFitter", lepton_type="", **kwargs)
Definition: LeptonTaggersConfig.py:59
python.TrkVertexBilloirToolsConfig.FastVertexFitterCfg
def FastVertexFitterCfg(flags, name="FastVertexFitterTool", **kwargs)
Definition: TrkVertexBilloirToolsConfig.py:6
LeptonTaggersConfig.DecoratePLITCfg
ComponentAccumulator DecoratePLITCfg(flags, Tagger_name="", lepton_name="", **kwargs)
Definition: LeptonTaggersConfig.py:277
LeptonTaggersConfig.DecoratePLITAlgsCfg
ComponentAccumulator DecoratePLITAlgsCfg(ConfigFlags, name="DecoratePLITAlgsCfg", lepton_type="", **kwargs)
Definition: LeptonTaggersConfig.py:465
LeptonTaggersConfig.DecorateImprovedPromptLeptonAlgsCfg
ComponentAccumulator DecorateImprovedPromptLeptonAlgsCfg(ConfigFlags, name="DecorateImprovedPromptLeptonAlgs", lepton_type="", **kwargs)
Definition: LeptonTaggersConfig.py:420
LeptonTaggersConfig.getStringFloatVars
def getStringFloatVars(BDT_name, part_type='')
Definition: LeptonTaggersConfig.py:247
LeptonTaggersConfig.DecoratePromptLeptonImprovedCfg
ComponentAccumulator DecoratePromptLeptonImprovedCfg(flags, BDT_name="", lepton_name="", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets", veto_BDT_name=None, **kwargs)
Definition: LeptonTaggersConfig.py:342
LeptonTaggersConfig.GetExtraPromptVariablesForDxAOD
def GetExtraPromptVariablesForDxAOD(name='', addSpectators=False, onlyBDT=True)
Definition: LeptonTaggersConfig.py:490
LeptonTaggersConfig.DecoratePromptLeptonRNNCfg
ComponentAccumulator DecoratePromptLeptonRNNCfg(flags, RNN_name="RNN_name", lepton_name="", name="DecoratePromptLeptonRNN", **kwargs)
Definition: LeptonTaggersConfig.py:190
LeptonTaggersConfig.RNNToolCfg
ComponentAccumulator RNNToolCfg(flags, name="RNNTool", RNN_name="RNN_name", lepton_name="", **kwargs)
Definition: LeptonTaggersConfig.py:156