diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt index a60641d1e33ec7f08501371ef5184fb0c89abf3f..a1fd60f379afcf1eb57fb07908d647421cb3841f 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt @@ -96,6 +96,9 @@ atlas_add_test( TestMajorityNewConf atlas_add_test( TestMonReadNewConf SCRIPT python -m SCT_ConditionsAlgorithms.SCT_MonitorConditionsTestAlgConfig PROPERTIES TIMEOUT 600 ) +atlas_add_test( TestRodVetoNewConf + SCRIPT python -m SCT_ConditionsAlgorithms.SCT_RODVetoTestAlgConfig + PROPERTIES TIMEOUT 600 ) atlas_add_test( TestStripVetoNewConf SCRIPT python -m SCT_ConditionsAlgorithms.SCT_StripVetoTestAlgConfig PROPERTIES TIMEOUT 600 ) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_RODVetoTestAlgConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_RODVetoTestAlgConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..7416073803c19eddbd0d027ceb01ad909601c564 --- /dev/null +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_RODVetoTestAlgConfig.py @@ -0,0 +1,45 @@ +"""Define method to configure and test SCT_RODVetoTestAlg + +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +""" +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator +from AthenaConfiguration.ComponentFactory import CompFactory + +def SCT_RODVetoTestAlgCfg(flags, name="SCT_RODVetoTestAlg", **kwargs): + """Return a configured SCT_RODVetoTestAlg""" + acc = ComponentAccumulator() + from SCT_ConditionsTools.SCT_RODVetoConfig import SCT_RODVetoCfg + algArgs = {} + algArgs["SCT_RODVetoTool"] = acc.popToolsAndMerge(SCT_RODVetoCfg(flags, **kwargs)) + acc.addEventAlgo(CompFactory.SCT_RODVetoTestAlg(**algArgs)) + 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) + 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 = {} + kwargs["BadRODIds"] = [0x240100, 0x240030] # RODs to be vetoed + cfg.merge(SCT_RODVetoTestAlgCfg(ConfigFlags, **kwargs)) + + cfg.run(maxEvents=20) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_RODVetoConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_RODVetoConfig.py new file mode 100644 index 0000000000000000000000000000000000000000..86b62b2f39eaca55cb76aea6460750b8b6773e39 --- /dev/null +++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/SCT_RODVetoConfig.py @@ -0,0 +1,29 @@ +"""Define methods to configure SCT_RODVeto + +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 InDetConfig.InDetRecToolConfig import SCT_CablingToolCfg + +def SCT_RODVetoCfg(flags, name="SCT_RODVeto", **kwargs): + """Configure necessary condition folders, condition algorithms + for SCT_DCSConditionsTool and return it. + """ + acc = ComponentAccumulator() + + # For SCT_ID used in SCT_RODVetoCondAlg and SCT_RODVetoTool + acc.merge(GeoModelCfg(flags)) + + # For SCT_CablingTool used in SCT_RODVetoCondAlg + kwargs.setdefault("SCT_CablingTool", acc.popToolsAndMerge(SCT_CablingToolCfg(flags))) + + # Condition algorithm (actually event algorithm) + alg = CompFactory.SCT_RODVetoCondAlg(name=name+"CondAlg", **kwargs) + acc.addEventAlgo(alg) + + # Condition tool + acc.setPrivateTools(CompFactory.SCT_RODVetoTool(name=name+"Tool")) + + return acc