Skip to content
Snippets Groups Projects
Commit 544d4fda authored by Ryan Mackenzie White's avatar Ryan Mackenzie White Committed by Graeme Stewart
Browse files

update TP triggers (TrigEgammaMonitoring-00-01-75)

	* Fix elif indentation in MonBuilder
	* Use AthenaCommon.Constats for debug level
	* Change expert TP triggers
	* TrigEgammaMonitoring-00-01-75

2016-06-29 Ryan White <ryan.white@cern.ch>
	* Configuration class for monitoring tool
	* TrigEgammaMonitoring-00-01-74


Former-commit-id: fdd72573
parent fa05805b
No related branches found
No related tags found
No related merge requests found
#! /usr/bin/env python
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Author: Ryan Mackenzie White <ryan.white@cern.ch>
#
# TrigEgammaMonToolBuilder class
# Holds various properties that are needed to configure monitoring tools
# Provides a way to switch the configuration based on job Properties, e.g. beamType
"""
# Commented code here
"""
from AthenaCommon.Constants import VERBOSE, DEBUG, INFO, ERROR
from TrigEgammaAnalysisTools.TrigEgammaAnalysisToolsConfig import TrigEgammaNavAnalysisTool,TrigEgammaNavTPAnalysisTool,TrigEgammaNavTPJpsieeAnalysisTool
from TrigEgammaAnalysisTools.TrigEgammaAnalysisToolsConfig import EfficiencyTool, ResolutionTool, DistTool, TrigEgammaPlotTool
from TrigEgammaAnalysisTools.TrigEgammaAnalysisToolsConf import TrigEgammaMonTool
# Move the ProbeList into MonitCategory to keep all configuration in TrigEgammaMonitoring
from TrigEgammaMonitoring.TrigEgammaMonitCategory import *
if not 'jobproperties' in dir():
from AthenaCommon.BeamFlags import jobproperties
if not 'rec' in dir():
from RecExConfig.RecFlags import rec
# Ideas taken from HLTMonTriggerList class
class TrigEgammaMonToolBuilder:
_configured = False
_get_monitoring_mode_success = False
pp_mode = False
pPb_mode = False
HI_mode = False
cosmic_mode = False
basePath = 'HLT/Egamma'
debugLevel = INFO
detailLevel = False
tagItems = []
JpsitagItems = []
electronList = []
photonList = []
tpList = []
jpsiList = []
mam = {}
monTool=[]
def __init__(self):
if not self._configured:
self.config()
def config(self):
self._get_monitoring_mode_success = self.get_monitoring_mode()
#print self._get_monitoring_mode_success
if self._get_monitoring_mode_success == False:
print "HLTMonTriggerList: Error getting monitoring mode, default monitoring lists will be used."
self.setProperties()
self.configureTools()
self.monTool=self.configureMonTool()
# Implementation of https://its.cern.ch/jira/browse/ATR-13200
def get_monitoring_mode(self):
# Set monitoring mode
if jobproperties.Beam.beamType() == 'collisions':
if rec.doHeavyIon == False and rec.doHIP == False:
self.pp_mode = True
return True
if rec.doHeavyIon == True and rec.doHIP == False:
self.HI_mode = True
return True
if rec.doHeavyIon == False and rec.doHIP == True:
self.pPb_mode = True
return True
elif jobproperties.Beam.beamType() == 'cosmics':
if rec.doHeavyIon == False and rec.doHIP == False:
self.cosmic_mode = True
return True
elif jobproperties.Beam.beamType() == 'singlebeam':
# what should be done in this case?
pass
return False
def setProperties(self):
self.basePath = 'HLT/Egamma'
self.debug = INFO
self.tagItems = ['HLT_e24_lhtight_nod0_ivarloose',
'HLT_e26_lhtight_nod0_ivarloose']
self.JpsitagItems = ['HLT_e5_lhtight_nod0_e4_etcut',
'HLT_e9_lhtight_nod0_e4_etcut',
'HLT_e14_lhtight_nod0_e4_etcut',
'HLT_e5_lhtight_nod0_e4_etcut_Jpsiee',
'HLT_e9_lhtight_nod0_e4_etcut_Jpsiee']
if self.pp_mode == True:
self.setDefaultProperties()
elif self_cosmic_mode == True:
self.electronList = monitoring_electron
self.photonList = monitoring_photon
self.mam=monitoring_mam_cosmic
else:
print 'No monitoring mode configured, use default'
self.setDefaultProperties()
def setDefaultProperties(self):
self.electronList = monitoring_electron
self.photonList = monitoring_photon
self.tpList = monitoringTP_electron+monitoring_ele_idperf+monitoring_L1Calo
self.jpsiList = monitoringTP_Jpsiee
self.mam=monitoring_mam
def configureTools(self):
HLTEgammaPlotTool = TrigEgammaPlotTool(name="HLTEgammaPlotTool",
DirectoryPath=self.basePath,
MaM=self.mam,
Efficiency=["eff_et","eff_eta","eff_mu"],
Distribution=["et","eta","Reta","Rphi","Rhad","f1","f3","eratio","deta2","eprobHT","npixhits","nscthits","ptvarcone20"],
Resolution=["res_et","res_Rphi","res_Reta","res_Rhad","res_ptvarcone20","res_deta2"],
OutputLevel=self.debugLevel)
HLTEgammaEffTool = EfficiencyTool(name="HLTEgammaEffTool",PlotTool=HLTEgammaPlotTool,OutputLevel=self.debugLevel)
HLTEgammaResTool = ResolutionTool(name="HLTEgammaResTool",PlotTool=HLTEgammaPlotTool,OutputLevel=self.debugLevel)
HLTEgammaDistTool = DistTool(name="HLTEgammaDistTool",PlotTool=HLTEgammaPlotTool,OutputLevel=self.debugLevel)
# For MaM, most important is the list of triggers to monitor
# Use the MaM categories from those lists
ElectronAnalysis = TrigEgammaNavAnalysisTool(name='HLTEgammaElectronAnalysis',
Analysis='Electrons',
PlotTool=HLTEgammaPlotTool,
Tools=[HLTEgammaEffTool,HLTEgammaResTool,HLTEgammaDistTool],
TriggerList=self.electronList,
ForceProbeIsolation=True,
DefaultProbePid="LHMedium",
File="",
OutputLevel=self.debugLevel,DetailedHistograms=self.detailLevel)
PhotonAnalysis = TrigEgammaNavAnalysisTool(name='HLTEgammaPhotonAnalysis',
Analysis='Photons',
PlotTool=HLTEgammaPlotTool,
Tools=[HLTEgammaEffTool,HLTEgammaResTool,HLTEgammaDistTool],
TriggerList=self.photonList,
File="",
OutputLevel=self.debugLevel,DetailedHistograms=self.detailLevel)
TPAnalysis = TrigEgammaNavTPAnalysisTool(name='HLTEgammaTPAnalysis',
Analysis='Zee',
PlotTool=HLTEgammaPlotTool,
Tools=[HLTEgammaEffTool,HLTEgammaResTool,HLTEgammaDistTool],
TriggerList=self.tpList,
DefaultProbePid="LHMedium",
File="",
TagTriggerList=self.tagItems,
RemoveCrack=False,
OutputLevel=self.debugLevel,DetailedHistograms=self.detailLevel)
JpsiTPAnalysis = TrigEgammaNavTPJpsieeAnalysisTool(name='HLTEgammaTPJpsieeAnalysis',
Analysis='Jpsiee',
PlotTool=HLTEgammaPlotTool,
Tools=[HLTEgammaEffTool,HLTEgammaResTool,HLTEgammaDistTool],
TriggerList=self.jpsiList,
File="",
TagTriggerList= self.JpsitagItems)
def configureDefaultMonTool(self):
tool = TrigEgammaMonTool( name = "HLTEgammaMon",
histoPathBase=self.basePath,
IgnoreTruncationCheck=True,
Tools=["TrigEgammaNavAnalysisTool/HLTEgammaPhotonAnalysis",
"TrigEgammaNavAnalysisTool/HLTEgammaElectronAnalysis",
"TrigEgammaNavTPAnalysisTool/HLTEgammaTPAnalysis",
"TrigEgammaNavTPAnalysisTool/HLTEgammaTPJpsieeAnalysis"])
return tool
def configureMonTool(self):
from AthenaCommon.AppMgr import ToolSvc
toolList=['TrigEgammaMonTool/HLTEgammaMon'];
if self.pp_mode == True:
ToolSvc += self.configureDefaultMonTool()
elif self_cosmic_mode == True:
tool= TrigEgammaMonTool( name = "HLTEgammaMon",
histoPathBase=self.basePath,
IgnoreTruncationCheck=True,
Tools=["TrigEgammaNavAnalysisTool/HLTEgammaPhotonAnalysis",
"TrigEgammaNavAnalysisTool/HLTEgammaElectronAnalysis"])
ToolSvc += tool
else:
ToolSvc += self.configureDefaultMonTool()
return toolList
......@@ -23,13 +23,12 @@ monitoring_egamma = primary_single_ele + primary_double_ele + monitoring_ele_idp
#Additional trigger-only lists for monitoring tools that will evolve with lumi
# L1 trigger items to monitor from inclusive offline electrons
monitoring_L1Calo = ['L1_EM20VH','L1_EM20VHI','L1_EM22VHI']
monitoring_L1Calo = ['L1_EM22VHI','L1_EM24VHI']
# Startup and high-pt electrons to monitor from inclusive electrons
monitoring_electron = ['HLT_e60_lhmedium_nod0','HLT_e140_lhloose_nod0']
# 2016 single electrons triggers to monitor from Zee TP, includes rerun
monitoringTP_electron = ['HLT_e17_lhvloose_nod0','HLT_e26_lhtight_nod0','HLT_e26_lhtight_nod0_ivarloose',
'HLT_e24_lhmedium_L1EM20VH','HLT_e24_lhmedium_L1EM20VHI','HLT_e24_lhmedium_iloose',
'HLT_e24_lhmedium_ivarloose','HLT_e24_lhmedium_nod0_ivarloose','HLT_e24_lhtight_nod0_ivarloose',
'HLT_e28_lhtight_nod0_ivarloose','HLT_e28_lhtight_smooth_ivarloose','HLT_e28_lhtight_nod0_ringer_ivarloose',
'HLT_e26_lhtight_cutd0detadphi_ivarloose']
monitoringTP_Jpsiee = ["HLT_e5_lhtight_nod0"]
monitoring_photon = ['HLT_g25_medium','HLT_g140_loose']
......@@ -41,3 +40,9 @@ monitoring_mam = {'primary_single_ele':'HLT_e26_lhtight_nod0',
'monitoring_Jpsiee' : 'HLT_e5_lhtight_nod0'}
#'monitoring_Zee':'HLT_e26_lhtight_nod0_e15_etcut_Zee',
# Cosmic items
monitoring_electron_cosmic=['HLT_e0_perf_L1EM3_EMPTY']
monitoring_photon_cosmic=['HLT_g0_perf_L1EM3_EMPTY']
monitoring_mam_cosmic = {'primary_single_ele':'HLT_e0_perf_L1EM3_EMPTY',
'primary_single_pho':'HLT_g0_perf_L1EM3_EMPTY'}
......@@ -5,9 +5,14 @@
# Configuration should be updated and kept in this package for monitoring
# Provide all triggers to be monitored
# Provide list of categories and shifter plots
def TrigEgammaMonToolLoader():
from TrigEgammaMonitoring.TrigEgammaMonToolBuilder import TrigEgammaMonToolBuilder
builder = TrigEgammaMonToolBuilder()
return builder.monTool
def TrigEgammaMonitoringTool():
from AthenaCommon.AppMgr import ToolSvc
from AthenaCommon.Constants import VERBOSE, DEBUG, INFO, ERROR
from TrigEgammaAnalysisTools.TrigEgammaAnalysisToolsConfig import TrigEgammaNavAnalysisTool,TrigEgammaNavTPAnalysisTool,TrigEgammaNavTPJpsieeAnalysisTool
from TrigEgammaAnalysisTools.TrigEgammaAnalysisToolsConfig import EfficiencyTool, ResolutionTool, DistTool, TrigEgammaPlotTool
......@@ -19,7 +24,7 @@ def TrigEgammaMonitoringTool():
basePath = '/HLT/Egamma'
# Define the outputLevel
# WARNING only change for debugging
debugLevel=0
debugLevel=INFO
#Configure the TrigEgammaPlotTool
#MaM maps a category name (creates a directory) to a trigger (copies histos from trigger dir to category dir)
#Efficiency,Distribution,Resolution -- list of plots to monitor for shifter MaM categories
......
......@@ -37,8 +37,12 @@ from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager
topSequence += AthenaMonManager( "HLTMonManager")
HLTMonManager = topSequence.HLTMonManager
from TrigEgammaMonitoring.TrigEgammaMonitoringConfig import TrigEgammaMonitoringTool
HLTMonManager.AthenaMonTools += TrigEgammaMonitoringTool()
if('useLoader' in dir()):
from TrigEgammaMonitoring.TrigEgammaMonitoringConfig import TrigEgammaMonToolLoader
HLTMonManager.AthenaMonTools += TrigEgammaMonToolLoader()
else:
from TrigEgammaMonitoring.TrigEgammaMonitoringConfig import TrigEgammaMonitoringTool
HLTMonManager.AthenaMonTools += TrigEgammaMonitoringTool()
HLTMonManager.FileKey = "GLOBAL"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment