From 7c9d1d96b46556131b83a606d4dba0ba262eee3d Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Wed, 4 Jul 2018 09:36:49 +0200 Subject: [PATCH] Proposed trigger flags --- .../TriggerJobOpts/python/NewTriggerFlags.py | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 Trigger/TriggerCommon/TriggerJobOpts/python/NewTriggerFlags.py diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/NewTriggerFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/NewTriggerFlags.py new file mode 100644 index 00000000000..db9323f4203 --- /dev/null +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/NewTriggerFlags.py @@ -0,0 +1,165 @@ +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + +from AthenaConfiguration.AthConfigFlags import AthConfigFlags + +def createTriggerFlags(): + + flags = AthConfigFlags() + # enables L1 simulation + flags.addFlag('Trigger.doLVL1', lambda prevFlags: prevFlags('global.isMC')) + + # enables L1 topological trigger simulation + flags.addFlag('Trigger.doL1Topo', True ) + + # writes additional info from Topo simulation + flags.addFlag('Trigger.writeL1TopoValData', True ) + + # need proper documentation + flags.addFlag('Trigger.useL1CaloCalibration', False) + + # need proper documentation + flags.addFlag('Trigger.useRun1CaloEnergyScale', False) + + # enable HLT part of the trigger + flags.addFlag('Trigger.doHLT', True) + + # if 1, Run1 decoding version is set; if 2, Run2 + flags.addFlag('Trigger.EDMDecodingVersion', 2) + + # enables additional algorithms colecting MC truth infrmation (this is only used by IDso maybe we need Trigger.ID.doTruth only?) + flags.addFlag('Trigger.doTruth', False) + + # only enable services for analysis and BS -> ESD processing (we need better name) + flags.addFlag('Trigger.doTriggerConfigOnly', False) + + # enable Bcm inputs simulation + flags.addFlag('Trigger.L1.doBcm', True) + + # enable muon inputs simulation + flags.addFlag('Trigger.L1.doMuons', True) + + # version of CTP data, int value up to 4 + flags.addFlag('Trigger.L1.CTPVersion', 4) + + # list of thresholds (not sure if we want to use new flags to generate L1, leaving out for now?) + + + # enable streaming of HLT content as BS payload + flags.addFlag('Trigger.writeBS', False) + + # list of EDM objects to be written to AOD + flags.addFlag('Trigger.AODEDMSet', []) + + # list of objects to be written to ESD + flags.addFlag('Trigger.ESDEDMSet', []) + + # tag to be used for condutions used by HLT code + flags.addFlag('Trigger.OnlineCondTag', 'CONDBR2-HLTP-2016-01') + + # geometry version used by HLT online + flags.addFlag('Trigger.OnlineGeoTag', 'ATLAS-R2-2015-04-00-00') + + # configuration tune for various years of Run2 (why string?) + flags.addFlag('Trigger.run2Config', '2018') + + # comissionig options + # one of: 'HltOnly', + # 'Lvl1Only', + # 'FullTrigger', + # 'NoTrigger' + flags.addFlag('Trigger.dataTakingConditions', 'FullTrigger') + + + # use or not frontier proxies + flags.addFlag('Trigger.triggerUseFrontier', False) + + # the configuration name, see TriggerFlags for full info + flags.addFlag('Trigger.triggerConfig', 'MCRECO:DEFAULT') + + # name of the trigger menu + flags.addFlag('Trigger.triggerMenuSetup', 'MC_pp_v7_tight_mc_prescale') + + # generate or not the L1 configuration + flags.addFlag('Trigger.generateLVL1Config', False) + + # L1 XML file name + flags.addFlag('Trigger.LVL1ConfigFile', + lambda prevFlags: 'LVL1config_'+prevFlags.triggerMenuSetup()+'_' + prevFlags.menuVersion() + '.xml') + + # generate or not the L1 topo configuration + flags.addFlag('Trigger.generateLVL1TopoConfig', False) + + # L1 topo XML file name + flags.addFlag('Trigger.LVL1TopoConfigFile', + lambda prevFlags: 'LVL1config_'+prevFlags.triggerMenuSetup()+'_' + prevFlags.menuVersion() + '.xml') + + + # trigger reconstruction + + # controls track extension tool setting (not sure we can handle it via this flag now, should it be moved to Trigger.InDet?) + flags.addFlag('Trigger.id.useOfflineSpacePoints', False) + + # enables the correction for pileup in cell energy calibration (should it be moved to some place where other calo flags are defined?) + flags.addFlag('Trigger.calo.doOffsetCorrection', True ) + + # helper to switch between versions + def __tunes(default, ver2016, ver2017): + from collections import defaultdict + return lambda year: defaultdict( lambda: default, + (('2016', ver2016), + ('2017', ver2017)))[year] + + + # Particle ID tune + flags.addFlag('Trigger.egamma.pidVersion', + lambda prefVlags: + __tunes(default='ElectronPhotonSelectorTools/trigger/rel21_mc16a/', + ver2016='ElectronPhotonSelectorTools/trigger/rel21_mc16a/', + ver2017='ElectronPhotonSelectorTools/trigger/rel21_20170214/')( prevFlags.gte('Trigger.run2Config') ) + ) + + # cluster correction version, allowed value is: None or v12phiflip_noecorrnogap + flags.addFlag('Trigger.egamma.clusterCorrectionVersion', + lambda prevFlags: + __tunes(default=None, + ver2016=None, + ver2017='v12phiflip_noecorrnogap')( prevFlags.get('Trigger.run2Config') ) + ) + # tune of MVA + flags.addFlag('Trigger.egamma.calibMVAVersiona', + lambda prevFlags: + __tunes(default='egammaMVACalib/online/v3', + ver2016='egammaMVACalib/online/v3', + ver2017='egammaMVACalib/online/v6')( prevFlags.get('Trigger.run2Config') ) + ) + + # muons + flags.addFlag('Trigger.muon.doEFRoIDrivenAccess', False) + + return flags + # for reference, this flags are skipped as never used or never set in fact, or set identical to de default or used in a very old JO: + # readLVL1Calo, readLVL1Muon, fakeLVL1, useCaloTTL + # doCosmicSim - old JO + # disableRandomPrescale - never used + # doMergedHLTResult - not needed now + # doAlwaysUnpackDSResult - never set + # doTrt - fast TRT or trigger - never used + # doLucid - not sure if ever set to False, identical rec flag exists + # doZdc - never set to anything different than default + # doHLTpersistency - never red + # useOfflineSpacePoints - used only to set + # doNtuple - never red + # configForStartup + # the flags related to trigger DB are redundant of triggerConfig - need to decide if they are needed in this form + # also not defined the Prescale sets yet + # abortOnConfigurationError - never red + # in signatures + # egamma: rinferVrsion - not used + # muon: doMuonCalibrationStream - not used + # tau: doTrackingApproach - not used + +if __name__ == '__main__': + flags = createTriggerFlags() + flags.set('Trigger.run2Config', '2017') + assert flags.get('Trigger.egamma.clusterCorrectionVersion') == 'v12phiflip_noecorrnogap' + flags.dump() -- GitLab