From c121d7e75ed3d06874402e198c60c16a1d0100d4 Mon Sep 17 00:00:00 2001 From: Susumu Oda <susumu.oda@cern.ch> Date: Mon, 12 Oct 2020 14:57:40 +0000 Subject: [PATCH] Add SCTSiPropertiesTestAlgConfig.py and run it in unit test. --- .../python/SCT_SiliconConditionsConfig.py | 4 +- .../SiPropertiesTool/CMakeLists.txt | 5 ++- .../python/SCTSiPropertiesTestAlgConfig.py | 42 +++++++++++++++++++ .../python/SCT_SiPropertiesConfig.py | 21 +++++++++- 4 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 InnerDetector/InDetConditions/SiPropertiesTool/python/SCTSiPropertiesTestAlgConfig.py diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_SiliconConditionsConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_SiliconConditionsConfig.py index ae125aaf76e..f021bdfebea 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_SiliconConditionsConfig.py +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_SiliconConditionsConfig.py @@ -1,9 +1,10 @@ """Define methods to configure SiPropertiesTool -Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +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 SCT_SiliconHVCondAlg=CompFactory.SCT_SiliconHVCondAlg SCT_SiliconTempCondAlg=CompFactory.SCT_SiliconTempCondAlg SCT_SiliconConditionsTool=CompFactory.SCT_SiliconConditionsTool @@ -20,6 +21,7 @@ def SCT_SiliconConditionsCfg(flags, name="SCT_Silicon", **kwargs): DCSConditionsTool may be provided in kwargs """ acc = ComponentAccumulator() + acc.merge(GeoModelCfg(flags)) # For SCT_ID used in SCT_SiliconConditionsTool CondArgs = {} DCSConditionsTool = kwargs.get("DCSConditionsTool") if DCSConditionsTool: diff --git a/InnerDetector/InDetConditions/SiPropertiesTool/CMakeLists.txt b/InnerDetector/InDetConditions/SiPropertiesTool/CMakeLists.txt index 4c84b1ae0c4..f516555cc72 100644 --- a/InnerDetector/InDetConditions/SiPropertiesTool/CMakeLists.txt +++ b/InnerDetector/InDetConditions/SiPropertiesTool/CMakeLists.txt @@ -43,6 +43,10 @@ atlas_add_test( TestSCTProperties PROPERTIES TIMEOUT 300 ENVIRONMENT THREADS=5 ) +atlas_add_test( TestSCTPropertiesNewConf + SCRIPT python -m SiPropertiesTool.SCTSiPropertiesTestAlgConfig + PROPERTIES TIMEOUT 300 ) + atlas_add_test( SiPropertiesConfig_test SCRIPT test/SiPropertiesConfig_test.py PROPERTIES TIMEOUT 300 ) @@ -50,4 +54,3 @@ atlas_add_test( SiPropertiesConfig_test # Install files from the package: atlas_install_python_modules( python/*.py ) atlas_install_joboptions( share/*.py ) - diff --git a/InnerDetector/InDetConditions/SiPropertiesTool/python/SCTSiPropertiesTestAlgConfig.py b/InnerDetector/InDetConditions/SiPropertiesTool/python/SCTSiPropertiesTestAlgConfig.py new file mode 100644 index 00000000000..953b4635708 --- /dev/null +++ b/InnerDetector/InDetConditions/SiPropertiesTool/python/SCTSiPropertiesTestAlgConfig.py @@ -0,0 +1,42 @@ +"""Define method to configure and test SCTSiPropertiesTestAlg + +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +""" +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator +from AthenaConfiguration.ComponentFactory import CompFactory + +def SCTSiPropertiesTestAlgCfg(flags, name="SCTSiPropertiesTestAlg", **kwargs): + """Return a configured SCTSiPropertiesTestAlg""" + acc = ComponentAccumulator() + from SiPropertiesTool.SCT_SiPropertiesConfig import SCT_SiPropertiesCfg + kwargs.setdefault("SCTPropertiesTool", acc.popToolsAndMerge(SCT_SiPropertiesCfg(flags))) + acc.addEventAlgo(CompFactory.SCTSiPropertiesTestAlg(**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)) + + cfg.merge(SCTSiPropertiesTestAlgCfg(ConfigFlags)) + + cfg.run(maxEvents=20) diff --git a/InnerDetector/InDetConditions/SiPropertiesTool/python/SCT_SiPropertiesConfig.py b/InnerDetector/InDetConditions/SiPropertiesTool/python/SCT_SiPropertiesConfig.py index e14c3368280..f8324a83f0e 100644 --- a/InnerDetector/InDetConditions/SiPropertiesTool/python/SCT_SiPropertiesConfig.py +++ b/InnerDetector/InDetConditions/SiPropertiesTool/python/SCT_SiPropertiesConfig.py @@ -1,9 +1,12 @@ """Define methods to configure SCT SiProperties -Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory +from SCT_ConditionsTools.SCT_DCSConditionsConfig import SCT_DCSConditionsCfg +from SCT_ConditionsTools.SCT_SiliconConditionsConfig import SCT_SiliconConditionsCfg +from SCT_GeoModel.SCT_GeoModelConfig import SCT_GeometryCfg SiPropertiesTool=CompFactory.SiPropertiesTool SCTSiPropertiesCondAlg=CompFactory.SCTSiPropertiesCondAlg @@ -19,6 +22,22 @@ def SCT_SiPropertiesCfg(flags, name="SCTSiPropertiesCondAlg", **kwargs): SiConditionsTool and/or SiPropertiesTool may be provided in kwargs """ acc = ComponentAccumulator() + + acc.merge(SCT_GeometryCfg(flags)) # For SCT_DetectorElementCollection used in SCTSiPropertiesCondAlg + + DCSkwargs = {} + # For HLT + if flags.Common.isOnline and not flags.Input.isMC: + dcs_folder = "/SCT/HLT/DCS" + DCSkwargs["dbInstance"] = "SCT" + DCSkwargs["hvFolder"] = dcs_folder + "/HV" + DCSkwargs["tempFolder"] = dcs_folder + "/MODTEMP" + DCSkwargs["stateFolder"] = dcs_folder + "/CHANSTAT" + DCSAcc = SCT_DCSConditionsCfg(flags, **DCSkwargs) + SCAcc = SCT_SiliconConditionsCfg(flags, DCSConditionsTool=DCSAcc.popPrivateTools()) + acc.merge(DCSAcc) + acc.merge(SCAcc) + tool = kwargs.get("SiPropertiesTool", SCT_SiPropertiesToolCfg(flags)) alg = SCTSiPropertiesCondAlg(name, **kwargs) acc.addCondAlgo(alg) -- GitLab