Loading [MathJax]/jax/input/TeX/config.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 411 of file LeptonTaggersConfig.py.

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

◆ 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 456 of file LeptonTaggersConfig.py.

457  ConfigFlags, name="DecoratePLITAlgsCfg",
458  lepton_type="", **kwargs
459 ) -> ComponentAccumulator:
460  """
461  CA to decorate with PLIT input algorithms
462  """
463  valid_lepton_types = ["", "Electrons", "Muons"]
464  if lepton_type not in valid_lepton_types:
465  lep_tag_log.error("Requested lepton type: %s", lepton_type)
466  lep_tag_log.error("Allowed lepton types: %s", valid_lepton_types)
467  raise ValueError('DecoratePLITAlgsCfg - '
468  + f'unknown lepton type: "{lepton_type}"')
469 
470  acc = ComponentAccumulator()
471 
472  if lepton_type in ["", "Electrons"]:
473  acc.merge(DecoratePLITCfg(ConfigFlags, Tagger_name="PLIT", lepton_name="Electrons"))
474 
475  if lepton_type in ["", "Muons"]:
476  acc.merge(DecoratePLITCfg(ConfigFlags, Tagger_name="PLIT", lepton_name="Muons"))
477 
478  # Both algorithms above will be writing to the same decorations.
479  # So we need to explicitly lock them.
480  # (This is not MT-compatible.)
481  acc.addEventAlgo(CompFactory.DerivationFramework.LockDecorations
482  ('LockPLITDecorations',
483  Decorations = ['InDetTrackParticles.dr_lepton',
484  'InDetTrackParticles.electron_track',
485  'InDetTrackParticles.muon_track',
486  'InDetTrackParticles.dr_leptontrack',
487  ]))
488 
489  return acc
490 
491 #------------------------------------------------------------------------------

◆ 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  # path on calib area (found by path resolver
300  # /cvmfs/atlas.cern.ch/repo/sw/database/GroupData/
301 
302  if lepton_name == 'Electrons':
303  if isRun3:
304  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
305  kwargs.setdefault("ConfigFileVersion", 'network_run3_electrons_barrel.onnx')
306  kwargs.setdefault("ConfigFileVersion_endcap", 'network_run3_electrons_endcap.onnx')
307  else:
308  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
309  kwargs.setdefault("ConfigFileVersion", 'network_run2_electrons_barrel.onnx')
310  kwargs.setdefault("ConfigFileVersion_endcap", 'network_run2_electrons_endcap.onnx')
311  elif lepton_name == 'Muons':
312  if isRun3:
313  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
314  kwargs.setdefault("ConfigFileVersion", 'network_run3_muons.onnx')
315  else:
316  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-04-25/")
317  kwargs.setdefault("ConfigFileVersion", 'network_run2_muons.onnx')
318  else:
319  raise ValueError(f'Decorate{Tagger_name} - unknown lepton type: "{lepton_name}"')
320 
321  alg = CompFactory.Prompt.DecoratePLIT(
322  f'{lepton_name}_decorate{Tagger_name}', **kwargs
323  )
324  acc.addEventAlgo(alg, primary=True)
325 
326  lep_tag_log.info(
327  'Decorate%s - prepared %s algorithm for: %s',
328  Tagger_name, Tagger_name, lepton_name
329  )
330 
331  return acc
332 

◆ 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 333 of file LeptonTaggersConfig.py.

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

◆ 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 546 of file LeptonTaggersConfig.py.

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

◆ GetExtraPLITVariablesForDxAOD()

def LeptonTaggersConfig.GetExtraPLITVariablesForDxAOD (   name = '')

Definition at line 586 of file LeptonTaggersConfig.py.

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

◆ GetExtraPromptVariablesForDxAOD()

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

Definition at line 492 of file LeptonTaggersConfig.py.

492 def GetExtraPromptVariablesForDxAOD(name='', addSpectators=False, onlyBDT=True):
493 
494  prompt_lep_vars = []
495 
496  #
497  # Decorate lepton only with the BDT outputs when the onlyBDT flag is true.
498  #
499  # NOTE: The output score name for BDTname=LowPtPromptLeptonVeto is "LowPtPLV" instead "LowPtPromptLeptonVeto".
500  # This is to harmonize with the variable augmented in CP::IsolationLowPtPLVTool
501  #
502  if onlyBDT:
503  if name == "" or name == "Electrons":
504  prompt_lep_vars += ["Electrons.PromptLeptonVeto.PromptLeptonIso.LowPtPLV."]
505 
506  if name == "" or name == "Muons":
507  prompt_lep_vars += ["Muons.PromptLeptonVeto.PromptLeptonIso.LowPtPLV."]
508 
509  return prompt_lep_vars
510 
511 
512  prompt_vars = "PromptLeptonVeto.PromptLeptonIso.LowPtPLV."
513  prompt_vars += "PromptLeptonInput_TrackJetNTrack.PromptLeptonInput_sv1_jf_ntrkv."
514  prompt_vars += "PromptLeptonInput_ip2.PromptLeptonInput_ip3."
515  prompt_vars += "PromptLeptonInput_LepJetPtFrac.PromptLeptonInput_DRlj."
516  prompt_vars += "PromptLeptonInput_PtFrac.PromptLeptonInput_PtRel."
517  prompt_vars += "PromptLeptonInput_DL1mu.PromptLeptonInput_rnnip."
518  prompt_vars += "PromptLeptonInput_topoetcone20rel.PromptLeptonInput_ptvarcone20rel."
519  prompt_vars += "PromptLeptonInput_topoetcone30rel.PromptLeptonInput_ptvarcone30rel."
520 
521  prompt_vars += "PromptLeptonInput_SecondaryVertexIndexVector.PromptLeptonInput_SecondaryVertexIndexVectorInDet.PromptLeptonInput_SecondaryVertexIndexVectorMerge.PromptLeptonInput_SecondaryVertexIndexVectorDeepMerge."
522  prompt_vars += "rhocen.rhofor.SecVtxLinks.RefittedPriVtxLink.RefittedPriVtxWithoutLeptonLink."
523 
524 
525  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"
526 
527  if addSpectators :
528  prompt_vars += "PromptLeptonInput_JetPt.PromptLeptonInput_JetEta.PromptLeptonInput_JetPhi.PromptLeptonInput_JetM."
529 
530  if name == "" or name == "Electrons":
531  prompt_el_vars = "ptvarcone40.topoetcone20.topoetcone20ptCorrection.ptcone20_TightTTVA_pt500.ptcone20_TightTTVA_pt1000.ptvarcone20_TightTTVA_pt1000.ptvarcone30_TightTTVA_pt500.ptvarcone30_TightTTVA_pt1000.ptvarcone40_TightTTVALooseCone_pt500"
532 
533  prompt_lep_vars += ["Electrons." + prompt_vars + prompt_el_vars]
534  prompt_lep_vars += ["SecVtxContainer_Electrons.%s" %secondaryvertex_vars]
535  prompt_lep_vars += ["SecVtx_ConvVtxContainer_Electrons.%s" %secondaryvertex_vars]
536 
537  if name == "" or name == "Muons":
538  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"
539 
540  prompt_lep_vars += ["Muons." + prompt_vars + prompt_mu_vars]
541  prompt_lep_vars += ["SecVtxContainer_Muons.%s" %secondaryvertex_vars]
542 
543  return prompt_lep_vars
544 
545 #------------------------------------------------------------------------------

◆ 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 643 of file LeptonTaggersConfig.py.

◆ args

LeptonTaggersConfig.args = parser.parse_args()

Definition at line 619 of file LeptonTaggersConfig.py.

◆ choices

LeptonTaggersConfig.choices

Definition at line 608 of file LeptonTaggersConfig.py.

◆ default

LeptonTaggersConfig.default

Definition at line 609 of file LeptonTaggersConfig.py.

◆ Files

LeptonTaggersConfig.Files

Definition at line 633 of file LeptonTaggersConfig.py.

◆ FLAGS

LeptonTaggersConfig.FLAGS = initConfigFlags()

Definition at line 623 of file LeptonTaggersConfig.py.

◆ help

LeptonTaggersConfig.help

Definition at line 610 of file LeptonTaggersConfig.py.

◆ int

LeptonTaggersConfig.int

Definition at line 613 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 628 of file LeptonTaggersConfig.py.

◆ parser

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

Definition at line 607 of file LeptonTaggersConfig.py.

◆ ProductionStep

LeptonTaggersConfig.ProductionStep

Definition at line 626 of file LeptonTaggersConfig.py.

◆ Run

LeptonTaggersConfig.Run

Definition at line 636 of file LeptonTaggersConfig.py.

◆ SkipEvents

LeptonTaggersConfig.SkipEvents

Definition at line 629 of file LeptonTaggersConfig.py.

◆ status

LeptonTaggersConfig.status = ACC.run()

Definition at line 666 of file LeptonTaggersConfig.py.

◆ str

LeptonTaggersConfig.str

Definition at line 608 of file LeptonTaggersConfig.py.

◆ summariseProps

LeptonTaggersConfig.summariseProps

Definition at line 663 of file LeptonTaggersConfig.py.

◆ trigger_lists_helper

LeptonTaggersConfig.trigger_lists_helper = TriggerListsHelper(FLAGS)

Definition at line 651 of file LeptonTaggersConfig.py.

◆ True

LeptonTaggersConfig.True

Definition at line 663 of file LeptonTaggersConfig.py.

◆ type

LeptonTaggersConfig.type

Definition at line 608 of file LeptonTaggersConfig.py.

◆ withDetails

LeptonTaggersConfig.withDetails

Definition at line 663 of file LeptonTaggersConfig.py.

python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
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:586
LeptonTaggersConfig.GetExtraImprovedPromptVariablesForDxAOD
def GetExtraImprovedPromptVariablesForDxAOD(name='', onlyBDT=False)
Definition: LeptonTaggersConfig.py:546
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:456
LeptonTaggersConfig.DecorateImprovedPromptLeptonAlgsCfg
ComponentAccumulator DecorateImprovedPromptLeptonAlgsCfg(ConfigFlags, name="DecorateImprovedPromptLeptonAlgs", lepton_type="", **kwargs)
Definition: LeptonTaggersConfig.py:411
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:333
LeptonTaggersConfig.GetExtraPromptVariablesForDxAOD
def GetExtraPromptVariablesForDxAOD(name='', addSpectators=False, onlyBDT=True)
Definition: LeptonTaggersConfig.py:492
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