ATLAS Offline Software
Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | List of all members
python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder Class Reference
Collaboration diagram for python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder:

Public Member Functions

def __init__ (self, helper)
 
def configureMode (self)
 
def configure (self)
 
def getTriggerInfo (self, str trigger, use_thresholds=True)
 
def configureTriggers (self)
 
def configureAlgorithmSingle (self)
 
def configureAlgorithmDiTau (self)
 
def configureAlgorithmTagAndProbe (self)
 
def configureAlgorithmTruth (self)
 
def configureAlgorithmL1 (self)
 
def bookHLTEffHistograms (self, mon_alg, base_path, trigger, n_prong)
 
def bookIDInputScalar (self, mon_alg, base_path, trigger, n_prong, online)
 
def bookIDInputTrack (self, mon_alg, base_path, trigger, online)
 
def bookIDInputCluster (self, mon_alg, base_path, trigger, online)
 
def bookIDScores (self, mon_alg, base_path, trigger, n_prong, online)
 
def bookBasicVars (self, mon_alg, base_path, trigger, n_prong, online)
 
def bookDiTauHLTEffHistograms (self, mon_alg, base_path, trigger)
 
def bookDiTauVars (self, mon_alg, base_path, trigger)
 
def bookTAndPHLTEffHistograms (self, mon_alg, base_path, trigger)
 
def bookTAndPVars (self, mon_alg, base_path, trigger)
 
def bookTruthEfficiency (self, mon_alg, base_path, trigger, n_prong)
 
def bookTruthVars (self, mon_alg, base_path, trigger, n_prong)
 
def bookL1EffHistograms (self, mon_alg, base_path, trigger, n_prong)
 
def bookL1Vars (self, mon_alg, base_path, trigger)
 
def getCustomPtBinning (self, trigger, fine=False)
 

Public Attributes

 logger
 
 base_path
 
 helper
 
 L1_Phase1_thresholds
 
 L1_Phase1_threshold_mappings
 
 activate_single_tau
 
 mon_alg_single
 
 HLT_single_items
 
 activate_ditau
 
 mon_alg_ditau
 
 HLT_ditau_items
 
 activate_tag_and_probe
 
 mon_alg_tag_and_probe
 
 HLT_tag_and_probe_items
 
 activate_truth
 
 mon_alg_truth
 
 HLT_truth_items
 
 activate_L1
 
 mon_alg_L1
 
 L1_items
 
 is_mc
 
 data_type
 
 mon_alg_single_no_offline
 
 mon_alg_L1_no_offline
 
 mon_alg_L1_alt
 

Static Public Attributes

 do_single_tau
 
 do_L1
 
 do_ditau
 
 do_tag_and_probe
 
 do_truth
 
 do_total_efficiency
 
 require_offline_taus
 
 do_duplicate_var_plots_without_offline_taus
 
 hlt_tauid_scores
 
 offline_tauid_scores
 
 do_alternative_eTAU_monitoring
 
 maxsize
 

Private Member Functions

def _L1_Phase1_thresholds_stdmap (self)
 
def _L1_Phase1_threshold_mappings_stdmap (self)
 
def _configureAlgorithm (self, algorithm_factory, name)
 

Detailed Description

Definition at line 8 of file TrigTauMonitoringConfig.py.

Constructor & Destructor Documentation

◆ __init__()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.__init__ (   self,
  helper 
)

Definition at line 59 of file TrigTauMonitoringConfig.py.

59  def __init__(self, helper):
60  from AthenaCommon.Logging import logging
61  self.logger = logging.getLogger('TrigTauMonAlgBuilder')
62 
63  self.base_path = 'HLT/TauMon'
64  self.helper = helper
65 
66  # Threshold information for all Phase 1 items
67  self.L1_Phase1_thresholds = {} # E_T cuts
68  self.L1_Phase1_threshold_mappings = {} # thresholdMappings bit masks
69 
70  # Monitoring algorithms, and lists of items to monitor (will be filled on configure())
71  self.activate_single_tau = self.do_single_tau
72  self.mon_alg_single = None
73  self.HLT_single_items = []
74 
75  self.activate_ditau = self.do_ditau
76  self.mon_alg_ditau = None
77  self.HLT_ditau_items = []
78 
79  self.activate_tag_and_probe = self.do_tag_and_probe
80  self.mon_alg_tag_and_probe = None
81  self.HLT_tag_and_probe_items = []
82 
83  self.activate_truth = self.do_truth
84  self.mon_alg_truth = None
85  self.HLT_truth_items = []
86 
87  self.activate_L1 = self.do_L1
88  self.mon_alg_L1 = None
89  self.L1_items = []
90 
91  self.configureMode()
92 
93 

Member Function Documentation

◆ _configureAlgorithm()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder._configureAlgorithm (   self,
  algorithm_factory,
  name 
)
private

Definition at line 241 of file TrigTauMonitoringConfig.py.

241  def _configureAlgorithm(self, algorithm_factory, name):
242  self.logger.info(f'Creating the monitoring algorithm: {name}')
243  mon_alg = self.helper.addAlgorithm(algorithm_factory, name)
244  mon_alg.L1Phase1Thresholds = self.L1_Phase1_thresholds
245  mon_alg.L1Phase1ThresholdPatterns = self.L1_Phase1_threshold_mappings
246  return mon_alg
247 
248 

◆ _L1_Phase1_threshold_mappings_stdmap()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder._L1_Phase1_threshold_mappings_stdmap (   self)
private

Definition at line 144 of file TrigTauMonitoringConfig.py.

144  def _L1_Phase1_threshold_mappings_stdmap(self):
145  import ROOT
146  m = ROOT.std.map[ROOT.std.string, ROOT.uint64_t]()
147  for item, thr in self.L1_Phase1_threshold_mappings.items():
148  m[item] = thr
149  return m
150 

◆ _L1_Phase1_thresholds_stdmap()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder._L1_Phase1_thresholds_stdmap (   self)
private

Definition at line 136 of file TrigTauMonitoringConfig.py.

136  def _L1_Phase1_thresholds_stdmap(self):
137  import ROOT
138  m = ROOT.std.map[ROOT.std.string, ROOT.float]()
139  for item, thr in self.L1_Phase1_thresholds.items():
140  m[item] = thr
141  return m
142 

◆ bookBasicVars()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookBasicVars (   self,
  mon_alg,
  base_path,
  trigger,
  n_prong,
  online 
)

Definition at line 505 of file TrigTauMonitoringConfig.py.

505  def bookBasicVars(self, mon_alg, base_path, trigger, n_prong, online):
506  type_str = 'HLT' if online else 'Offline'
507  mon_group_name = f'{trigger}_{type_str}_basicVars_{n_prong}'
508  mon_group_path = f'{base_path}/basicVars/{trigger}/{type_str}_{n_prong}'
509  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
510 
511  binning = self.getCustomPtBinning(trigger, fine=True)
512 
513  mon_group.defineHistogram('Pt', title=f'{type_str} p_{{T}}; p_{{T}} [GeV]; Events', xbins=binning, opt='kAlwaysCreate')
514  mon_group.defineHistogram('Eta', title=f'{type_str} #eta; #eta; Events', xbins=26, xmin=-2.6, xmax=2.6, opt='kAlwaysCreate')
515  mon_group.defineHistogram('Phi', title=f'{type_str} #phi; #phi; Events', xbins=16, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
516  mon_group.defineHistogram('nTrack', title=f'{type_str} Number of tracks; N_{{track}}; Events', xbins=10, xmin=0, xmax=10, opt='kAlwaysCreate')
517  mon_group.defineHistogram('Eta,Phi', type='TH2F', title=f'{type_str} #eta vs #phi; #eta; #phi', xbins=26, xmin=-2.6, xmax=2.6, ybins=16, ymin=-3.2, ymax=3.2, opt='kAlwaysCreate')
518  mon_group.defineHistogram('Pt,Phi', type='TH2F', title=f'{type_str} p_{{T}} vs #phi; p_{{T}} [GeV]; #phi', xbins=binning, ybins=16, ymin=-3.2, ymax=3.2, opt='kAlwaysCreate')
519  mon_group.defineHistogram('Pt,Eta', type='TH2F', title=f'{type_str} p_{{T}} vs #eta; p_{{T}} [GeV]; #eta', xbins=binning, ybins=26, ymin=-2.6, ymax=2.6, opt='kAlwaysCreate')
520  mon_group.defineHistogram('nIsoTrack', title=f'{type_str} Number of isolation tracks; N_{{track}}^{{iso}}; Events', xbins=10, xmin=0, xmax=10, opt='kAlwaysCreate')
521  mon_group.defineHistogram('averageMu', title=f'{type_str} Average #mu; #LT#mu$GT; Events', xbins=20, xmin=0, xmax=80, opt='kAlwaysCreate')
522  mon_group.defineHistogram('TauVertexX', title=f'{type_str} Tau Vertex X; x [mm]; Events', xbins=100, xmin=-1, xmax=1, opt='kAlwaysCreate')
523  mon_group.defineHistogram('TauVertexY', title=f'{type_str} Tau Vertex Y; y [mm]; Events', xbins=100, xmin=-2, xmax=0, opt='kAlwaysCreate')
524  mon_group.defineHistogram('TauVertexZ', title=f'{type_str} Tau Vertex Z; z [mm]; Events', xbins=120, xmin=-120, xmax=120, opt='kAlwaysCreate')
525 
526 

◆ bookDiTauHLTEffHistograms()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookDiTauHLTEffHistograms (   self,
  mon_alg,
  base_path,
  trigger 
)

Definition at line 527 of file TrigTauMonitoringConfig.py.

527  def bookDiTauHLTEffHistograms(self, mon_alg, base_path, trigger):
528  mon_group_name = f'{trigger}_DiTauHLT_Efficiency'
529  mon_group_path = f'{base_path}/DiTauHLT_Efficiency/{trigger}/DiTauHLT_Efficiency'
530  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
531 
532  def defineEachStepHistograms(xvariable, xlabel, xbins, xmin, xmax, eff='HLT', high_pt=False):
533  pass_flag = f'{eff}_pass'
534  sfx = ''
535 
536  if high_pt:
537  pass_flag += '_highPt'
538  sfx += '_highPt'
539  xlabel += ' (p_{T}^{1,2} > p_{T}^{thr 1,2} + 20 GeV)'
540 
541  mon_group.defineHistogram(f'{pass_flag},{xvariable};EffDiTau{eff}_{xvariable}{sfx}_wrt_Offline',
542  title=f'DiTau {eff} Efficiency {trigger};{xlabel};Efficiency',
543  type='TEfficiency', xbins=xbins, xmin=xmin, xmax=xmax, opt='kAlwaysCreate')
544 
545  eff_list = ['HLT'] + (['Total'] if self.do_total_efficiency else [])
546  for eff in eff_list:
547  defineEachStepHistograms('dR', '#Delta R(#tau,#tau)', 20, 0, 4, eff)
548  defineEachStepHistograms('dEta', '#Delta#eta(#tau,#tau)', 20, 0, 4, eff)
549  defineEachStepHistograms('dPhi', '#Delta#phi(#tau,#tau)', 8, -3.2, 3.2, eff)
550 
551  defineEachStepHistograms('dR', '#Delta R(#tau,#tau)', 20, 0, 4, eff, high_pt=True)
552  defineEachStepHistograms('dEta', '#Delta#eta(#tau,#tau)', 20, 0, 4, eff, high_pt=True)
553  defineEachStepHistograms('dPhi', '#Delta#phi(#tau,#tau)', 8, -3.2, 3.2, eff, high_pt=True)
554  defineEachStepHistograms('averageMu', '#LT#mu#GT', 10, 0, 80, eff)
555 
556  # Save quantities in TTree for offline analysis
557  mon_group.defineTree('dR,dEta,dPhi,averageMu,HLT_pass;DiTauHLTEffTree',
558  treedef='dR/F:dEta/F:dPhi/F:averageMu/F:HLT_pass/I')
559 
560 

◆ bookDiTauVars()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookDiTauVars (   self,
  mon_alg,
  base_path,
  trigger 
)

Definition at line 561 of file TrigTauMonitoringConfig.py.

561  def bookDiTauVars(self, mon_alg, base_path, trigger):
562  mon_group_name = f'{trigger}_DiTauVars'
563  mon_group_path = f'{base_path}/DiTauVars/{trigger}'
564  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
565 
566  mon_group.defineHistogram('leadHLTEt,subleadHLTEt', type='TH2F', title='p_{T}^{lead} vs p_{T}^{sublead}; p_{T}^{lead} [GeV]; p_{T}^{sublead} [GeV]',
567  xbins=50, xmin=0, xmax=250, ybins=50, ymin=0, ymax=250, opt='kAlwaysCreate')
568  mon_group.defineHistogram('leadHLTEta,subleadHLTEta', type='TH2F', title='#eta_{lead} vs #eta_{sublead}; #eta_{lead}; #eta_{sublead}',
569  xbins=26, xmin=-2.6, xmax=2.6, ybins=26, ymin=-2.6, ymax=2.6, opt='kAlwaysCreate')
570  mon_group.defineHistogram('leadHLTPhi,subleadHLTPhi', type='TH2F', title='#phi_{lead} vs #phi_{sublead}; #phi_{lead}; #phi{sublead}',
571  xbins=16, xmin=-3.2, xmax=3.2, ybins=16, ymin=-3.2, ymax=3.2, opt='kAlwaysCreate')
572  mon_group.defineHistogram('dR', title='#Delta R(#tau,#tau); #Delta R(#tau,#tau); Events', xbins=40, xmin=0, xmax=4, opt='kAlwaysCreate')
573  mon_group.defineHistogram('dEta', title='#Delta#eta(#tau,#tau); #Delta#eta(#tau,#tau); Events', xbins=40, xmin=0, xmax=4, opt='kAlwaysCreate')
574  mon_group.defineHistogram('dPhi', title='#Delta#phi(#tau,#tau); #Delta#phi(#tau,#tau); Events', xbins=16, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
575 
576  mon_group.defineHistogram('Pt', title='p_{T}(#tau,#tau); p_{T} [GeV]; Events', xbins=50, xmin=0, xmax=250, opt='kAlwaysCreate')
577  mon_group.defineHistogram('Eta', title='#eta(#tau,#tau); #eta(#tau,#tau); Events', xbins=26, xmin=-2.6, xmax=2.6, opt='kAlwaysCreate')
578  mon_group.defineHistogram('Phi', title='#phi(#tau,#tau); #phi(#tau,#tau); Events', xbins=16, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
579  mon_group.defineHistogram('M', title='m(#tau,#tau); m_{#tau,#tau}; Events', xbins=50, xmin=0, xmax=250, opt='kAlwaysCreate')
580  mon_group.defineHistogram('dPt', title='#Delta p_{T}(#tau, #tau); p_{T} [GeV]; Events', xbins=20, xmin=0, xmax=200, opt='kAlwaysCreate')
581 
582  mon_group.defineTree('leadHLTEt,subleadHLTEt,leadHLTEta,subleadHLTEta,leadHLTPhi,subleadHLTPhi,dR,dEta,dPhi,Pt,Eta,Phi,M,dPt;DiTauVarsTree',
583  treedef='leadHLTEt/F:subleadHLTEt/F:leadHLTEta/F:subleadHLTEta/F:leadHLTPhi/F:subleadHLTPhi/F:dR/F:dEta/F:dPhi/F:Pt/F:Eta/F:Phi/F:M/F:dPt/F')
584 
585 

◆ bookHLTEffHistograms()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookHLTEffHistograms (   self,
  mon_alg,
  base_path,
  trigger,
  n_prong 
)

Definition at line 380 of file TrigTauMonitoringConfig.py.

380  def bookHLTEffHistograms(self, mon_alg, base_path, trigger, n_prong):
381  mon_group_name = f'{trigger}_HLT_Efficiency_{n_prong}'
382  mon_group_path = f'{base_path}/HLT_Efficiency/{trigger}/HLT_Efficiency_{n_prong}'
383  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
384 
385  def defineEachStepHistograms(xvariable, xlabel, xbins, xmin, xmax, eff='HLT', high_pt=False, coarse=False):
386  pass_flag = f'{eff}_pass'
387  sfx = ''
388 
389  if high_pt:
390  pass_flag += '_highPt'
391  sfx += '_highPt'
392  xlabel += ' (p_{T} > p_{T}^{thr} + 20 GeV)'
393  elif coarse: sfx = '_coarse'
394 
395  mon_group.defineHistogram(f'{pass_flag},{xvariable};Eff{eff}_{xvariable}{sfx}_wrt_Offline',
396  title=f'{eff} Efficiency {trigger} {n_prong}; {xlabel}; Efficiency',
397  type='TEfficiency', xbins=xbins, xmin=xmin, xmax=xmax, opt='kAlwaysCreate')
398 
399  coarse_binning = self.getCustomPtBinning(trigger)
400 
401  eff_list = ['HLT'] + (['Total'] if self.do_total_efficiency else [])
402  for eff in eff_list:
403  defineEachStepHistograms('tauPt', 'p_{T} [GeV]', 60, 0.0, 300., eff)
404  defineEachStepHistograms('tauPt', 'p_{T} [GeV]', coarse_binning, coarse_binning[0], coarse_binning[-1], eff, coarse=True)
405  defineEachStepHistograms('tauEta', '#eta', 13, -2.6, 2.6, eff)
406  defineEachStepHistograms('tauPhi', '#phi', 16, -3.2, 3.2, eff)
407  defineEachStepHistograms('tauEta', '#eta', 13, -2.6, 2.6, eff, high_pt=True)
408  defineEachStepHistograms('tauPhi', '#phi', 16, -3.2, 3.2, eff, high_pt=True)
409  defineEachStepHistograms('averageMu', '#LT#mu#GT', 10, 0, 80, eff)
410 
411  # Save quantities in TTree for offline analysis
412  mon_group.defineTree('tauPt,tauEta,tauPhi,averageMu,HLT_pass;HLTEffTree',
413  treedef='tauPt/F:tauEta/F:tauPhi/F:averageMu/F:HLT_pass/I')
414 
415 

◆ bookIDInputCluster()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookIDInputCluster (   self,
  mon_alg,
  base_path,
  trigger,
  online 
)

Definition at line 458 of file TrigTauMonitoringConfig.py.

458  def bookIDInputCluster(self, mon_alg, base_path, trigger, online):
459  type_str = 'HLT' if online else 'Offline'
460  mon_group_name = f'{trigger}_ID_{type_str}_InputCluster'
461  mon_group_path = f'{base_path}/TauIDVars/InputCluster/{trigger}/{type_str}'
462  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
463 
464  mon_group.defineHistogram('n_cluster', title='Number of clusters; N_{cluster}; Events', xbins=30, xmin=0, xmax=30, opt='kAlwaysCreate')
465  mon_group.defineHistogram('cluster_et_log', title='cluster_et_log; cluster_et_log; Events', xbins=30, xmin=0, xmax=6, opt='kAlwaysCreate')
466  mon_group.defineHistogram('cluster_pt_jetseed_log', title='cluster_pt_jetseed_log; cluster_pt_jetseed_log; Events', xbins=50, xmin=2, xmax=7, opt='kAlwaysCreate')
467  mon_group.defineHistogram('cluster_eta', title='Cluster #eta; #eta; Events', xbins=26, xmin=-2.6, xmax=2.6, opt='kAlwaysCreate')
468  mon_group.defineHistogram('cluster_phi', title='Cluster #phi; #phi; Events', xbins=16, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
469  mon_group.defineHistogram('cluster_dEta', title='Cluster #Delta#eta; #Delta#eta; Events', xbins=100, xmin=-0.5, xmax=0.5, opt='kAlwaysCreate')
470  mon_group.defineHistogram('cluster_dPhi', title='Cluster #Delta#phi; #Delta#phi; Events', xbins=100, xmin=-0.5, xmax=0.5, opt='kAlwaysCreate')
471  mon_group.defineHistogram('cluster_SECOND_R_log10', title='cluster_SECOND_R_log10; cluster_SECOND_R_log10; Events', xbins=50, xmin=-3, xmax=7, opt='kAlwaysCreate')
472  mon_group.defineHistogram('cluster_SECOND_LAMBDA_log10', title='cluster_SECOND_LAMBDA_log10; cluster_SECOND_LAMBDA_log10; Events', xbins=50, xmin=-3, xmax=7, opt='kAlwaysCreate')
473  mon_group.defineHistogram('cluster_CENTER_LAMBDA_log10', title='cluster_CENTER_LAMBDA_log10; cluster_CENTER_LAMBDA_log10; Events', xbins=50, xmin=-2, xmax=5, opt='kAlwaysCreate')
474  mon_group.defineHistogram('cluster_eta,cluster_phi', type='TH2F', title='Cluster #eta vs #phi; #eta; #phi', xbins=26, xmin=-2.6, xmax=2.6, ybins=16, ymin=-3.2, ymax=3.2, opt='kAlwaysCreate')
475  mon_group.defineHistogram('cluster_dEta,cluster_dPhi', type='TH2F', title='Cluster #Delta#eta vs #Delta#phi; #Delta#eta; #Delta#phi', xbins=100, xmin=-0.5, xmax=0.5, ybins=100, ymin=-0.5, ymax=0.5, opt='kAlwaysCreate')
476 
477 

◆ bookIDInputScalar()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookIDInputScalar (   self,
  mon_alg,
  base_path,
  trigger,
  n_prong,
  online 
)

Definition at line 416 of file TrigTauMonitoringConfig.py.

416  def bookIDInputScalar(self, mon_alg, base_path, trigger, n_prong, online):
417  type_str = 'HLT' if online else 'Offline'
418  mon_group_name = f'{trigger}_ID_{type_str}_InputScalar_{n_prong}'
419  mon_group_path = f'{base_path}/TauIDVars/InputScalar_{n_prong}/{trigger}/{type_str}'
420  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
421 
422  mon_group.defineHistogram('centFrac', title=f'Centrality Fraction ({n_prong}); centFrac; Events', xbins=50, xmin=-0.05, xmax=1.2, opt='kAlwaysCreate')
423  mon_group.defineHistogram('etOverPtLeadTrk', title=f'etOverPtLeadTrk log ({n_prong}); etOverPtLeadTrk_log; Events', xbins=60, xmin=-3, xmax=3, opt='kAlwaysCreate')
424  mon_group.defineHistogram('dRmax', title=f'max dR of associated tracks ({n_prong}); dRmax; Events', xbins=50, xmin=-0.1, xmax=0.3, opt='kAlwaysCreate')
425  mon_group.defineHistogram('absipSigLeadTrk', title=f'AbsIpSigLeadTrk ({n_prong}); absipSigLeadTrk; Events', xbins=25, xmin=0.0, xmax=20.0, opt='kAlwaysCreate')
426  mon_group.defineHistogram('sumPtTrkFrac', title=f'SumPtTrkFrac ({n_prong}); SumPtTrkFrac; Events', xbins=50, xmin=-0.5, xmax=1.1, opt='kAlwaysCreate')
427  mon_group.defineHistogram('emPOverTrkSysP', title=f'EMPOverTrkSysP log ({n_prong}); EMPOverTrkSysP_log; Events', xbins=50, xmin=-5, xmax=3, opt='kAlwaysCreate')
428  mon_group.defineHistogram('ptRatioEflowApprox', title=f'ptRatioEflowApprox ({n_prong}); ptRatioEflowApprox; Events', xbins=50, xmin=0.0, xmax=2.0, opt='kAlwaysCreate')
429  mon_group.defineHistogram('mEflowApprox', title=f'mEflowApprox log ({n_prong}); mEflowApprox_log; Events', xbins=50, xmin=0, xmax=5, opt='kAlwaysCreate')
430  mon_group.defineHistogram('ptDetectorAxis', title=f'ptDetectorAxis log ({n_prong}); ptDetectorAxis_log; Events', xbins=50, xmin=0, xmax=5, opt='kAlwaysCreate')
431  if n_prong == 'MP' or n_prong == '3P':
432  mon_group.defineHistogram('massTrkSys', title=f'massTrkSys log ({n_prong}); massTrkSys_log; Events', xbins=50, xmin=0, xmax=3, opt='kAlwaysCreate')
433  mon_group.defineHistogram('trFlightPathSig', title=f'trFlightPathSig ({n_prong}); trFlightPathSig; Events', xbins=100, xmin=-20, xmax=40, opt='kAlwaysCreate')
434 
435 

◆ bookIDInputTrack()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookIDInputTrack (   self,
  mon_alg,
  base_path,
  trigger,
  online 
)

Definition at line 436 of file TrigTauMonitoringConfig.py.

436  def bookIDInputTrack(self, mon_alg, base_path, trigger, online):
437  type_str = 'HLT' if online else 'Offline'
438  mon_group_name = f'{trigger}_ID_{type_str}_InputTrack'
439  mon_group_path = f'{base_path}/TauIDVars/InputTrack/{trigger}/{type_str}'
440  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
441 
442  mon_group.defineHistogram('n_track', title='Number of tracks; N_{track}; Events', xbins=15, xmin=0, xmax=15, opt='kAlwaysCreate')
443  mon_group.defineHistogram('track_pt_log', title='track_pt_log; track_pt_log; Events', xbins=20, xmin=2, xmax=7, opt='kAlwaysCreate')
444  mon_group.defineHistogram('track_pt_jetseed_log', title='track_pt_jetseed_log; track_pt_jetseed_log; Events', xbins=50, xmin=2, xmax=7, opt='kAlwaysCreate')
445  mon_group.defineHistogram('track_eta', title='Track #eta; #eta; Events', xbins=26, xmin=-2.6, xmax=2.6, opt='kAlwaysCreate')
446  mon_group.defineHistogram('track_phi', title='Track #phi; #phi; Events', xbins=16, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
447  mon_group.defineHistogram('track_dEta', title='Track #Delta#eta; #Delta#eta; Events', xbins=100, xmin=-0.5, xmax=0.5, opt='kAlwaysCreate')
448  mon_group.defineHistogram('track_dPhi', title='Track #Delta#phi; #Delta#phi; Events', xbins=100, xmin=-0.5, xmax=0.5, opt='kAlwaysCreate')
449  mon_group.defineHistogram('track_d0_abs_log', title='track_d0_abs_log; track_d0_abs_log; Events', xbins=50, xmin=-7, xmax=2, opt='kAlwaysCreate')
450  mon_group.defineHistogram('track_z0sinthetaTJVA_abs_log', title='track_z0sinthetaTJVA_abs_log; track_z0sinthetaTJVA_abs_log; Events', xbins=50, xmin=-10, xmax=4, opt='kAlwaysCreate')
451  mon_group.defineHistogram('track_nIBLHitsAndExp', title='track_nIBLHitsAndExp; track_nIBLHitsAndExp; Events', xbins=3, xmin=0, xmax=3, opt='kAlwaysCreate')
452  mon_group.defineHistogram('track_nPixelHitsPlusDeadSensors', title='track_nPixelHitsPlusDeadSensors; track_nPixelHitsPlusDeadSensors; Events', xbins=11, xmin=0, xmax=11, opt='kAlwaysCreate')
453  mon_group.defineHistogram('track_nSCTHitsPlusDeadSensors', title='track_nSCTHitsPlusDeadSensors; track_nSCTHitsPlusDeadSensors; Events', xbins=20, xmin=0, xmax=20, opt='kAlwaysCreate')
454  mon_group.defineHistogram('track_eta,track_phi', type='TH2F', title='Track #eta vs #phi; #eta; #phi', xbins=26, xmin=-2.6, xmax=2.6, ybins=16, ymin=-3.2, ymax=3.2, opt='kAlwaysCreate')
455  mon_group.defineHistogram('track_dEta,track_dPhi', type='TH2F', title='Track #Delta#eta vs #Delta#phi; #Delta#eta; #Delta#phi', xbins=100, xmin=-0.5, xmax=0.5, ybins=100, ymin=-0.5, ymax=0.5, opt='kAlwaysCreate')
456 
457 

◆ bookIDScores()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookIDScores (   self,
  mon_alg,
  base_path,
  trigger,
  n_prong,
  online 
)

Definition at line 478 of file TrigTauMonitoringConfig.py.

478  def bookIDScores(self, mon_alg, base_path, trigger, n_prong, online):
479  info = self.getTriggerInfo(trigger)
480  store_all = info.getHLTTauID() in ['idperf', 'perf']
481 
482  if online:
483  if info.getHLTTauType() not in self.hlt_tauid_scores: return
484  variables = {
485  tau_id: p
486  for tau_id, p in self.hlt_tauid_scores[info.getHLTTauType()].items()
487  if tau_id == info.getHLTTauID() or store_all
488  }
489  else:
490  variables = self.offline_tauid_scores
491 
492  type_str = 'HLT' if online else 'Offline'
493  mon_group_name = f'{trigger}_{type_str}_IDScores_{n_prong}'
494  mon_group_path = f'{base_path}/basicVars/{trigger}/{type_str}_{n_prong}'
495  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
496 
497  for tau_id, (score, score_sig_trans) in variables.items():
498  if tau_id in ['RNN', 'DeepSet', 'RNNLLP']: xbins, xmax = 20, 1
499  else: xbins, xmax = 100, 5
500 
501  mon_group.defineHistogram(f'{tau_id}_TauIDScore', title=f'{type_str} {tau_id} TauID score; TauID score; Events', xbins=xbins, xmin=0, xmax=xmax, opt='kAlwaysCreate')
502  mon_group.defineHistogram(f'{tau_id}_TauIDScoreSigTrans', title=f'{type_str} {tau_id} TauID score sig. transformed; TauID score sig. transformed; Events', xbins=xbins, xmin=0, xmax=xmax, opt='kAlwaysCreate')
503 
504 

◆ bookL1EffHistograms()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookL1EffHistograms (   self,
  mon_alg,
  base_path,
  trigger,
  n_prong 
)

Definition at line 689 of file TrigTauMonitoringConfig.py.

689  def bookL1EffHistograms(self, mon_alg, base_path, trigger, n_prong):
690  mon_group_name = f'{trigger}_L1_Efficiency_{n_prong}'
691  mon_group_path = f'{base_path}/L1_Efficiency/{trigger}/L1_Efficiency_{n_prong}'
692  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
693 
694  def defineEachStepHistograms(xvariable, xlabel, xbins, xmin, xmax, high_pt=False, coarse=False):
695  pass_flag = 'L1_pass'
696  sfx = ''
697 
698  if high_pt:
699  pass_flag += '_highPt'
700  sfx += '_highPt'
701  xlabel += ' (p_{T}^{#tau} > p_{T}^{#tau thr} + 20 GeV)'
702  elif coarse:
703  sfx += '_coarse'
704 
705  mon_group.defineHistogram(f'{pass_flag},{xvariable};EffL1_{xvariable}{sfx}_wrt_Offline',
706  title=f'L1 Efficiency {trigger} {n_prong}; {xlabel}; Efficiency',
707  type='TEfficiency', xbins=xbins, xmin=xmin, xmax=xmax, opt='kAlwaysCreate')
708 
709  coarse_binning = self.getCustomPtBinning(trigger)
710 
711  defineEachStepHistograms('tauPt', 'p_{T} [GeV]', 60, 0, 300)
712  defineEachStepHistograms('tauPt', 'p_{T} [GeV]', coarse_binning, coarse_binning[0], coarse_binning[-1], coarse=True)
713  defineEachStepHistograms('tauEta', '#eta', 13, -2.6, 2.6)
714  defineEachStepHistograms('tauPhi', '#phi', 16, -3.2, 3.2)
715  defineEachStepHistograms('tauEta', '#eta', 13, -2.6, 2.6, high_pt=True)
716  defineEachStepHistograms('tauPhi', '#phi', 16, -3.2, 3.2, high_pt=True)
717  defineEachStepHistograms('averageMu', '#LT#mu#GT', 10, 0, 80)
718 
719 

◆ bookL1Vars()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookL1Vars (   self,
  mon_alg,
  base_path,
  trigger 
)

Definition at line 720 of file TrigTauMonitoringConfig.py.

720  def bookL1Vars(self, mon_alg, base_path, trigger):
721  mon_group_name = f'{trigger}_L1Vars'
722  mon_group_path = f'{base_path}/L1Vars/{trigger}'
723  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
724 
725  mon_group.defineHistogram('L1RoIEt,L1RoIEta', type='TH2F', title='L1 RoI E_{T} vs #eta; E_{T} [GeV]; #eta',
726  xbins=60, xmin=0, xmax=300,
727  ybins=60, ymin=-2.6, ymax=2.6, opt='kAlwaysCreate')
728  mon_group.defineHistogram('L1RoIEt,L1RoIPhi', type='TH2F', title='L1 RoI E_{T} vs #phi; E_{T} [GeV]; #phi',
729  xbins=60, xmin=0, xmax=300,
730  ybins=60, ymin=-3.2, ymax=3.2, opt='kAlwaysCreate')
731  mon_group.defineHistogram('L1RoIEta,L1RoIPhi', type='TH2F', title='L1 RoI #eta vs #phi; #eta; #phi',
732  xbins=60, xmin=-2.6, xmax=2.6,
733  ybins=60, ymin=-3.2, ymax=3.2, opt='kAlwaysCreate')
734  mon_group.defineHistogram('L1RoIEta', title='L1 RoI #eta; #eta; RoIs', xbins=60, xmin=-2.6, xmax=2.6, opt='kAlwaysCreate')
735  mon_group.defineHistogram('L1RoIPhi', title='L1 RoI #phi; #phi; RoIs', xbins=60, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
736  mon_group.defineHistogram('L1RoIEt', title='L1 RoI E_{T}; E_{T} [GeV]; RoIs', xbins=60, xmin=0, xmax=300, opt='kAlwaysCreate')
737 
738  if 'eTAU' in trigger:
739  mon_group.defineHistogram('L1eFexRoIRCore', title='L1 eTAU RoI rCore Isolation; rCore Isolation; RoIs', xbins=250, xmin=0, xmax=1, opt='kAlwaysCreate')
740  mon_group.defineHistogram('L1eFexRoIRHad' , title='L1 eTAU RoI rHad Isolation; rHad Isolation; RoIs', xbins=250, xmin=0, xmax=1, opt='kAlwaysCreate')
741  mon_group.defineHistogram('L1eFexRoIBDTScore' , title='L1 eTAU RoI BDT score; BDT Score; RoIs', xbins=128, xmin=512, xmax=1024, opt='kAlwaysCreate')
742 
743  elif 'cTAU' in trigger:
744  mon_group.defineHistogram('L1eFexRoIRCore', title='L1 eTAU RoI rCore Isolation; eTAU rCore Isolation; RoIs', xbins=250, xmin=0, xmax=1, opt='kAlwaysCreate')
745  mon_group.defineHistogram('L1eFexRoIRHad', title='L1 eTAU RoI rHad Isolation; eTAU rHad Isolation; RoIs', xbins=250, xmin=0, xmax=1, opt='kAlwaysCreate')
746  mon_group.defineHistogram('L1cTauRoITopoMatch', title='L1Topo match between eTAU and jTAU RoI; Match; RoIs', xbins=2, xmin=0, xmax=2, opt='kAlwaysCreate')
747  mon_group.defineHistogram('L1jFexRoIIso', title='L1 jTAU RoI Isolation; E_{T}^{jTAU Iso} [GeV]; RoIs', xbins=25, xmin=0, xmax=50, opt='kAlwaysCreate')
748  mon_group.defineHistogram('L1cTauMatchedRoIIso', title='L1 cTAU Isolation score; E_{T}^{jTAU Iso}/E_{T}^{eTAU}; RoIs', xbins=50, xmin=0, xmax=5, opt='kAlwaysCreate')
749  mon_group.defineHistogram('L1RoIcTauMatchedEtRatio', title='Et ratio between matched eTAU and jTAU RoIs; E_{T}^{jTAU}/E_{T}^{eTAU}; RoIs', xbins=40, xmin=0, xmax=4, opt='kAlwaysCreate')
750  mon_group.defineHistogram('L1eFexRoIBDTScore' , title='L1 eTAU RoI BDT score; BDT Score; RoIs', xbins=128, xmin=512, xmax=1024, opt='kAlwaysCreate')
751 
752  elif 'jTAU' in trigger:
753  mon_group.defineHistogram('L1jFexRoIIso', title='L1 jTAU RoI Isolation; jTAU Isolation [GeV]; N RoI', xbins=25, xmin=0, xmax=50, opt='kAlwaysCreate')
754 
755  else: # Legacy
756  mon_group.defineHistogram('L1RoIEMIsol', title='L1 Legacy RoI EM Isol; E_{T}^{EM Iso} [GeV]; RoIs', xbins=16, xmin=-2, xmax=30, opt='kAlwaysCreate')
757  mon_group.defineHistogram('L1RoIHadCore', title='L1 Legacy RoI Had Core; E_{T}^{Had} [GeV]; RoIs', xbins=16, xmin=-2, xmax=30, opt='kAlwaysCreate')
758  mon_group.defineHistogram('L1RoIHadIsol', title='L1 Legacy RoI Had Isol; E_{T}^{Had Iso} [GeV]; RoIs', xbins=16, xmin=-2, xmax=30, opt='kAlwaysCreate')
759  mon_group.defineHistogram('L1RoITauClus', title='L1 Legacy RoI E_{T}; E_{T} [GeV]; RoIs', xbins=260, xmin=0, xmax=130, opt='kAlwaysCreate')
760  mon_group.defineHistogram('L1RoITauClus,L1RoIEMIsol', type='TH2F', title='L1 RoI E_{T} vs EM Isol; E_{T} [GeV]; E_{T}^{EM Iso} [GeV]',
761  xbins=140, xmin=10, xmax=80, ybins=42, ymin=-1, ymax=20, opt='kAlwaysCreate')
762 
763 

◆ bookTAndPHLTEffHistograms()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookTAndPHLTEffHistograms (   self,
  mon_alg,
  base_path,
  trigger 
)

Definition at line 586 of file TrigTauMonitoringConfig.py.

586  def bookTAndPHLTEffHistograms(self, mon_alg, base_path, trigger):
587  mon_group_name = f'{trigger}_TAndPHLT_Efficiency'
588  mon_group_path = f'{base_path}/TAndPHLT_Efficiency/{trigger}/TAndPHLT_Efficiency'
589  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
590 
591  def defineEachStepHistograms(xvariable, xlabel, xbins, xmin, xmax, high_pt=False, coarse=False):
592  pass_flag = 'HLT_pass'
593  sfx = ''
594 
595  if high_pt:
596  pass_flag += '_highPt'
597  sfx += '_highPt'
598  xlabel += ' (p_{T}^{#tau} > p_{T}^{#tau thr} + 20 GeV)'
599  elif coarse:
600  sfx += '_coarse'
601 
602  mon_group.defineHistogram(f'{pass_flag},{xvariable};EffTAndPHLT_{xvariable}{sfx}_wrt_Offline',
603  title=f'TAndP HLT Efficiency {trigger}; {xlabel}; Efficiency',
604  type='TEfficiency', xbins=xbins, xmin=xmin, xmax=xmax, opt='kAlwaysCreate')
605 
606  coarse_binning = self.getCustomPtBinning(trigger)
607 
608  defineEachStepHistograms('tauPt', 'p_{T}^{#tau} [GeV]', 60, 0.0, 300)
609  defineEachStepHistograms('tauPt', 'p_{T}^{#tau} [GeV]', coarse_binning, coarse_binning[0], coarse_binning[-1], coarse=True)
610  defineEachStepHistograms('tauEta', '#eta_{#tau}', 13, -2.6, 2.6)
611  defineEachStepHistograms('tauPhi', '#phi_{#tau}', 16, -3.2, 3.2)
612  defineEachStepHistograms('tauEta', '#eta_{#tau}', 13, -2.6, 2.6, high_pt=True)
613  defineEachStepHistograms('tauPhi', '#phi_{#tau}', 16, -3.2, 3.2, high_pt=True)
614  defineEachStepHistograms('dR', '#Delta R(#tau,lep)', 20, 0, 4)
615  defineEachStepHistograms('dEta', '#Delta#eta(#tau,lep)', 20, 0,4)
616  defineEachStepHistograms('dPhi', '#Delta#phi(#tau,lep)', 8, -3.2, 3.2)
617  defineEachStepHistograms('averageMu', '#LT#mu#GT', 10, 0, 80)
618 
619  # Save quantities in TTree for offline analysis
620  mon_group.defineTree('tauPt,tauEta,tauPhi,dR,dEta,dPhi,averageMu,HLT_pass;TAndPHLTEffTree',
621  treedef='tauPt/F:tauEta/F:tauPhi/F:dR/F:dEta/F:dPhi/F:averageMu/F:HLT_pass/I')
622 
623 

◆ bookTAndPVars()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookTAndPVars (   self,
  mon_alg,
  base_path,
  trigger 
)

Definition at line 624 of file TrigTauMonitoringConfig.py.

624  def bookTAndPVars(self, mon_alg, base_path, trigger):
625  mon_group_name = f'{trigger}_TAndPVars'
626  mon_group_path = f'{base_path}/TAndPVars/{trigger}'
627  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
628 
629  mon_group.defineHistogram('dR', title='#Delta R(#tau,lep); #Delta R(#tau,lep); Events', xbins=40, xmin=0, xmax=4, opt='kAlwaysCreate')
630  mon_group.defineHistogram('dEta', title='#Delta#eta(#tau,lep); #Delta#eta(#tau,lep); Events', xbins=40, xmin=0, xmax=4, opt='kAlwaysCreate')
631  mon_group.defineHistogram('dPhi', title='#Delta#phi(#tau,lep); #Delta#phi(#tau,lep); Events', xbins=16, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
632 
633  mon_group.defineHistogram('Pt', title='p_{T}(#tau,lep); p_{T} [GeV]; Events', xbins=50, xmin=0, xmax=250, opt='kAlwaysCreate')
634  mon_group.defineHistogram('Eta', title='#eta(#tau,lep); #eta; Events', xbins=26, xmin=-2.6, xmax=2.6, opt='kAlwaysCreate')
635  mon_group.defineHistogram('Phi', title='#phi(#tau,lep); #phi; Events', xbins=16, xmin=-3.2, xmax=3.2, opt='kAlwaysCreate')
636  mon_group.defineHistogram('M', title='m(#tau,lep); m_{#tau,lep}; Events', xbins=50, xmin=0, xmax=250, opt='kAlwaysCreate')
637  mon_group.defineHistogram('dPt', title='#Delta p_{T}(#tau,lep); p_{T} [GeV]; Events', xbins=20, xmin=0, xmax=200, opt='kAlwaysCreate')
638 
639 

◆ bookTruthEfficiency()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookTruthEfficiency (   self,
  mon_alg,
  base_path,
  trigger,
  n_prong 
)

Definition at line 640 of file TrigTauMonitoringConfig.py.

640  def bookTruthEfficiency(self, mon_alg, base_path, trigger, n_prong):
641  mon_group_name = f'{trigger}_Truth_Efficiency_{n_prong}'
642  mon_group_path = f'{base_path}/Truth_Efficiency/{trigger}/Truth_Efficiency_{n_prong}'
643  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
644 
645  info = self.getTriggerInfo(trigger)
646 
647  def defineEachStepHistograms(xvariable, xlabel, xbins, xmin, xmax, high_pt=False, coarse=False):
648  pass_flag = 'HLT_pass'
649  sfx = ''
650 
651  if high_pt:
652  pass_flag += '_highPt'
653  sfx += '_highPt'
654  if info.isHLTDiTau():
655  xlabel += ' (p_{T}^{#tau} > p_{T}^{#tau min thr} + 20 GeV)'
656  else:
657  xlabel += ' (p_{T}^{#tau} > p_{T}^{#tau thr} + 20 GeV)'
658  elif coarse:
659  sfx += '_coarse'
660 
661  mon_group.defineHistogram(f'{pass_flag},{xvariable};EffHLT_{xvariable}{sfx}_wrt_Truth',
662  title=f'HLT Efficiency {trigger} {n_prong}; {xlabel}; Efficiency',
663  type='TEfficiency', xbins=xbins, xmin=xmin, xmax=xmax)
664 
665  coarse_binning = self.getCustomPtBinning(trigger)
666 
667  defineEachStepHistograms('pt_vis', 'p_{T, vis} [GeV]', 60, 0.0, 300)
668  if info.isHLTSingleTau() or info.isHLTTandP(): defineEachStepHistograms('pt_vis', 'p_{T, vis} [GeV]', coarse_binning, coarse_binning[0], coarse_binning[-1], coarse=True)
669  defineEachStepHistograms('eta_vis', '#eta_{vis}', 13, -2.6, 2.6)
670  defineEachStepHistograms('phi_vis', '#phi_{vis}', 16, -3.2, 3.2)
671  defineEachStepHistograms('eta_vis', '#eta_{vis}', 13, -2.6, 2.6, high_pt=True)
672  defineEachStepHistograms('phi_vis', '#phi_{vis}', 16, -3.2, 3.2, high_pt=True)
673 
674 

◆ bookTruthVars()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.bookTruthVars (   self,
  mon_alg,
  base_path,
  trigger,
  n_prong 
)

Definition at line 675 of file TrigTauMonitoringConfig.py.

675  def bookTruthVars(self, mon_alg, base_path, trigger, n_prong):
676  mon_group_name = f'{trigger}_TruthVars_{n_prong}'
677  mon_group_path = f'{base_path}/TruthVars/{trigger}/TruthVars_{n_prong}'
678  mon_group = self.helper.addGroup(mon_alg, mon_group_name, mon_group_path)
679 
680  mon_group.defineHistogram('pt_vis,PtRatio', title='p_{T} ratio vs p_{T, vis}; p_{T, vis} [GeV]; (p_{T}^{reco} - p_{T, vis}^{truth})/p_{T, vis}^{truth}', type='TProfile', xbins=21, xmin=20, xmax=250)
681  mon_group.defineHistogram('eta_vis,PtRatio', title='p_{T} ratio vs #eta_{vis}; #eta_{vis}; (p_{T}^{reco} - p_{T, vis}^{truth})/p_{T, vis}^{truth}', type='TProfile', xbins=21, xmin=-3, xmax=3)
682  mon_group.defineHistogram('phi_vis,PtRatio', title='p_{T} ratio vs #phi_{vis}; #phi_{vis}; (p_{T}^{reco} - p_{T, vis}^{truth})/p_{T, vis}^{truth}', type='TProfile', xbins=21, xmin=-3, xmax=3)
683 
684  mon_group.defineHistogram('pt_vis', title='p_{T, vis}; p_{T, vis}; Events', xbins=50, xmin=0, xmax=250)
685  mon_group.defineHistogram('eta_vis', title='#eta_{vis}; #eta_{vis}; Events', xbins=26, xmin=-2.6, xmax=2.6)
686  mon_group.defineHistogram('phi_vis', title='#phi_{vis}; #phi_{vis}; Events', xbins=16, xmin=-3.2, xmax=3.2)
687 
688 

◆ configure()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configure (   self)

Definition at line 113 of file TrigTauMonitoringConfig.py.

113  def configure(self):
114  # First load and classify the list of triggers
115  self.configureTriggers()
116 
117  # Now create, configure, and book the histograms for all the individual algorithms
118  self.logger.info('Creating the Tau monitoring algorithms...')
119 
120  if self.activate_single_tau:
121  self.configureAlgorithmSingle()
122 
123  if self.activate_ditau:
124  self.configureAlgorithmDiTau()
125 
126  if self.activate_tag_and_probe:
127  self.configureAlgorithmTagAndProbe()
128 
129  if self.activate_truth:
130  self.configureAlgorithmTruth()
131 
132  if self.activate_L1:
133  self.configureAlgorithmL1()
134 

◆ configureAlgorithmDiTau()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configureAlgorithmDiTau (   self)

Definition at line 298 of file TrigTauMonitoringConfig.py.

298  def configureAlgorithmDiTau(self):
299  self.mon_alg_ditau = self._configureAlgorithm(CompFactory.TrigTauMonitorDiTauAlgorithm, 'TrigTauMonAlgDiTau')
300  self.mon_alg_ditau.TriggerList = self.HLT_ditau_items
301  self.mon_alg_ditau.DoTotalEfficiency = self.do_total_efficiency
302  self.mon_alg_ditau.RequireOfflineTaus = self.require_offline_taus
303 
304  self.logger.info(' |- Booking all histograms')
305  for trigger in self.HLT_ditau_items:
306  self.bookDiTauHLTEffHistograms(self.mon_alg_ditau, self.base_path, trigger)
307  self.bookDiTauVars(self.mon_alg_ditau, self.base_path, trigger)
308 
309 

◆ configureAlgorithmL1()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configureAlgorithmL1 (   self)

Definition at line 332 of file TrigTauMonitoringConfig.py.

332  def configureAlgorithmL1(self):
333  has_xtob_etau_rois = 'L1_eTauxRoI' in self.helper.flags.Input.Collections or self.helper.flags.DQ.Environment == "tier0"
334 
335  self.mon_alg_L1 = self._configureAlgorithm(CompFactory.TrigTauMonitorL1Algorithm, 'TrigTauMonAlgL1')
336  self.mon_alg_L1.TriggerList = self.L1_items
337  self.mon_alg_L1.RequireOfflineTaus = self.require_offline_taus
338  if not has_xtob_etau_rois:
339  self.logger.info(' |- No L1_eTauxRoI container is available: e/cTAU BDT scores will be set to 0')
340  self.mon_alg_L1.Phase1L1eTauxRoIKey = ''
341 
342  self.logger.info(' |- Booking all histograms')
343  for trigger in self.L1_items:
344  for p in ('1P', '3P'):
345  self.bookL1EffHistograms(self.mon_alg_L1, self.base_path, trigger, n_prong=p)
346  self.bookL1Vars(self.mon_alg_L1, self.base_path, trigger)
347 
348  if self.do_duplicate_var_plots_without_offline_taus:
349  self.mon_alg_L1_no_offline = self._configureAlgorithm(CompFactory.TrigTauMonitorL1Algorithm, 'TrigTauMonAlgL1NoOffline')
350  self.mon_alg_L1_no_offline.TriggerList = self.L1_items
351  self.mon_alg_L1_no_offline.RequireOfflineTaus = False
352  self.mon_alg_L1_no_offline.DoEfficiencyPlots = False
353  if not has_xtob_etau_rois:
354  self.logger.info(' |- No L1_eTauxRoI container is available: e/cTAU BDT scores will be set to 0')
355  self.mon_alg_L1_no_offline.Phase1L1eTauxRoIKey = ''
356 
357  self.logger.info(' |- Booking all histograms')
358  path = f'{self.base_path}/OnlineOnlyVars'
359  for trigger in self.L1_items:
360  self.bookL1Vars(self.mon_alg_L1_no_offline, path, trigger)
361 
362  if self.do_alternative_eTAU_monitoring:
363  self.mon_alg_L1_alt = self._configureAlgorithm(CompFactory.TrigTauMonitorL1Algorithm, 'TrigTauMonAlgL1eTAUAlt')
364  self.mon_alg_L1_alt.Phase1L1eTauRoIKey = 'L1_eTauRoIAltSim' # Use alternative RoIs (with heuristic eTAU algorithm simulation)
365  self.mon_alg_L1_alt.SelectL1ByETOnly = True # We don't have threshold patterns for the Alt RoIs, so we match by ET only
366  self.mon_alg_L1_alt.RequireOfflineTaus = False
367  self.mon_alg_L1_alt.Phase1L1eTauxRoIKey = ''
368 
369  l1_items = [item for item in self.L1_items if 'eTAU' in item and not self.getTriggerInfo(item).isL1TauIsolated()] # Only non-isolated eTAU items
370  self.mon_alg_L1_alt.TriggerList = l1_items
371 
372  self.logger.info(' |- Booking all histograms')
373  path = f'{self.base_path}/L1eTAUAlt'
374  for trigger in l1_items:
375  for p in ('1P', '3P'):
376  self.bookL1EffHistograms(self.mon_alg_L1_alt, path, trigger, n_prong=p)
377  self.bookL1Vars(self.mon_alg_L1_alt, path, trigger)
378 
379 

◆ configureAlgorithmSingle()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configureAlgorithmSingle (   self)

Definition at line 249 of file TrigTauMonitoringConfig.py.

249  def configureAlgorithmSingle(self):
250  self.mon_alg_single = self._configureAlgorithm(CompFactory.TrigTauMonitorSingleAlgorithm, 'TrigTauMonAlgSingle')
251  self.mon_alg_single.TriggerList = self.HLT_single_items
252  self.mon_alg_single.DoTotalEfficiency = self.do_total_efficiency
253  self.mon_alg_single.RequireOfflineTaus = self.require_offline_taus
254  self.mon_alg_single.HLTTauIDScores = self.hlt_tauid_scores
255  self.mon_alg_single.OfflineTauIDScores = self.offline_tauid_scores
256 
257  self.logger.info(' |- Booking all histograms')
258  for trigger in self.HLT_single_items:
259  # Efficiencies
260  for p in ('1P', '3P'):
261  self.bookHLTEffHistograms(self.mon_alg_single, self.base_path, trigger, n_prong=p)
262 
263  # Online distributions
264  for p in ('0P', '1P', 'MP'):
265  self.bookBasicVars(self.mon_alg_single, self.base_path, trigger, n_prong=p, online=True)
266  self.bookIDScores(self.mon_alg_single, self.base_path, trigger, n_prong=p, online=True)
267  self.bookIDInputScalar(self.mon_alg_single, self.base_path, trigger, n_prong=p, online=True)
268  self.bookIDInputTrack(self.mon_alg_single, self.base_path, trigger, online=True)
269  self.bookIDInputCluster(self.mon_alg_single, self.base_path, trigger, online=True)
270 
271  # Offline distributions
272  for p in ('1P', '3P'):
273  self.bookBasicVars(self.mon_alg_single, self.base_path, trigger, p, online=False)
274  self.bookIDScores(self.mon_alg_single, self.base_path, trigger, p, online=False)
275  self.bookIDInputScalar(self.mon_alg_single, self.base_path, trigger, n_prong=p, online=False)
276  self.bookIDInputTrack(self.mon_alg_single, self.base_path, trigger, online=False)
277  self.bookIDInputCluster(self.mon_alg_single, self.base_path, trigger, online=False)
278 
279  if self.do_duplicate_var_plots_without_offline_taus:
280  self.mon_alg_single_no_offline = self._configureAlgorithm(CompFactory.TrigTauMonitorSingleAlgorithm, 'TrigTauMonAlgSingleNoOffline')
281  self.mon_alg_single_no_offline.TriggerList = self.HLT_single_items
282  self.mon_alg_single_no_offline.RequireOfflineTaus = False
283  self.mon_alg_single_no_offline.DoOfflineTausDistributions = False
284  self.mon_alg_single_no_offline.DoEfficiencyPlots = False
285  self.mon_alg_single_no_offline.HLTTauIDScores = self.hlt_tauid_scores
286 
287  self.logger.info(' |- Booking all histograms')
288  path = f'{self.base_path}/OnlineOnlyVars'
289  for trigger in self.HLT_single_items:
290  for p in ('0P', '1P', 'MP'):
291  self.bookBasicVars(self.mon_alg_single_no_offline, path, trigger, n_prong=p, online=True)
292  self.bookIDScores(self.mon_alg_single_no_offline, path, trigger, n_prong=p, online=True)
293  self.bookIDInputScalar(self.mon_alg_single_no_offline, path, trigger, n_prong=p, online=True)
294  self.bookIDInputTrack(self.mon_alg_single_no_offline, path, trigger, online=True)
295  self.bookIDInputCluster(self.mon_alg_single_no_offline, path, trigger, online=True)
296 
297 

◆ configureAlgorithmTagAndProbe()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configureAlgorithmTagAndProbe (   self)

Definition at line 310 of file TrigTauMonitoringConfig.py.

310  def configureAlgorithmTagAndProbe(self):
311  self.mon_alg_tag_and_probe = self._configureAlgorithm(CompFactory.TrigTauMonitorTandPAlgorithm, 'TrigTauMonAlgTandP')
312  self.mon_alg_tag_and_probe.TriggerList = self.HLT_tag_and_probe_items
313  self.mon_alg_tag_and_probe.RequireOfflineTaus = self.require_offline_taus
314 
315  self.logger.info(' |- Booking all histograms')
316  for trigger in self.HLT_tag_and_probe_items:
317  self.bookTAndPHLTEffHistograms(self.mon_alg_tag_and_probe, self.base_path, trigger)
318  self.bookTAndPVars(self.mon_alg_tag_and_probe, self.base_path, trigger)
319 
320 

◆ configureAlgorithmTruth()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configureAlgorithmTruth (   self)

Definition at line 321 of file TrigTauMonitoringConfig.py.

321  def configureAlgorithmTruth(self):
322  self.mon_alg_truth = self._configureAlgorithm(CompFactory.TrigTauMonitorTruthAlgorithm, 'TrigTauMonAlgTruth')
323  self.mon_alg_truth.TriggerList = self.HLT_truth_items
324 
325  self.logger.info(' |- Booking all histograms')
326  for trigger in self.HLT_truth_items:
327  for p in ('1P', '3P'):
328  self.bookTruthEfficiency(self.mon_alg_truth, self.base_path, trigger, n_prong=p)
329  self.bookTruthVars(self.mon_alg_truth, self.base_path, trigger, n_prong=p)
330 
331 

◆ configureMode()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configureMode (   self)

Definition at line 94 of file TrigTauMonitoringConfig.py.

94  def configureMode(self):
95  self.is_mc = False
96 
97  self.data_type = self.helper.flags.DQ.DataType
98  self.logger.debug('Configuring for %s', self.data_type)
99 
100  if self.data_type is DQDataType.MC:
101  self.is_mc = True
102  self.logger.debug('Enabling Truth monitoring')
103  else:
104  self.activate_truth = False
105  self.logger.debug('Using default monitoring configuration for collisions')
106 
107  if self.helper.flags.DQ.Environment == "tier0":
108  self.do_alternative_eTAU_monitoring = True
109  # We don't have any configuration specific for Cosmics or HI (the HLT Tau Monitoring is disabled for this one)
110  # If we did, we could specify it here
111 
112 

◆ configureTriggers()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.configureTriggers (   self)

Definition at line 160 of file TrigTauMonitoringConfig.py.

160  def configureTriggers(self):
161  self.logger.info('Configuring triggers')
162 
163  from TrigConfigSvc.TriggerConfigAccess import getL1MenuAccess, getHLTMenuAccess, getHLTMonitoringAccess
164  # The L1 and HLT menus should always be available
165  L1_menu = getL1MenuAccess(self.helper.flags)
166  HLT_menu = getHLTMenuAccess(self.helper.flags)
167 
168  # Try to load the monitoring groups
169  HLT_monitoring = getHLTMonitoringAccess(self.helper.flags)
170  all_items = HLT_monitoring.monitoredChains(signatures='tauMon', monLevels=['shifter', 't0', 'val'])
171  # If the mon groups are not available, fallback to the hard-coded trigger monitoring list
172  if not all_items:
173  from TrigTauMonitoring.ManualChains import monitored_chains
174  self.logger.info('Could not find any monitored tau chains in the HLTMonitoring information. Will use the available items from the fallback trigger list')
175  all_items = monitored_chains
176 
177  # Classify HLT trigger chains:
178  for trigger in all_items:
179  # Skip items not included in the menu. This is needed if e.g. using the fallback list on new files without Legacy triggers, or old files
180  # without PhI triggers. Also some old SMKs have broken HLTMonitoring DB links, with chains that are not in the Trigger Menu
181  if trigger not in HLT_menu: continue
182 
183  info = self.getTriggerInfo(trigger, use_thresholds=False)
184 
185  if self.activate_single_tau and info.isHLTSingleTau():
186  self.HLT_single_items.append(trigger)
187  elif self.activate_ditau and info.isHLTDiTau():
188  self.HLT_ditau_items.append(trigger)
189  elif self.activate_tag_and_probe and info.isHLTTandP():
190  self.HLT_tag_and_probe_items.append(trigger)
191 
192  if len(info.getL1TauItems()):
193  for l1_tau_item in map(str, info.getL1TauItems()): # The objects are of type std::string by default, and 'in' doesn't work properly on them
194  is_phase_1 = 'eTAU' in l1_tau_item or 'jTAU' in l1_tau_item or 'cTAU' in l1_tau_item
195  if is_phase_1 and l1_tau_item not in self.L1_Phase1_thresholds:
196  # We have only one threshold entry, because we don't use eta-dependent thresholds for Phase 1 TAU items:
197  self.L1_Phase1_thresholds[l1_tau_item] = float(L1_menu.thresholds()[l1_tau_item]['thrValues'][0]['value'])
198 
199  self.L1_Phase1_threshold_mappings[l1_tau_item] = 1 << int(L1_menu.thresholds()[l1_tau_item]['mapping']) # thresholdPatterns property mask
200 
201  if self.activate_L1 and f'L1{l1_tau_item}' not in self.L1_items:
202  self.L1_items.append(f'L1{l1_tau_item}')
203 
204  if self.activate_single_tau:
205  self.HLT_single_items.sort()
206  self.logger.info(f'Configuring HLT single-tau monitored chains: {self.HLT_single_items}')
207  if not self.HLT_single_items:
208  self.logger.warning('Empty trigger list, disabling the single-tau monitoring')
209  self.activate_single_tau = False
210 
211  if self.activate_ditau:
212  self.HLT_ditau_items.sort()
213  self.logger.info(f'Configuring HLT di-tau monitored chains: {self.HLT_ditau_items}')
214  if not self.HLT_ditau_items:
215  self.logger.warning('Empty trigger list, disabling the di-tau monitoring')
216  self.activate_ditau = False
217 
218  if self.activate_tag_and_probe:
219  self.HLT_tag_and_probe_items.sort()
220  self.logger.info(f'Configuring HLT Tag and Probe tau monitored chains: {self.HLT_tag_and_probe_items}')
221  if not self.HLT_tag_and_probe_items:
222  self.logger.warning('Empty trigger list, disabling the tag and probe monitoring')
223  self.activate_tag_and_probe = False
224 
225  if self.activate_truth:
226  # We add all chains to the Truth monitoring
227  self.HLT_truth_items = self.HLT_single_items
228  self.logger.info(f'Configuring HLT truth tau monitored chains: {self.HLT_truth_items}')
229  if not self.HLT_truth_items:
230  self.logger.warning('Empty trigger list, disabling the truth tau monitoring')
231  self.activate_truth = False
232 
233  if self.activate_L1:
234  self.L1_items.sort()
235  self.logger.info(f'Configuring L1 tau monitored items: {self.L1_items}')
236  if not self.L1_items:
237  self.logger.warning('Empty trigger list, disabling the L1 tau monitoring')
238  self.activate_L1 = False
239 
240 

◆ getCustomPtBinning()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.getCustomPtBinning (   self,
  trigger,
  fine = False 
)

Definition at line 764 of file TrigTauMonitoringConfig.py.

764  def getCustomPtBinning(self, trigger, fine=False):
765  info = self.getTriggerInfo(trigger)
766 
767  def getList(ranges, others=[250]):
768  ret = set(others + [500]) # The upper end of the x-axis will always be 500
769  for jump, interval in ranges.items():
770  ret.update(range(interval[0], interval[1], jump), interval)
771  return sorted(list(ret))
772 
773  if info.isL1TauOnly():
774  thr = info.getL1TauThreshold()
775 
776  if thr <= 8: return getList({5:(0, 30), 50:(50, 150)})
777  elif thr <= 12: return getList({5:(0, 30), 50:(50, 150)})
778  elif thr <= 20: return getList({5:(5, 40), 10:(40, 70), 50:(100, 150)})
779  elif thr <= 30: return getList({5:(15, 50), 10:(50, 70), 50:(100, 150)})
780  elif thr <= 35: return getList({5:(20, 55), 10:(60, 80), 50:(100, 150)})
781  elif thr <= 40: return getList({5:(25, 60), 10:(60, 80), 50:(100, 150)})
782  elif thr <= 60: return getList({5:(45, 80), 10:(80, 100), 50:(100, 150)})
783  elif thr <= 100: return getList({5:(85, 120), 10:(120, 140), 20:(140, 180), 50:(200, 250)})
784  else: return getList({50:(0, 200)})
785 
786  else: # HLT triggers
787  thr = info.getHLTTauThreshold()
788 
789  if fine:
790  if thr == 0: return getList({5:(0, 80), 10:(80, 120), 20:(120, 160), 40:(160, 240), 60:(240, 420)}, [])
791  elif thr <= 20: return getList({5:(15, 80), 10:(80, 120), 20:(120, 160), 40:(160, 240), 60:(240, 420)}, [])
792  elif thr <= 25: return getList({5:(20, 80), 10:(80, 120), 20:(120, 160), 40:(160, 240), 60:(240, 420)}, [])
793  elif thr <= 30: return getList({5:(25, 80), 10:(80, 120), 20:(120, 160), 40:(160, 240), 60:(240, 420)}, [])
794  elif thr <= 35: return getList({5:(30, 80), 10:(80, 120), 20:(120, 160), 40:(160, 240), 60:(240, 420)}, [])
795  elif thr <= 60: return getList({5:(55, 80), 10:(80, 120), 20:(120, 160), 40:(160, 240), 60:(240, 420)}, [])
796  elif thr <= 80: return getList({5:(75, 80), 10:(80, 120), 20:(120, 160), 40:(160, 240), 60:(240, 420)}, [])
797  elif thr <= 160: return getList({5:(155, 160), 40:(160, 240), 60:(240, 420)}, [])
798  elif thr <= 180: return getList({5:(175, 180), 40:(180, 260), 60:(260, 380)}, [])
799  else: return getList({5:(195, 200), 40:(200, 240), 60:(240, 420)}, [])
800 
801  else:
802  if thr == 0:
803  if info.getL1TauItems(): return self.getCustomPtBinning(f'L1{info.getL1TauItem()}')
804  else: return getList({5:(0, 30), 50:(50, 150)})
805  elif thr <= 20: return getList({5:(10, 40), 10:(40, 60), 20:(60, 80)}, [150, 250])
806  elif thr <= 25: return getList({5:(15, 40), 10:(40, 60), 20:(60, 80)}, [150, 250])
807  elif thr <= 30: return getList({5:(20, 50), 10:(50, 60), 20:(60, 80)}, [150, 250])
808  elif thr <= 35: return getList({5:(25, 50), 10:(50, 60), 20:(60, 80)}, [150, 250])
809  elif thr <= 60: return getList({5:(50, 70), 10:(70, 80)}, [110, 150, 250])
810  elif thr <= 80: return getList({5:(70, 90)}, [110, 150, 250])
811  elif thr <= 160: return getList({5:(150, 170), 10:(170, 180), 20:(180, 200)}, [240, 300])
812  elif thr <= 180: return getList({5:(170, 180), 10:(180, 200)}, [240, 300])
813  else: return getList({5:(190, 200), 10:(200, 210)}, [240, 300])

◆ getTriggerInfo()

def python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.getTriggerInfo (   self,
str  trigger,
  use_thresholds = True 
)

Definition at line 152 of file TrigTauMonitoringConfig.py.

152  def getTriggerInfo(self, trigger: str, use_thresholds=True):
153  from TrigTauMonitoring.TrigTauInfo import TrigTauInfo
154  if use_thresholds:
155  return TrigTauInfo(trigger, self._L1_Phase1_thresholds_stdmap, self._L1_Phase1_threshold_mappings_stdmap)
156  else:
157  return TrigTauInfo(trigger)
158 
159 

Member Data Documentation

◆ activate_ditau

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.activate_ditau

Definition at line 75 of file TrigTauMonitoringConfig.py.

◆ activate_L1

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.activate_L1

Definition at line 87 of file TrigTauMonitoringConfig.py.

◆ activate_single_tau

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.activate_single_tau

Definition at line 71 of file TrigTauMonitoringConfig.py.

◆ activate_tag_and_probe

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.activate_tag_and_probe

Definition at line 79 of file TrigTauMonitoringConfig.py.

◆ activate_truth

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.activate_truth

Definition at line 83 of file TrigTauMonitoringConfig.py.

◆ base_path

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.base_path

Definition at line 63 of file TrigTauMonitoringConfig.py.

◆ data_type

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.data_type

Definition at line 97 of file TrigTauMonitoringConfig.py.

◆ do_alternative_eTAU_monitoring

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_alternative_eTAU_monitoring
static

Definition at line 57 of file TrigTauMonitoringConfig.py.

◆ do_ditau

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_ditau
static

Definition at line 19 of file TrigTauMonitoringConfig.py.

◆ do_duplicate_var_plots_without_offline_taus

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_duplicate_var_plots_without_offline_taus
static

Definition at line 31 of file TrigTauMonitoringConfig.py.

◆ do_L1

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_L1
static

Definition at line 18 of file TrigTauMonitoringConfig.py.

◆ do_single_tau

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_single_tau
static

Definition at line 17 of file TrigTauMonitoringConfig.py.

◆ do_tag_and_probe

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_tag_and_probe
static

Definition at line 20 of file TrigTauMonitoringConfig.py.

◆ do_total_efficiency

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_total_efficiency
static

Definition at line 26 of file TrigTauMonitoringConfig.py.

◆ do_truth

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.do_truth
static

Definition at line 21 of file TrigTauMonitoringConfig.py.

◆ helper

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.helper

Definition at line 64 of file TrigTauMonitoringConfig.py.

◆ HLT_ditau_items

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.HLT_ditau_items

Definition at line 77 of file TrigTauMonitoringConfig.py.

◆ HLT_single_items

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.HLT_single_items

Definition at line 73 of file TrigTauMonitoringConfig.py.

◆ HLT_tag_and_probe_items

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.HLT_tag_and_probe_items

Definition at line 81 of file TrigTauMonitoringConfig.py.

◆ hlt_tauid_scores

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.hlt_tauid_scores
static

Definition at line 36 of file TrigTauMonitoringConfig.py.

◆ HLT_truth_items

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.HLT_truth_items

Definition at line 85 of file TrigTauMonitoringConfig.py.

◆ is_mc

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.is_mc

Definition at line 95 of file TrigTauMonitoringConfig.py.

◆ L1_items

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.L1_items

Definition at line 89 of file TrigTauMonitoringConfig.py.

◆ L1_Phase1_threshold_mappings

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.L1_Phase1_threshold_mappings

Definition at line 68 of file TrigTauMonitoringConfig.py.

◆ L1_Phase1_thresholds

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.L1_Phase1_thresholds

Definition at line 67 of file TrigTauMonitoringConfig.py.

◆ logger

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.logger

Definition at line 61 of file TrigTauMonitoringConfig.py.

◆ maxsize

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.maxsize
static

Definition at line 151 of file TrigTauMonitoringConfig.py.

◆ mon_alg_ditau

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_ditau

Definition at line 76 of file TrigTauMonitoringConfig.py.

◆ mon_alg_L1

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_L1

Definition at line 88 of file TrigTauMonitoringConfig.py.

◆ mon_alg_L1_alt

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_L1_alt

Definition at line 363 of file TrigTauMonitoringConfig.py.

◆ mon_alg_L1_no_offline

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_L1_no_offline

Definition at line 349 of file TrigTauMonitoringConfig.py.

◆ mon_alg_single

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_single

Definition at line 72 of file TrigTauMonitoringConfig.py.

◆ mon_alg_single_no_offline

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_single_no_offline

Definition at line 280 of file TrigTauMonitoringConfig.py.

◆ mon_alg_tag_and_probe

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_tag_and_probe

Definition at line 80 of file TrigTauMonitoringConfig.py.

◆ mon_alg_truth

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.mon_alg_truth

Definition at line 84 of file TrigTauMonitoringConfig.py.

◆ offline_tauid_scores

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.offline_tauid_scores
static

Definition at line 50 of file TrigTauMonitoringConfig.py.

◆ require_offline_taus

python.TrigTauMonitoringConfig.TrigTauMonAlgBuilder.require_offline_taus
static

Definition at line 28 of file TrigTauMonitoringConfig.py.


The documentation for this class was generated from the following file:
grepfile.info
info
Definition: grepfile.py:38
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.TriggerConfigAccess.getHLTMonitoringAccess
HLTMonitoringAccess getHLTMonitoringAccess(flags=None)
Definition: TriggerConfigAccess.py:256
configure
bool configure(asg::AnaToolHandle< ITrigGlobalEfficiencyCorrectionTool > &tool, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronEffToolsHandles, ToolHandleArray< IAsgElectronEfficiencyCorrectionTool > &electronSFToolsHandles, ToolHandleArray< CP::IMuonTriggerScaleFactors > &muonToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonEffToolsHandles, ToolHandleArray< IAsgPhotonEfficiencyCorrectionTool > &photonSFToolsHandles, const std::string &triggers, const std::map< std::string, std::string > &legsPerTool, unsigned long nToys, bool debug)
Definition: TrigGlobEffCorrValidation.cxx:514
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
python.TriggerConfigAccess.getL1MenuAccess
L1MenuAccess getL1MenuAccess(flags=None)
Definition: TriggerConfigAccess.py:129
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:79
python.TriggerConfigAccess.getHLTMenuAccess
HLTMenuAccess getHLTMenuAccess(flags=None)
Definition: TriggerConfigAccess.py:196
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
TrigTauInfo
Definition: TrigTauInfo.h:15
readCCLHist.float
float
Definition: readCCLHist.py:83