From ee0ed18bb87ac6a40110a96370f9620db46e350c Mon Sep 17 00:00:00 2001
From: Bhupesh Dixit <bhupesh.dixit@cern.ch>
Date: Tue, 27 Feb 2024 18:21:31 +0100
Subject: [PATCH] ITk strip veto implementation based on the values from the DB

---
 .../python/SCT_ModuleVetoTestAlgConfig.py     | 22 +++++++++----------
 .../src/SCT_ModuleVetoCondAlg.cxx             |  6 ++---
 .../src/SCT_ModuleVetoCondAlg.h               |  4 ++--
 .../python/ITkStripConditionsToolsConfig.py   |  9 ++++----
 4 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ModuleVetoTestAlgConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ModuleVetoTestAlgConfig.py
index 1c6dac6ff960..ed452d3581d3 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ModuleVetoTestAlgConfig.py
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/python/SCT_ModuleVetoTestAlgConfig.py
@@ -1,12 +1,12 @@
-"""Define method to configure and test SCT_ModuleVetoTestAlg
+"""Define method to configure and test ITkStrip_ModuleVetoTestAlg
 
 Copyright (C) 2002-2023 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"""
+def ITkStripVetoTestAlgCfg(flags, name="ITkStripModuleVetoTestAlg", **kwargs):
+    """Return a configured ITkStripModuleVetoTestAlg"""
     acc = ComponentAccumulator()
     from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_ModuleVetoCfg
     acc.addEventAlgo(CompFactory.SCT_ModuleVetoTestAlg(name,
@@ -23,12 +23,12 @@ if __name__=="__main__":
     flags.Input.Files = []
     flags.Input.isMC = True
     flags.Input.ProjectName = "mc16_13TeV"
-    flags.Input.RunNumbers = [300000] # MC16c 2017 run number
-    flags.Input.TimeStamps = [1500000000] # MC16c 2017 time stamp
-    flags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-18"
+    flags.Input.RunNumbers = [350200] # MC23 PhaseII mu=200 run number
+    flags.Input.TimeStamps = [1625130000] # MC23 PhaseII mu=200 time stamp
+    flags.IOVDb.GlobalTag = "OFLP200"
     from AthenaConfiguration.TestDefaults import defaultGeometryTags
-    flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
-    flags.Detector.GeometrySCT = True
+    flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN4
+    flags.Detector.GeometryITkStrip = True
     flags.lock()
 
     from AthenaConfiguration.MainServicesConfig import MainServicesCfg
@@ -40,13 +40,13 @@ if __name__=="__main__":
     kwargs = {}
 
     ### Use COOL database for SCT_ModuleVetoTool
-    kwargs["useDB"] = True # False
+    kwargs["useDB"] = False
     if kwargs["useDB"]:
-        kwargs["folderTag"] = "SCTManualBadModules-000-00"
+        kwargs["folderStrings"] = "/ITk/Manual/BadModules"
         kwargs["BadModuleIdentifiers"] = ["database"]
     else:
         kwargs["BadModuleIdentifiers"] = ["1", "2"]
 
-    cfg.merge(SCT_StripVetoTestAlgCfg(flags, **kwargs))
+    cfg.merge(ITkStripVetoTestAlgCfg(flags, **kwargs))
 
     cfg.run(maxEvents=20)
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.cxx b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.cxx
index e1539046802c..35e79e6177a4 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.cxx
@@ -65,10 +65,10 @@ StatusCode SCT_ModuleVetoCondAlg::execute(const EventContext& ctx) const {
 
   // Read bad wafer info
   const std::string &badModuleString{(*readCdo)["ModuleList"].data<std::string>()};
-  std::vector<int> v{string2Vector<int>(badModuleString)};
-  int numberInDb{static_cast<int>(v.size())};
+  std::vector<unsigned long long> v{string2Vector<unsigned long long>(badModuleString)};
+  unsigned long long numberInDb{static_cast<unsigned long long>(v.size())};
   ATH_MSG_INFO(numberInDb << " elements were declared bad in the database.");
-  for (const int badWaferId: v) {
+  for (const unsigned long long badWaferId: v) {
     writeCdo->setBadWaferId(Identifier{badWaferId});
   }
 
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.h
index e66eeb03ed03..f1f035c9b6d0 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ModuleVetoCondAlg.h
@@ -27,8 +27,8 @@ class SCT_ModuleVetoCondAlg : public AthReentrantAlgorithm
   virtual bool isReEntrant() const override final { return false; }
 
  private:
-  SG::ReadCondHandleKey<AthenaAttributeList> m_readKey{this, "ReadKey", "/SCT/Manual/BadModules", "Key of input (raw) bad module conditions folder"};
-  SG::WriteCondHandleKey<SCT_ModuleVetoCondData> m_writeKey{this, "WriteKey", "SCT_ModuleVetoCondData", "Key of output (derived) bad module conditions data"};
+  SG::ReadCondHandleKey<AthenaAttributeList> m_readKey{this, "ReadKey", "/ITk/Manual/BadModules", "Key of input (raw) bad module conditions folder"};
+  SG::WriteCondHandleKey<SCT_ModuleVetoCondData> m_writeKey{this, "WriteKey", "ITkStrip_ModuleVetoCondData", "Key of output (derived) bad module conditions data"};
 };
 
 #endif // SCT_MODULEVETOCONDALG
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/python/ITkStripConditionsToolsConfig.py b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/ITkStripConditionsToolsConfig.py
index b8338e0d83bc..ae9bf0bba66f 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/python/ITkStripConditionsToolsConfig.py
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/python/ITkStripConditionsToolsConfig.py
@@ -102,14 +102,15 @@ def ITkStripModuleVetoCfg(flags, name="ITkStripModuleVeto", **kwargs):
     
     kwargs.setdefault("useDB", False)
     kwargs.setdefault("BadModuleIdentifiers", [])
-    
+
     if kwargs["useDB"]:
+        kwargs.setdefault("BadModuleIdentifiers", ["database"])
         # Condition folder
         acc.merge(addFolders(flags,
-                             folderStrings="/SCT/Manual/BadModules",
-                             detDb="SCT_OFL",
+                             folderStrings="/ITk/Manual/BadModules",
+                             detDb="OFLP200",
                              className="AthenaAttributeList",
-                             tag=kwargs["folderTag"]))
+                             tag=kwargs["folderTag"]))                 
         # Condition algorithm
         acc.addCondAlgo(CompFactory.SCT_ModuleVetoCondAlg())
 
-- 
GitLab