diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py index 32c87029a88f1744b10f2f8e647917e1e6b844cf..0bd90c5e1a8fc6492011138885fea0131e17078f 100644 --- a/Control/AthenaConfiguration/python/AllConfigFlags.py +++ b/Control/AthenaConfiguration/python/AllConfigFlags.py @@ -196,9 +196,8 @@ def _createCfgFlags(): _addFlagsCategory(acf,"BTagging",__btagging, 'BTagging') def __dq(): - from AthenaMonitoring.DQConfigFlags import createDQConfigFlags, createComplexDQConfigFlags + from AthenaMonitoring.DQConfigFlags import createDQConfigFlags dqf = createDQConfigFlags() - dqf.join( createComplexDQConfigFlags() ) return dqf _addFlagsCategory(acf, "DQ", __dq, 'AthenaMonitoring' ) diff --git a/Control/AthenaMonitoring/python/DQConfigFlags.py b/Control/AthenaMonitoring/python/DQConfigFlags.py index bf7157de5b3573bc0c4f0522827401d79a61101b..08ce9be8d9a482e6a02983b8fe6450370481ebbb 100644 --- a/Control/AthenaMonitoring/python/DQConfigFlags.py +++ b/Control/AthenaMonitoring/python/DQConfigFlags.py @@ -34,9 +34,17 @@ def createDQConfigFlags(): # temp thing for steering from inside old-style ... acf.addFlag('DQ.isReallyOldStyle', False) + # computed + acf.addFlag('DQ.Environment', getEnvironment ) + acf.addFlag('DQ.DataType', getDataType ) + # steering ... for flag in _steeringFlags + _lowLevelSteeringFlags: - acf.addFlag('DQ.Steering.' + flag, True) + arg = True + if flag == 'doJetTagMon': + arg = lambda x: x.DQ.DataType != 'cosmics' # noqa: E731 + acf.addFlag('DQ.Steering.' + flag, arg) + # HLT steering ... from PyUtils.moduleExists import moduleExists if moduleExists ('TrigHLTMonitoring'): @@ -44,12 +52,6 @@ def createDQConfigFlags(): acf.join(createHLTDQConfigFlags()) return acf -def createComplexDQConfigFlags(): - acf=AthConfigFlags() - acf.addFlag('DQ.Environment', getEnvironment ) - acf.addFlag('DQ.DataType', getDataType ) - return acf - def getDataType(flags): if flags.Input.isMC: return 'monteCarlo' diff --git a/Control/AthenaMonitoring/test/test_run3dq_r22_esd_cosmics.sh b/Control/AthenaMonitoring/test/test_run3dq_r22_esd_cosmics.sh new file mode 100755 index 0000000000000000000000000000000000000000..e329e982014bfa0a3d4e26f9c2d83ca47ff65a3c --- /dev/null +++ b/Control/AthenaMonitoring/test/test_run3dq_r22_esd_cosmics.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# art-description: ESD->HIST, R22 cosmics data ESD +# art-type: grid +# art-memory: 3072 +# art-include: master/Athena +# art-output: ExampleMonitorOutput.root +# art-output: log* + +art.py download Tier0ChainTests test_q220.sh +ESDFILE=(./ref-*/myESD.pool.root) +Run3DQTestingDriver.py 'Input.Files=["'${ESDFILE}'"]' DQ.Steering.doHLTMon=False > log.HIST_Creation 2>&1 + +echo "art-result: $? HIST_Creation" +rm -rf ref-* + +ArtPackage=$1 +ArtJobName=$2 +art.py download ${ArtPackage} ${ArtJobName} +REFFILE=(./ref-*/ExampleMonitorOutput.root) +hist_diff.sh ExampleMonitorOutput.root $REFFILE -x TIME_execute -i > log.HIST_Diff 2>&1 +echo "art-result: $? HIST_Diff" diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx index d18591933e2b7f128bb49c177b0376ea35f58e1c..732e53a50c501a28ab3682ca828eb570a7b49f66 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx @@ -413,8 +413,10 @@ StatusCode MuonTrackMonitorAlgorithm::fillHistograms(const EventContext& ctx) co ATH_CHECK( analyseLowLevelMuonFeatures(*Muons, lumiBlockID) ); ATH_CHECK( analyseCombinedTracks(*Muons, lumiBlockID) ); - ATH_CHECK( analyseZBosonCandidates(*Muons, lumiBlockID) ); - ATH_CHECK( analyseJPsiCandidates(*Muons, lumiBlockID) ); + if (dataType() != DataType_t::cosmics) { + ATH_CHECK( analyseZBosonCandidates(*Muons, lumiBlockID) ); + ATH_CHECK( analyseJPsiCandidates(*Muons, lumiBlockID) ); + } return StatusCode::SUCCESS; } diff --git a/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py b/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py index 6a8d9200a3048abb869f782dd6ef6be3a0f13ac1..c04cef28d225b778b017dd8bcc6071acdd4a9a59 100644 --- a/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py +++ b/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py @@ -63,11 +63,6 @@ commonHistoSpecs = [ ] ), - SelectSpec( 'highJVF', - '0.3<JVF[0]', # JVF is a vector<float> for each jets. Here we cut on the 0th entry of this vector - FillerTools = [ - "pt", - ] ), # Selecting jets passing the LooseBad selection from the JetCleaningTool. SelectSpec( 'LooseBadJets', 'LooseBad', # this is not in the form 'min<x<max', so it will be assumed 'LooseBad' is an entry existing in JetStandardHistoSpecs.knownSelector @@ -77,6 +72,15 @@ commonHistoSpecs = [ ] +# Separate these out because they cannot run in cosmics +jvfHistosSpec = [ + SelectSpec( 'highJVF', + '0.3<JVF[0]', # JVF is a vector<float> for each jets. Here we cut on the 0th entry of this vector + FillerTools = [ + "pt", + ] ), +] + topoHistosSpec = [ # histos common to all topo jets @@ -90,7 +94,7 @@ pflowHistosSpec = [ -def jetMonAlgConfig( jetName, truthJetName='', trigger=''): +def jetMonAlgConfig( jetName, inputFlags, truthJetName='', trigger=''): """returns a specification of a JetMonitoringAlg (in the form of a JetMonAlgSpec dictionnary). """ @@ -107,6 +111,9 @@ def jetMonAlgConfig( jetName, truthJetName='', trigger=''): # then add pre-defined lists as defined above : histoSpecs += commonHistoSpecs + if inputFlags.DQ.DataType != 'cosmics': + histoSpecs += jvfHistosSpec + if 'Topo' in jetName: histoSpecs += topoHistosSpec if 'PFlow' in jetName: @@ -145,9 +152,9 @@ def standardJetMonitoring(inputFlags): # create a list of JetMonitoringAlg specifications jetAlgConfs = [ # use the helper function defined above : - jetMonAlgConfig( "AntiKt4LCTopoJets", ), + jetMonAlgConfig( "AntiKt4LCTopoJets", inputFlags), #jetMonAlgConfig( "AntiKt4LCTopoJets", truthJetName="AntiKt4TruthJets"), #How can we make sure truth jets are available ?? - jetMonAlgConfig( "AntiKt4EMPFlowJets"), + jetMonAlgConfig( "AntiKt4EMPFlowJets", inputFlags), ] # schedule each JetMonitoringAlg by invoking the toAlg() methods of the config specification diff --git a/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py b/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py index d3aacf57fbf0bac1b27ded747c0c736333483ee0..934393e2f38623a8878f63308fcdb26f7257fe4d 100644 --- a/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py +++ b/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py @@ -72,16 +72,16 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(METRefFinal_MonAlg, group,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + METPflow_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_MonAlg') + pfmet_types = ["MET_PFlow","MET_PFlow_RefJet","MET_PFlow_Muon","MET_PFlow_RefEle","MET_PFlow_RefGamma","MET_PFlow_RefTau","MET_PFlow_PVSoftTrk"] + METPflow_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + METPflow_MonAlg.metKeys = pfmet_types + METPflow_MonAlg.alltrigger = True - METPflow_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_MonAlg') - pfmet_types = ["MET_PFlow","MET_PFlow_RefJet","MET_PFlow_Muon","MET_PFlow_RefEle","MET_PFlow_RefGamma","MET_PFlow_RefTau","MET_PFlow_PVSoftTrk"] - METPflow_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - METPflow_MonAlg.metKeys = pfmet_types - METPflow_MonAlg.alltrigger = True - - group = helper.addGroup(METPflow_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_AntiKt4EMPFlow/") - for mets in pfmet_types: - defineHistograms(METPflow_MonAlg, group,helper,mets) + group = helper.addGroup(METPflow_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_AntiKt4EMPFlow/") + for mets in pfmet_types: + defineHistograms(METPflow_MonAlg, group,helper,mets) METEMTopo_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METEMTopo_MonAlg') @@ -114,14 +114,15 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(METRefFinal_XE30_MonAlg, group,helper,mets) - METPflow_XE30_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_XE30_MonAlg') - METPflow_XE30_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - METPflow_XE30_MonAlg.metTotalKey="FinalTrk" - METPflow_XE30_MonAlg.metKeys = pfmet_types - METPflow_XE30_MonAlg.dotrigger = True - group = helper.addGroup(METPflow_XE30_MonAlg,"METMonitor","MissingEt/TrigXE30/MET_AntiKt4EMPflow/") - for mets in pfmet_types: - defineHistograms(METPflow_XE30_MonAlg, group,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + METPflow_XE30_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_XE30_MonAlg') + METPflow_XE30_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + METPflow_XE30_MonAlg.metTotalKey="FinalTrk" + METPflow_XE30_MonAlg.metKeys = pfmet_types + METPflow_XE30_MonAlg.dotrigger = True + group = helper.addGroup(METPflow_XE30_MonAlg,"METMonitor","MissingEt/TrigXE30/MET_AntiKt4EMPflow/") + for mets in pfmet_types: + defineHistograms(METPflow_XE30_MonAlg, group,helper,mets) METCalo_XE30_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCalo_XE30_MonAlg') METCalo_XE30_MonAlg.METCaloContainer="MET_Calo" @@ -152,14 +153,15 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(METRefFinal_METCut_MonAlg, group,helper,mets) - METPflow_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_METCut_MonAlg') - METPflow_METCut_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - METPflow_METCut_MonAlg.metKeys = pfmet_types - METPflow_METCut_MonAlg.dometcut = True - METPflow_METCut_MonAlg.metcut = 80 - group = helper.addGroup(METPflow_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_AntiKt4EMPflow/") - for mets in pfmet_types: - defineHistograms(METPflow_METCut_MonAlg, group,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + METPflow_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_METCut_MonAlg') + METPflow_METCut_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + METPflow_METCut_MonAlg.metKeys = pfmet_types + METPflow_METCut_MonAlg.dometcut = True + METPflow_METCut_MonAlg.metcut = 80 + group = helper.addGroup(METPflow_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_AntiKt4EMPflow/") + for mets in pfmet_types: + defineHistograms(METPflow_METCut_MonAlg, group,helper,mets) METCalo_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCalo_METCut_MonAlg') metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ] @@ -200,15 +202,16 @@ def METMonitoringConfig(inputFlags): defineHistograms(JetCleaning_METMonAlg, JetCleaningGroup,helper,mets) - PflowJetCleaning_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'PflowJetCleaning_METMonAlg') - PflowJetCleaning_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - PflowJetCleaning_METMonAlg.metKeys = pfmet_types - PflowJetCleaning_METMonAlg.DoJetCleaning = True - PflowJetCleaning_METMonAlg.JetCleaningTool = jetCleaningTool - PflowJetCleaningGroup = helper.addGroup(PflowJetCleaning_METMonAlg,"METMonitor","MissingEt/Jetcleaning/MET_AntiKt4EMPflow/") - PflowJetCleaning_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" - for mets in pfmet_types: - defineHistograms(PflowJetCleaning_METMonAlg, PflowJetCleaningGroup,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + PflowJetCleaning_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'PflowJetCleaning_METMonAlg') + PflowJetCleaning_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + PflowJetCleaning_METMonAlg.metKeys = pfmet_types + PflowJetCleaning_METMonAlg.DoJetCleaning = True + PflowJetCleaning_METMonAlg.JetCleaningTool = jetCleaningTool + PflowJetCleaningGroup = helper.addGroup(PflowJetCleaning_METMonAlg,"METMonitor","MissingEt/Jetcleaning/MET_AntiKt4EMPflow/") + PflowJetCleaning_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" + for mets in pfmet_types: + defineHistograms(PflowJetCleaning_METMonAlg, PflowJetCleaningGroup,helper,mets) METCaloJetCleaning_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCaloJetCleaning_MonAlg') metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ] @@ -248,17 +251,18 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(BadJets_METMonAlg, BadJetsGroup,helper,mets) - BadPFJets_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadPFJets_METMonAlg') - BadPFJets_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - BadPFJets_METMonAlg.metKeys = pfmet_types - BadPFJets_METMonAlg.DoJetCleaning = True - BadPFJets_METMonAlg.alltrigger = True - BadPFJets_METMonAlg.DoBadJets = True - BadPFJets_METMonAlg.JetCleaningTool = jetCleaningTool - BadPFJets_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" - BadPFJetsGroup = helper.addGroup(BadPFJets_METMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_AntiKt4EMPflow/") - for mets in pfmet_types: - defineHistograms(BadPFJets_METMonAlg, BadPFJetsGroup,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + BadPFJets_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadPFJets_METMonAlg') + BadPFJets_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + BadPFJets_METMonAlg.metKeys = pfmet_types + BadPFJets_METMonAlg.DoJetCleaning = True + BadPFJets_METMonAlg.alltrigger = True + BadPFJets_METMonAlg.DoBadJets = True + BadPFJets_METMonAlg.JetCleaningTool = jetCleaningTool + BadPFJets_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" + BadPFJetsGroup = helper.addGroup(BadPFJets_METMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_AntiKt4EMPflow/") + for mets in pfmet_types: + defineHistograms(BadPFJets_METMonAlg, BadPFJetsGroup,helper,mets) BadJets_CaloMETMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadJets_CaloMETMonAlg') diff --git a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py index 91b7ea9172d3d767da513dcbc4b4c7e56e097f8b..5698c66ef42b0acdce86915302d56bccf10f0fbb 100644 --- a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py @@ -50,7 +50,7 @@ def TileJetMonitoringConfig(flags, **kwargs): DoEnergyDiffHistograms = kwargs.get('DoEnergyDiffHistograms', tileJetMonAlg._descriptors['DoEnergyDiffHistograms'].default) - if not flags.DQ.DataType == 'heavyioncollision': + if flags.DQ.DataType not in ('heavyioncollisions', 'cosmics'): jvtTool = CompFactory.JetVertexTaggerTool() jetContainer = kwargs.get('JetContainer', tileJetMonAlg._descriptors['JetContainer'].default)