Loading [MathJax]/extensions/tex2jax.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", **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 403 of file LeptonTaggersConfig.py.

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

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

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

◆ 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  # Note: Run3 config is not available yet, so we use the Run2 config for now
303 
304  kwargs.setdefault("ConfigPath", "IsolationSelection/PLIT/2025-02-24/")
305  if lepton_name == 'Electrons':
306  if isRun3:
307  kwargs.setdefault("ConfigFileVersion", 'network_electrons_barrel_run2.onnx')
308  kwargs.setdefault("ConfigFileVersion_endcap", 'network_electrons_endcap_run2.onnx')
309  else:
310  kwargs.setdefault("ConfigFileVersion", 'network_electrons_barrel_run2.onnx')
311  kwargs.setdefault("ConfigFileVersion_endcap", 'network_electrons_endcap_run2.onnx')
312  elif lepton_name == 'Muons':
313  if isRun3:
314  kwargs.setdefault("ConfigFileVersion", 'network_muons_run2.onnx')
315  else:
316  kwargs.setdefault("ConfigFileVersion", 'network_muons_run2.onnx')
317  else:
318  raise ValueError(f'Decorate{Tagger_name} - unknown lepton type: "{lepton_name}"')
319 
320  alg = CompFactory.Prompt.DecoratePLIT(
321  f'{lepton_name}_decorate{Tagger_name}', **kwargs
322  )
323  acc.addEventAlgo(alg, primary=True)
324 
325  lep_tag_log.info(
326  'Decorate%s - prepared %s algorithm for: %s',
327  Tagger_name, Tagger_name, lepton_name
328  )
329 
330  return acc
331 

◆ DecoratePromptLeptonImprovedCfg()

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

Definition at line 332 of file LeptonTaggersConfig.py.

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

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

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

◆ GetExtraPLITVariablesForDxAOD()

def LeptonTaggersConfig.GetExtraPLITVariablesForDxAOD (   name = '')

Definition at line 577 of file LeptonTaggersConfig.py.

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

◆ GetExtraPromptVariablesForDxAOD()

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

Definition at line 483 of file LeptonTaggersConfig.py.

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

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

◆ args

LeptonTaggersConfig.args = parser.parse_args()

Definition at line 610 of file LeptonTaggersConfig.py.

◆ choices

LeptonTaggersConfig.choices

Definition at line 599 of file LeptonTaggersConfig.py.

◆ default

LeptonTaggersConfig.default

Definition at line 600 of file LeptonTaggersConfig.py.

◆ Files

LeptonTaggersConfig.Files

Definition at line 624 of file LeptonTaggersConfig.py.

◆ FLAGS

LeptonTaggersConfig.FLAGS = initConfigFlags()

Definition at line 614 of file LeptonTaggersConfig.py.

◆ help

LeptonTaggersConfig.help

Definition at line 601 of file LeptonTaggersConfig.py.

◆ int

LeptonTaggersConfig.int

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

◆ parser

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

Definition at line 598 of file LeptonTaggersConfig.py.

◆ ProductionStep

LeptonTaggersConfig.ProductionStep

Definition at line 617 of file LeptonTaggersConfig.py.

◆ Run

LeptonTaggersConfig.Run

Definition at line 627 of file LeptonTaggersConfig.py.

◆ SkipEvents

LeptonTaggersConfig.SkipEvents

Definition at line 620 of file LeptonTaggersConfig.py.

◆ status

LeptonTaggersConfig.status = ACC.run()

Definition at line 657 of file LeptonTaggersConfig.py.

◆ str

LeptonTaggersConfig.str

Definition at line 599 of file LeptonTaggersConfig.py.

◆ summariseProps

LeptonTaggersConfig.summariseProps

Definition at line 654 of file LeptonTaggersConfig.py.

◆ trigger_lists_helper

LeptonTaggersConfig.trigger_lists_helper = TriggerListsHelper(FLAGS)

Definition at line 642 of file LeptonTaggersConfig.py.

◆ True

LeptonTaggersConfig.True

Definition at line 654 of file LeptonTaggersConfig.py.

◆ type

LeptonTaggersConfig.type

Definition at line 599 of file LeptonTaggersConfig.py.

◆ withDetails

LeptonTaggersConfig.withDetails

Definition at line 654 of file LeptonTaggersConfig.py.

LeptonTaggersConfig.DecoratePromptLeptonImprovedCfg
ComponentAccumulator DecoratePromptLeptonImprovedCfg(flags, BDT_name="", lepton_name="", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets", **kwargs)
Definition: LeptonTaggersConfig.py:332
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:577
LeptonTaggersConfig.GetExtraImprovedPromptVariablesForDxAOD
def GetExtraImprovedPromptVariablesForDxAOD(name='', onlyBDT=False)
Definition: LeptonTaggersConfig.py:537
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:447
LeptonTaggersConfig.DecorateImprovedPromptLeptonAlgsCfg
ComponentAccumulator DecorateImprovedPromptLeptonAlgsCfg(ConfigFlags, name="DecorateImprovedPromptLeptonAlgs", lepton_type="", **kwargs)
Definition: LeptonTaggersConfig.py:403
LeptonTaggersConfig.getStringFloatVars
def getStringFloatVars(BDT_name, part_type='')
Definition: LeptonTaggersConfig.py:247
LeptonTaggersConfig.GetExtraPromptVariablesForDxAOD
def GetExtraPromptVariablesForDxAOD(name='', addSpectators=False, onlyBDT=True)
Definition: LeptonTaggersConfig.py:483
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