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 DecoratePromptLeptonImprovedCfg (flags, BDT_name="", lepton_name="", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets", **kwargs)
 
ComponentAccumulator DecorateImprovedPromptLeptonAlgsCfg (ConfigFlags, name="DecorateImprovedPromptLeptonAlgs", lepton_type="", **kwargs)
 
def GetExtraPromptVariablesForDxAOD (name='', addSpectators=False, onlyBDT=True)
 
def GetExtraImprovedPromptVariablesForDxAOD (name='', onlyBDT=False)
 

Variables

 lep_tag_log = logging.getLogger('LeptonTaggersConfig')
 
 FLAGS = initConfigFlags()
 
 ProductionStep
 
 MaxEvents
 
 Files
 
 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 347 of file LeptonTaggersConfig.py.

348  ConfigFlags, name="DecorateImprovedPromptLeptonAlgs",
349  lepton_type="", **kwargs
350 ) -> ComponentAccumulator:
351  """
352  CA to decorate with PLIV input algorithms
353  """
354  valid_lepton_types = ["", "Electrons", "Muons"]
355  if lepton_type not in valid_lepton_types:
356  lep_tag_log.error("Requested lepton type: %s", lepton_type)
357  lep_tag_log.error("Allowed lepton types: %s", valid_lepton_types)
358  raise ValueError('DecorateImprovedPromptLeptonAlgsCfg - '
359  + f'unknown lepton type: "{lepton_type}"')
360 
361  acc = ComponentAccumulator()
362 
363  if lepton_type in ["", "Electrons"]:
364  acc.merge(DecorateReFitPrimaryVertexCfg(ConfigFlags, lepton_type="Electrons"))
365  acc.merge(DecorateNonPromptVertexCfg(ConfigFlags, lepton_name="Electrons"))
366  acc.merge(DecoratePromptLeptonRNNCfg(ConfigFlags,
367  RNN_name='PromptLeptonRNN',
368  lepton_name='Electrons'))
370  ConfigFlags, BDT_name="PromptLeptonImprovedVetoBARR",
371  lepton_name="Electrons", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets"
372  ))
374  ConfigFlags, BDT_name="PromptLeptonImprovedVetoECAP",
375  lepton_name="Electrons", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets"
376  ))
377 
378  if lepton_type in ["", "Muons"]:
379  acc.merge(DecorateReFitPrimaryVertexCfg(ConfigFlags, lepton_type="Muons"))
380  acc.merge(DecorateNonPromptVertexCfg(ConfigFlags, lepton_name="Muons"))
381  acc.merge(DecoratePromptLeptonRNNCfg(ConfigFlags,
382  RNN_name='PromptLeptonRNN',
383  lepton_name='Muons'))
385  ConfigFlags, BDT_name="PromptLeptonImprovedVeto",
386  lepton_name="Muons", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets"
387  ))
388 
389  return acc
390 
391 #------------------------------------------------------------------------------

◆ DecorateNonPromptVertexCfg()

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

Definition at line 113 of file LeptonTaggersConfig.py.

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

◆ DecoratePromptLeptonImprovedCfg()

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

Definition at line 275 of file LeptonTaggersConfig.py.

276  flags, BDT_name="", lepton_name="", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets",
277  **kwargs
278 ) -> ComponentAccumulator:
279  """
280  Configure the PromptLeptonImproved decorator.
281  """
282  lep_tag_log.info("calling DecoratePromptLeptonImprovedCfg with BDT_name="+BDT_name+" lepton_name="+lepton_name+" track_jet_name="+track_jet_name)
283  #
284  # Check track jet container is correct
285  #
286  if track_jet_name != 'AntiKtVR30Rmax4Rmin02PV0TrackJets':
287  raise ValueError(f'Decorate{BDT_name} - unknown track jet collection: "{track_jet_name}"')
288 
289  acc = ComponentAccumulator()
290 
291  #
292  # Prepare DecoratePromptLepton alg
293  #
294  kwargs.setdefault("LeptonContainerName", lepton_name)
295 
296  kwargs.setdefault("TrackJetContainerName", track_jet_name)
297  kwargs.setdefault("PrimaryVertexContainerName", 'PrimaryVertices')
298  kwargs.setdefault("ClusterContainerName", 'CaloCalTopoClusters')
299 
300  kwargs.setdefault("BDTName", BDT_name)
301  kwargs.setdefault("InputVarDecoratePrefix", 'PromptLeptonImprovedInput_')
302  kwargs.setdefault("PrintTime", False)
303  kwargs.setdefault("OutputLevel", 10)
304 
305  #
306  # Read configuration from AFS for this initial merge request, will switch to cvmfs with second request
307  #
308  if lepton_name == 'Electrons':
309  kwargs.setdefault("MethodTitleMVA", f'BDT_Electron_{BDT_name}')
310  kwargs.setdefault("ConfigFileVersion", 'InputData-2020-02-25/BDT/Electron/' + BDT_name)
311  kwargs.setdefault("accessorRNNVars", ['PromptLeptonRNN_prompt'])
312  elif lepton_name == 'Muons':
313  kwargs.setdefault("MethodTitleMVA", f'BDT_Muon_{BDT_name}')
314  kwargs.setdefault("ConfigFileVersion", 'InputData-2020-02-25/BDT/Muon/' + BDT_name)
315  kwargs.setdefault("accessorRNNVars", ['PromptLeptonRNN_prompt'])
316  else:
317  raise ValueError(f'Decorate{BDT_name} - unknown lepton type: "{lepton_name}"')
318 
319  kwargs.setdefault("stringIntVars", getStringIntVars(BDT_name))
320  kwargs.setdefault("stringFloatVars", getStringFloatVars(BDT_name))
321  kwargs.setdefault("extraDecoratorFloatVars", ['RawPt'])
322  kwargs.setdefault("extraDecoratorShortVars", ['CandVertex_NPassVtx'])
323  kwargs.setdefault("vetoDecoratorFloatVars", ['PromptLeptonRNN_prompt'])
324  kwargs.setdefault("vetoDecoratorShortVars", [])
325 
326  kwargs.setdefault("leptonPtBinsVector", [10.0e3, 15.0e3, 20.0e3, 25.0e3, 32.0e3, 43.0e3, 100.0e3])
327 
328 
329  #
330  # Secondary vertex selection for the PromptLeptonImproved
331  #
332  kwargs.setdefault("VertexLinkName", 'DeepMergedSecVtxLinks')
333 
334  alg = CompFactory.Prompt.DecoratePromptLeptonImproved(
335  f'{lepton_name}_decorate{BDT_name}', **kwargs
336  )
337  acc.addEventAlgo(alg, primary=True)
338 
339  lep_tag_log.info(
340  'Decorate%s - prepared %s algorithm for: %s, %s',
341  BDT_name, BDT_name, lepton_name, track_jet_name
342  )
343 
344  return acc
345 
346 

◆ DecoratePromptLeptonRNNCfg()

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

Definition at line 188 of file LeptonTaggersConfig.py.

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

◆ DecorateReFitPrimaryVertexCfg()

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

Definition at line 56 of file LeptonTaggersConfig.py.

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

◆ GetExtraImprovedPromptVariablesForDxAOD()

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

Definition at line 446 of file LeptonTaggersConfig.py.

446 def GetExtraImprovedPromptVariablesForDxAOD(name='', onlyBDT=False):
447 
448  prompt_lep_vars = []
449 
450  #
451  # Decorate lepton only with the BDT outputs when the onlyBDT flag is true.
452  #
453  if onlyBDT:
454  # Add lepton raw pT and pTBin as default which is needed for the PLIV working points.
455  rawpt_vars ="PromptLeptonImprovedInput_MVAXBin.PromptLeptonImprovedInput_RawPt"
456 
457  if name == "" or name == "Electrons":
458  prompt_lep_vars += ["Electrons.PromptLeptonImprovedVetoBARR.PromptLeptonImprovedVetoECAP.%s"%rawpt_vars]
459 
460  if name == "" or name == "Muons":
461  prompt_lep_vars += ["Muons.PromptLeptonImprovedVeto.%s"%rawpt_vars]
462 
463  return prompt_lep_vars
464 
465  prompt_vars = "PromptLeptonImprovedInput_MVAXBin.PromptLeptonImprovedInput_RawPt."
466  prompt_vars += "PromptLeptonImprovedInput_PtFrac.PromptLeptonImprovedInput_DRlj."
467  prompt_vars += "PromptLeptonImprovedInput_topoetcone30rel.PromptLeptonImprovedInput_ptvarcone30rel."
468 
469  if name == "" or name == "Electrons":
470  # Add PromptLeptonTagger electron RNN and new inputs for PromptLeptonImprovedVetoBARR/PromptLeptonImprovedVetoECAP
471  prompt_el_vars = "PromptLeptonRNN_prompt.PromptLeptonRNN_non_prompt_b.PromptLeptonRNN_non_prompt_c.PromptLeptonRNN_conversion."
472  prompt_el_vars += "PromptLeptonImprovedVetoBARR.PromptLeptonImprovedVetoECAP.PromptLeptonImprovedInput_TrackJetNTrack.PromptLeptonImprovedInput_PtRel.PromptLeptonImprovedInput_CaloClusterSumEtRel.PromptLeptonImprovedInput_CandVertex_normDistToPriVtxLongitudinalBest_ThetaCutVtx"
473 
474  prompt_lep_vars += ["Electrons." + prompt_vars + prompt_el_vars]
475 
476  if name == "" or name == "Muons":
477  # Add PromptLeptonTagger muon RNN and new inputs for PromptLeptonImprovedVeto
478  prompt_mu_vars = "PromptLeptonRNN_prompt.PromptLeptonRNN_non_prompt_b.PromptLeptonRNN_non_prompt_c."
479  prompt_mu_vars += "PromptLeptonImprovedVeto.PromptLeptonImprovedInput_ptvarcone30_TightTTVA_pt500rel.PromptLeptonImprovedInput_CaloClusterERel.PromptLeptonImprovedInput_CandVertex_normDistToPriVtxLongitudinalBest"
480 
481  prompt_lep_vars += ["Muons." + prompt_vars + prompt_mu_vars]
482 
483  return prompt_lep_vars
484 
485 
486 # Script to run for testing the config
487 # from https://atlassoftwaredocs.web.cern.ch/guides/ca_configuration/ca/

◆ GetExtraPromptVariablesForDxAOD()

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

Definition at line 392 of file LeptonTaggersConfig.py.

392 def GetExtraPromptVariablesForDxAOD(name='', addSpectators=False, onlyBDT=True):
393 
394  prompt_lep_vars = []
395 
396  #
397  # Decorate lepton only with the BDT outputs when the onlyBDT flag is true.
398  #
399  # NOTE: The output score name for BDTname=LowPtPromptLeptonVeto is "LowPtPLV" instead "LowPtPromptLeptonVeto".
400  # This is to harmonize with the variable augmented in CP::IsolationLowPtPLVTool
401  #
402  if onlyBDT:
403  if name == "" or name == "Electrons":
404  prompt_lep_vars += ["Electrons.PromptLeptonVeto.PromptLeptonIso.LowPtPLV."]
405 
406  if name == "" or name == "Muons":
407  prompt_lep_vars += ["Muons.PromptLeptonVeto.PromptLeptonIso.LowPtPLV."]
408 
409  return prompt_lep_vars
410 
411 
412  prompt_vars = "PromptLeptonVeto.PromptLeptonIso.LowPtPLV."
413  prompt_vars += "PromptLeptonInput_TrackJetNTrack.PromptLeptonInput_sv1_jf_ntrkv."
414  prompt_vars += "PromptLeptonInput_ip2.PromptLeptonInput_ip3."
415  prompt_vars += "PromptLeptonInput_LepJetPtFrac.PromptLeptonInput_DRlj."
416  prompt_vars += "PromptLeptonInput_PtFrac.PromptLeptonInput_PtRel."
417  prompt_vars += "PromptLeptonInput_DL1mu.PromptLeptonInput_rnnip."
418  prompt_vars += "PromptLeptonInput_topoetcone20rel.PromptLeptonInput_ptvarcone20rel."
419  prompt_vars += "PromptLeptonInput_topoetcone30rel.PromptLeptonInput_ptvarcone30rel."
420 
421  prompt_vars += "PromptLeptonInput_SecondaryVertexIndexVector.PromptLeptonInput_SecondaryVertexIndexVectorInDet.PromptLeptonInput_SecondaryVertexIndexVectorMerge.PromptLeptonInput_SecondaryVertexIndexVectorDeepMerge."
422  prompt_vars += "rhocen.rhofor.SecVtxLinks.RefittedPriVtxLink.RefittedPriVtxWithoutLeptonLink."
423 
424 
425  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"
426 
427  if addSpectators :
428  prompt_vars += "PromptLeptonInput_JetPt.PromptLeptonInput_JetEta.PromptLeptonInput_JetPhi.PromptLeptonInput_JetM."
429 
430  if name == "" or name == "Electrons":
431  prompt_el_vars = "ptvarcone40.topoetcone20.topoetcone20ptCorrection.ptcone20_TightTTVA_pt500.ptcone20_TightTTVA_pt1000.ptvarcone20_TightTTVA_pt1000.ptvarcone30_TightTTVA_pt500.ptvarcone30_TightTTVA_pt1000.ptvarcone40_TightTTVALooseCone_pt500"
432 
433  prompt_lep_vars += ["Electrons." + prompt_vars + prompt_el_vars]
434  prompt_lep_vars += ["SecVtxContainer_Electrons.%s" %secondaryvertex_vars]
435  prompt_lep_vars += ["SecVtx_ConvVtxContainer_Electrons.%s" %secondaryvertex_vars]
436 
437  if name == "" or name == "Muons":
438  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"
439 
440  prompt_lep_vars += ["Muons." + prompt_vars + prompt_mu_vars]
441  prompt_lep_vars += ["SecVtxContainer_Muons.%s" %secondaryvertex_vars]
442 
443  return prompt_lep_vars
444 
445 #------------------------------------------------------------------------------

◆ getStringFloatVars()

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

Definition at line 245 of file LeptonTaggersConfig.py.

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

◆ getStringIntVars()

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

Definition at line 228 of file LeptonTaggersConfig.py.

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

◆ RNNToolCfg()

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

Definition at line 154 of file LeptonTaggersConfig.py.

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

◆ VtxFittingToolCfg()

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

Definition at line 24 of file LeptonTaggersConfig.py.

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

◆ VtxItrMergingToolCfg()

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

Definition at line 91 of file LeptonTaggersConfig.py.

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

Variable Documentation

◆ ACC

LeptonTaggersConfig.ACC = MainServicesCfg(FLAGS)

Definition at line 507 of file LeptonTaggersConfig.py.

◆ Files

LeptonTaggersConfig.Files

Definition at line 500 of file LeptonTaggersConfig.py.

◆ FLAGS

LeptonTaggersConfig.FLAGS = initConfigFlags()

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

◆ ProductionStep

LeptonTaggersConfig.ProductionStep

Definition at line 494 of file LeptonTaggersConfig.py.

◆ status

LeptonTaggersConfig.status = ACC.run()

Definition at line 534 of file LeptonTaggersConfig.py.

◆ summariseProps

LeptonTaggersConfig.summariseProps

Definition at line 531 of file LeptonTaggersConfig.py.

◆ trigger_lists_helper

LeptonTaggersConfig.trigger_lists_helper = TriggerListsHelper(FLAGS)

Definition at line 517 of file LeptonTaggersConfig.py.

◆ True

LeptonTaggersConfig.True

Definition at line 531 of file LeptonTaggersConfig.py.

◆ withDetails

LeptonTaggersConfig.withDetails

Definition at line 531 of file LeptonTaggersConfig.py.

LeptonTaggersConfig.DecoratePromptLeptonImprovedCfg
ComponentAccumulator DecoratePromptLeptonImprovedCfg(flags, BDT_name="", lepton_name="", track_jet_name="AntiKtVR30Rmax4Rmin02PV0TrackJets", **kwargs)
Definition: LeptonTaggersConfig.py:275
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
LeptonTaggersConfig.DecorateNonPromptVertexCfg
ComponentAccumulator DecorateNonPromptVertexCfg(flags, name="DecorateNonPromptVertex", lepton_name="", **kwargs)
Definition: LeptonTaggersConfig.py:113
LeptonTaggersConfig.getStringIntVars
def getStringIntVars(BDT_name)
Definition: LeptonTaggersConfig.py:228
LeptonTaggersConfig.VtxItrMergingToolCfg
ComponentAccumulator VtxItrMergingToolCfg(flags, name="VertexIterativeMergingTool", lepton_name="", **kwargs)
Definition: LeptonTaggersConfig.py:91
LeptonTaggersConfig.GetExtraImprovedPromptVariablesForDxAOD
def GetExtraImprovedPromptVariablesForDxAOD(name='', onlyBDT=False)
Definition: LeptonTaggersConfig.py:446
LeptonTaggersConfig.VtxFittingToolCfg
ComponentAccumulator VtxFittingToolCfg(ConfigFlags, **kwargs)
Definition: LeptonTaggersConfig.py:24
LeptonTaggersConfig.DecorateReFitPrimaryVertexCfg
ComponentAccumulator DecorateReFitPrimaryVertexCfg(ConfigFlags, name="PrimaryVertexReFitter", lepton_type="", **kwargs)
Definition: LeptonTaggersConfig.py:56
python.TrkVertexBilloirToolsConfig.FastVertexFitterCfg
def FastVertexFitterCfg(flags, name="FastVertexFitterTool", **kwargs)
Definition: TrkVertexBilloirToolsConfig.py:6
LeptonTaggersConfig.DecorateImprovedPromptLeptonAlgsCfg
ComponentAccumulator DecorateImprovedPromptLeptonAlgsCfg(ConfigFlags, name="DecorateImprovedPromptLeptonAlgs", lepton_type="", **kwargs)
Definition: LeptonTaggersConfig.py:347
LeptonTaggersConfig.getStringFloatVars
def getStringFloatVars(BDT_name, part_type='')
Definition: LeptonTaggersConfig.py:245
LeptonTaggersConfig.GetExtraPromptVariablesForDxAOD
def GetExtraPromptVariablesForDxAOD(name='', addSpectators=False, onlyBDT=True)
Definition: LeptonTaggersConfig.py:392
LeptonTaggersConfig.DecoratePromptLeptonRNNCfg
ComponentAccumulator DecoratePromptLeptonRNNCfg(flags, RNN_name="RNN_name", lepton_name="", name="DecoratePromptLeptonRNN", **kwargs)
Definition: LeptonTaggersConfig.py:188
LeptonTaggersConfig.RNNToolCfg
ComponentAccumulator RNNToolCfg(flags, name="RNNTool", RNN_name="RNN_name", lepton_name="", **kwargs)
Definition: LeptonTaggersConfig.py:154