diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt index 74626ab803c14e7a063ad448d9cd5a96a4ca4889..1039ad351cfd9e075ca39a600726dc36af20248b 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt @@ -96,6 +96,9 @@ atlas_add_test( TestLinkMaskingNewConf atlas_add_test( TestMajorityNewConf SCRIPT python -m SCT_ConditionsAlgorithms.SCT_MajorityConditionsTestAlgConfig PROPERTIES TIMEOUT 600 ) +atlas_add_test( TestModuleVetoNewConf + SCRIPT python -m SCT_ConditionsAlgorithms.SCT_ModuleVetoTestAlgConfig + PROPERTIES TIMEOUT 600 ) atlas_add_test( TestMonReadNewConf SCRIPT python -m SCT_ConditionsAlgorithms.SCT_MonitorConditionsTestAlgConfig PROPERTIES TIMEOUT 600 ) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ModuleVetoTestAlgConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ModuleVetoTestAlgConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..65ca7cd97ffa929bd3ab49070558173b7965d3b2 --- /dev/null +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ModuleVetoTestAlgConfig.py @@ -0,0 +1,52 @@ +"""Define method to configure and test SCT_ModuleVetoTestAlg + +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +""" +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator +from AthenaConfiguration.ComponentFactory import CompFactory + +def SCT_StripVetoTestAlgCfg(flags, name="SCT_ModuleVetoTestAlg", **kwargs): + """Return a configured SCT_ModuleVetoTestAlg""" + acc = ComponentAccumulator() + from SCT_ConditionsTools.SCT_ModuleVetoConfig import SCT_ModuleVetoCfg + acc.addEventAlgo(CompFactory.SCT_ModuleVetoTestAlg(name=name, + ModuleVetoTool=acc.popToolsAndMerge(SCT_ModuleVetoCfg(flags, **kwargs)))) + return acc + +if __name__=="__main__": + from AthenaCommon.Logging import log + from AthenaCommon.Constants import INFO + log.setLevel(INFO) + + from AthenaCommon.Configurable import Configurable + Configurable.configurableRun3Behavior=1 + + from AthenaConfiguration.AllConfigFlags import ConfigFlags + ConfigFlags.Input.isMC = True + ConfigFlags.Input.ProjectName = "mc16_13TeV" + ConfigFlags.Input.RunNumber = 300000 # MC16c 2017 run number + ConfigFlags.addFlag("Input.InitialTimeStamp", 1500000000) # MC16c 2017 time stamp + ConfigFlags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-18" + ConfigFlags.GeoModel.AtlasVersion = "ATLAS-R2-2015-03-01-00" + ConfigFlags.Detector.GeometrySCT = True + ConfigFlags.lock() + + from AthenaConfiguration.MainServicesConfig import MainServicesCfg + cfg = MainServicesCfg(ConfigFlags) + + from McEventSelector.McEventSelectorConfig import McEventSelectorCfg + cfg.merge(McEventSelectorCfg(ConfigFlags)) + + kwargs = {} + + ### Use COOL database for SCT_ModuleVetoTool + kwargs["useDB"] = True # False + if kwargs["useDB"]: + kwargs["folderTag"] = "SCTManualBadModules-000-00" + kwargs["BadModuleIdentifiers"] = ["database"] + else: + kwargs["BadModuleIdentifiers"] = ["1", "2"] + + cfg.merge(SCT_StripVetoTestAlgCfg(ConfigFlags, **kwargs)) + + cfg.run(maxEvents=20) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/share/testModuleVeto.py b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/share/testModuleVeto.py index 015eb1526c8c8274b30f1c6840d9500d76e705c8..91c81d10bab00c757805e40396f9eb26e715862a 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/share/testModuleVeto.py +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/share/testModuleVeto.py @@ -76,7 +76,7 @@ IOVDbSvc = Service("IOVDbSvc") from IOVDbSvc.CondDB import conddb IOVDbSvc.GlobalTag="OFLCOND-MC16-SDR-18" -### Use COOL database for SCT_ModuleVetoSvc +### Use COOL database for SCT_ModuleVetoTool useDB = True # False from SCT_ConditionsTools.SCT_ModuleVetoToolSetup import SCT_ModuleVetoToolSetup diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_ModuleVetoConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_ModuleVetoConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..95201b6af17024ac8692c04aa8726daa5f61c0f7 --- /dev/null +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_ModuleVetoConfig.py @@ -0,0 +1,33 @@ +"""Define methods to configure SCT_ModuleVetoTool + +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +""" +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator +from AthenaConfiguration.ComponentFactory import CompFactory +from AtlasGeoModel.GeoModelConfig import GeoModelCfg +from IOVDbSvc.IOVDbSvcConfig import addFolders + +def SCT_ModuleVetoCfg(flags, name="InDetSCT_ModuleVeto", **kwargs): + """Return a ComponentAccumulator configured for SCT_ModuleVetoTool + """ + acc = ComponentAccumulator() + + # For SCT_ID used in SCT_ModuleVetoTool + acc.merge(GeoModelCfg(flags)) + + if kwargs["useDB"]: + # Condition folder + acc.merge(addFolders(configFlags=flags, + folderstrings="/SCT/Manual/BadModules", + detDb="SCT_OFL", + className="AthenaAttributeList", + tag=kwargs["folderTag"])) + # Condition algorithm + acc.addCondAlgo(CompFactory.SCT_ModuleVetoCondAlg()) + + # Condition tool + toolArgs = {} + toolArgs["BadModuleIdentifiers"] = kwargs["BadModuleIdentifiers"] + acc.setPrivateTools(CompFactory.SCT_ModuleVetoTool(name=name+"Tool", **toolArgs)) + + return acc