Commit 449e1cd5 authored by Walter Lampl's avatar Walter Lampl
Browse files

Merge remote-tracking branch...

Merge remote-tracking branch 'robert/reduce_IOVRange_of_SiDetElementCollections_to_TrackingGeometry_IOVRange' into fromRobert
parents 1a27023a 0d004881
......@@ -20,6 +20,12 @@ def getNewConfigFlags():
ConfigFlags.GeoModel.AtlasVersion = jobproperties.Global.DetDescrVersion()
ConfigFlags.GeoModel.Align.Dynamic = InDetGeometryFlags.useDynamicAlignFolders()
# Concurrency
from AthenaCommon.ConcurrencyFlags import jobproperties as jp
ConfigFlags.Concurrency.NumProcs = jp.ConcurrencyFlags.NumProcs()
ConfigFlags.Concurrency.NumThreads = jp.ConcurrencyFlags.NumThreads()
# Let's build a map whose key is new flagname, and whose value is old flagname.
geom_flag_map = {}
# Geometry - InnerDetector
......
......@@ -132,6 +132,9 @@ if __name__=='__main__':
beginseq = cfg.getSequence("AthBeginSeq")
beginseq.Members.append(CompFactory.ForceIDConditionsAlg("ForceIDConditionsAlg"))
if len([_ for _ in cfg._conditionsAlgs if _.name=="MuonAlignmentCondAlg"]) > 0:
# create MuonDetectorCondAlg as pixel and SCT depend on it
from MuonConfig.MuonGeometryConfig import MuonDetectorCondAlgCf
cfg.merge(MuonDetectorCondAlgCfg(flags))
beginseq = cfg.getSequence("AthBeginSeq")
beginseq.Members.append(CompFactory.ForceMSConditionsAlg("ForceMSConditionsAlg"))
......
......@@ -88,8 +88,25 @@ if DetFlags.SCT_on() and ((not DetFlags.simulate.SCT_on()) or DetFlags.overlay.S
condSeq += SCT_AlignCondAlg(name = "SCT_AlignCondAlg",
UseDynamicAlignFolders = InDetGeometryFlags.useDynamicAlignFolders())
if not hasattr(condSeq, "SCT_DetectorElementCondAlg"):
# set up dependencies to limit IOV Range for athena MT
MuonMgrKey = ""
TRT_DetEltKey = ""
PixelAlignStore = ""
# To avoid setting up conditions algorithms in the right order, only set up for athena MT
from AthenaCommon.ConcurrencyFlags import jobproperties as jp
if jp.ConcurrencyFlags.NumThreads() > 0:
if DetFlags.Muon_on():
MuonMgrKey = "MuonDetectorManager"
if DetFlags.TRT_on():
TRT_DetEltKey = "TRT_DetElementContainer"
if DetFlags.pixel_on():
PixelAlignStore = "PixelAlignmentStore"
from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConf import SCT_DetectorElementCondAlg
condSeq += SCT_DetectorElementCondAlg(name = "SCT_DetectorElementCondAlg")
condSeq += SCT_DetectorElementCondAlg(name = "SCT_DetectorElementCondAlg",
MuonManagerKey = MuonMgrKey,
TRT_DetEltContKey = TRT_DetEltKey,
PixelAlignmentStore = PixelAlignStore)
if DetFlags.pixel_on() and ((not DetFlags.simulate.pixel_on()) or DetFlags.overlay.pixel_on()):
if not hasattr(condSeq, "PixelAlignCondAlg"):
......@@ -99,6 +116,22 @@ if DetFlags.pixel_on() and ((not DetFlags.simulate.pixel_on()) or DetFlags.overl
condSeq += PixelAlignCondAlg(name = "PixelAlignCondAlg",
UseDynamicAlignFolders = InDetGeometryFlags.useDynamicAlignFolders())
if not hasattr(condSeq, "PixelDetectorElementCondAlg"):
from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDetectorElementCondAlg
condSeq += PixelDetectorElementCondAlg(name = "PixelDetectorElementCondAlg")
# set up dependencies to limit IOV Range for athena MT
MuonMgrKey = ""
TRT_DetEltKey = ""
SCTAlignStore = ""
# To avoid setting up conditions algorithms in the right order, only set up for athena MT
from AthenaCommon.ConcurrencyFlags import jobproperties as jp
if jp.ConcurrencyFlags.NumThreads() > 0:
if DetFlags.Muon_on():
MuonMgrKey = "MuonDetectorManager"
if DetFlags.TRT_on():
TRT_DetEltKey = "TRT_DetElementContainer"
if DetFlags.SCT_on():
SCTAlignStore = "SCTAlignmentStore"
from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDetectorElementCondAlg
condSeq += PixelDetectorElementCondAlg(name = "PixelDetectorElementCondAlg",
MuonManagerKey = MuonMgrKey,
TRT_DetEltContKey = TRT_DetEltKey,
SCTAlignmentStore = SCTAlignStore)
\ No newline at end of file
......@@ -66,10 +66,28 @@ if DetFlags.SCT_on():
if not hasattr(condSeq, "SCT_AlignCondAlg"):
from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConf import SCT_AlignCondAlg
condSeq += SCT_AlignCondAlg(name = "SCT_AlignCondAlg",
UseDynamicAlignFolders = InDetGeometryFlags.useDynamicAlignFolders())
UseDynamicAlignFolders = InDetGeometryFlags.useDynamicAlignFolders()
)
if not hasattr(condSeq, "SCT_DetectorElementCondAlg"):
# set up dependencies to limit IOV Range for athena MT
MuonMgrKey = ""
TRT_DetEltKey = ""
PixelAlignStore = ""
# To avoid setting up conditions algorithms in the right order, only set up for athena MT
from AthenaCommon.ConcurrencyFlags import jobproperties as jp
if jp.ConcurrencyFlags.NumThreads() > 0:
if DetFlags.Muon_on():
MuonMgrKey = "MuonDetectorManager"
if DetFlags.TRT_on():
TRT_DetEltKey = "TRT_DetElementContainer"
if DetFlags.pixel_on():
PixelAlignStore = "PixelAlignmentStore"
from SCT_ConditionsAlgorithms.SCT_ConditionsAlgorithmsConf import SCT_DetectorElementCondAlg
condSeq += SCT_DetectorElementCondAlg(name = "SCT_DetectorElementCondAlg")
condSeq += SCT_DetectorElementCondAlg(name = "SCT_DetectorElementCondAlg",
MuonManagerKey = MuonMgrKey,
TRT_DetEltContKey = TRT_DetEltKey,
PixelAlignmentStore = PixelAlignStore)
if DetFlags.pixel_on():
if not hasattr(condSeq, "PixelAlignCondAlg"):
......@@ -77,6 +95,22 @@ if DetFlags.pixel_on():
condSeq += PixelAlignCondAlg(name = "PixelAlignCondAlg",
UseDynamicAlignFolders = InDetGeometryFlags.useDynamicAlignFolders())
if not hasattr(condSeq, "PixelDetectorElementCondAlg"):
from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDetectorElementCondAlg
condSeq += PixelDetectorElementCondAlg(name = "PixelDetectorElementCondAlg")
# set up dependencies to limit IOV Range for athena MT
MuonMgrKey = ""
TRT_DetEltKey = ""
SCTAlignStore = ""
# To avoid setting up conditions algorithms in the right order, only set up for athena MT
from AthenaCommon.ConcurrencyFlags import jobproperties as jp
if jp.ConcurrencyFlags.NumThreads() > 0:
if DetFlags.Muon_on():
MuonMgrKey = "MuonDetectorManager"
if DetFlags.TRT_on():
TRT_DetEltKey = "TRT_DetElementContainer"
if DetFlags.SCT_on():
SCTAlignStore = "SCTAlignmentStore"
from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDetectorElementCondAlg
condSeq += PixelDetectorElementCondAlg(name = "PixelDetectorElementCondAlg",
MuonManagerKey = MuonMgrKey,
TRT_DetEltContKey = TRT_DetEltKey,
SCTAlignmentStore = SCTAlignStore)
\ No newline at end of file
......@@ -11,7 +11,7 @@ find_package( CORAL COMPONENTS CoralBase )
atlas_add_component( PixelConditionsAlgorithms
src/*.h src/*.cxx src/components/*.cxx
INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS}
LINK_LIBRARIES ${CLHEP_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel AthenaPoolUtilities CommissionEvent DetDescrConditions GaudiKernel GeoModelUtilities GeoPrimitives Identifier InDetCondTools InDetIdentifier InDetReadoutGeometry PathResolver PixelConditionsData PixelReadoutGeometry StoreGateLib TrkGeometry TrkSurfaces )
LINK_LIBRARIES ${CLHEP_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel AthenaPoolUtilities CommissionEvent DetDescrConditions GaudiKernel GeoModelUtilities GeoPrimitives Identifier InDetCondTools InDetIdentifier InDetReadoutGeometry PathResolver PixelConditionsData PixelReadoutGeometry StoreGateLib TrkGeometry TrkSurfaces MuonReadoutGeometry TRT_ReadoutGeometry)
# Install files from the package:
atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
......@@ -444,6 +444,23 @@ def PixelDetectorElementCondAlgCfg(flags, name="PixelDetectorElementCondAlg", **
"""Return a ComponentAccumulator with configured PixelDetectorElementCondAlg"""
acc = ComponentAccumulator()
acc.merge(PixelAlignCondAlgCfg(flags))
# set up dependencies to limit IOV Range for athena MT
MuonMgrKey = ""
TRT_DetEltKey = ""
SCTAlignStoreKey = ""
# To avoid setting up conditions algorithms in the right order, only set up for athena MT
if flags.Concurrency.NumThreads > 0:
if flags.Detector.GeometryMuon:
MuonMgrKey = "MuonDetectorManager"
if flags.Detector.GeometryTRT:
TRT_DetEltKey = "TRT_DetElementContainer"
if flags.Detector.GeometryPixel:
SCTAlignStoreKey = "SCTAlignmentStore"
kwargs.setdefault("MuonManagerKey", MuonMgrKey)
kwargs.setdefault("TRT_DetEltContKey", TRT_DetEltKey)
kwargs.setdefault("SCTAlignmentStore", SCTAlignStoreKey)
kwargs.setdefault("PixelAlignmentStore", "PixelAlignmentStore")
kwargs.setdefault("WriteKey", "PixelDetectorElementCollection")
acc.addCondAlgo(CompFactory.PixelDetectorElementCondAlg(name, **kwargs))
......
......@@ -36,6 +36,17 @@ StatusCode PixelDetectorElementCondAlg::initialize()
// We need the detector manager
ATH_CHECK(detStore()->retrieve(m_detManager, m_detManagerName));
// used only if they exist
if(not m_trtDetElContKey.empty()){
ATH_CHECK(m_trtDetElContKey.initialize());
}
if(not m_muonManagerKey.empty()){
ATH_CHECK(m_muonManagerKey.initialize());
}
if(not m_SCT_readKey.empty()){
ATH_CHECK(m_SCT_readKey.initialize());
}
return StatusCode::SUCCESS;
}
......@@ -62,7 +73,6 @@ StatusCode PixelDetectorElementCondAlg::execute(const EventContext& ctx) const
// ____________ Construct new Write Cond Object ____________
std::unique_ptr<InDetDD::SiDetectorElementCollection> writeCdo{std::make_unique<InDetDD::SiDetectorElementCollection>()};
EventIDRange rangeW;
// ____________ Get Read Cond Object ____________
SG::ReadCondHandle<GeoAlignmentStore> readHandle{m_readKey, ctx};
......@@ -72,10 +82,32 @@ StatusCode PixelDetectorElementCondAlg::execute(const EventContext& ctx) const
return StatusCode::FAILURE;
}
// Define validity of the output cond object and record it
if (not readHandle.range(rangeW)) {
ATH_MSG_FATAL("Failed to retrieve validity range for " << readHandle.key());
return StatusCode::FAILURE;
// Add dependency for IOV range
writeHandle.addDependency(readHandle);
// Additional dependencies for IOV range to limit lifetime to TrackingGeometry lifetime
if (not m_muonManagerKey.empty()){
SG::ReadCondHandle<MuonGM::MuonDetectorManager> muonDependency{m_muonManagerKey, ctx};
if (*muonDependency != nullptr){
writeHandle.addDependency(muonDependency);
} else {
ATH_MSG_WARNING("MuonManager not found, ignoring Muons for PixelDetElement lifetime");
}
}
if (not m_trtDetElContKey.empty()){
SG::ReadCondHandle<InDetDD::TRT_DetElementContainer> trtDependency{m_trtDetElContKey, ctx};
if (*trtDependency != nullptr){
writeHandle.addDependency(trtDependency);
} else {
ATH_MSG_WARNING("TRT DetEls not found, ignoring TRT for PixelDetElement lifetime");
}
}
if (not m_SCT_readKey.empty()){
SG::ReadCondHandle<GeoAlignmentStore> sctDependency{m_SCT_readKey, ctx};
if (*sctDependency != nullptr){
writeHandle.addDependency(sctDependency);
} else {
ATH_MSG_WARNING("SCT AlignmentStore not found, ignoring SCT for PixelDetElement lifetime");
}
}
// ____________ Update writeCdo using readCdo ____________
......@@ -120,15 +152,14 @@ StatusCode PixelDetectorElementCondAlg::execute(const EventContext& ctx) const
// Record WriteCondHandle
const std::size_t size{writeCdo->size()};
if (writeHandle.record(rangeW, std::move(writeCdo)).isFailure()) {
if (writeHandle.record(std::move(writeCdo)).isFailure()) {
ATH_MSG_FATAL("Could not record " << writeHandle.key()
<< " with EventRange " << rangeW
<< " with EventRange " << writeHandle.getRange()
<< " into Conditions Store");
return StatusCode::FAILURE;
}
ATH_MSG_INFO("recorded new CDO " << writeHandle.key() << " with range " << rangeW
ATH_MSG_INFO("recorded new CDO " << writeHandle.key() << " with range " << writeHandle.getRange()
<< " with size of " << size << " into Conditions Store");
return StatusCode::SUCCESS;
}
......@@ -17,6 +17,10 @@
#include "GaudiKernel/ICondSvc.h"
//dependencies to limit lifetime of SiDetElColl for TrackingGeometry
#include "MuonReadoutGeometry/MuonDetectorManager.h"
#include "TRT_ReadoutGeometry/TRT_DetElementContainer.h"
namespace InDetDD {
class PixelDetectorManager;
}
......@@ -39,6 +43,15 @@ class PixelDetectorElementCondAlg : public AthReentrantAlgorithm
SG::WriteCondHandleKey<InDetDD::SiDetectorElementCollection> m_writeKey
{this, "WriteKey", "PixelDetectorElementCollection", "Key of output SiDetectorElementCollection for Pixel"};
// The DetElement Collection must have a life time <= the Tracking Geometry due to DetElt-> Surface -> Layer connection,
// which is why we intersect with the IOV Ranges from the TG's dependencies.
SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_muonManagerKey
{this, "MuonManagerKey", "MuonDetectorManager", "MuonManager ReadKey for IOV Range intersection"};
SG::ReadCondHandleKey<InDetDD::TRT_DetElementContainer> m_trtDetElContKey
{this, "TRT_DetEltContKey", "TRT_DetElementContainer", "TRT ReadKey for IOV Range intersection"};
SG::ReadCondHandleKey<GeoAlignmentStore> m_SCT_readKey
{this, "SCTAlignmentStore", "SCTAlignmentStore", "SCTAlignmentStore ReadKey for IOV Range intersection "};
ServiceHandle<ICondSvc> m_condSvc{this, "CondSvc", "CondSvc"};
StringProperty m_detManagerName{this, "DetManagerName", "Pixel", "Name of the DeterctorManager to retrieve"};
......
......@@ -11,7 +11,7 @@ atlas_add_component( SCT_ConditionsAlgorithms
src/*.cxx
src/components/*.cxx
INCLUDE_DIRS ${Boost_INCLUDE_DIRS}
LINK_LIBRARIES ${Boost_LIBRARIES} AthenaBaseComps StoreGateLib Identifier DetDescrConditions GeoModelUtilities GeoPrimitives GaudiKernel SCT_ConditionsData SCT_CablingLib AthenaPoolUtilities InDetConditionsSummaryService InDetIdentifier InDetReadoutGeometry SCT_ReadoutGeometry TrkGeometry TrkSurfaces SCT_ConditionsToolsLib )
LINK_LIBRARIES ${Boost_LIBRARIES} AthenaBaseComps StoreGateLib Identifier DetDescrConditions GeoModelUtilities GeoPrimitives GaudiKernel SCT_ConditionsData SCT_CablingLib AthenaPoolUtilities InDetConditionsSummaryService InDetIdentifier InDetReadoutGeometry SCT_ReadoutGeometry TrkGeometry TrkSurfaces SCT_ConditionsToolsLib MuonReadoutGeometry TRT_ReadoutGeometry)
atlas_add_test( TestCalibChipRead
SCRIPT athena.py --threads=5 SCT_ConditionsAlgorithms/testCalibChipRead.py
......
......@@ -35,6 +35,17 @@ StatusCode SCT_DetectorElementCondAlg::initialize()
ATH_CHECK(m_condSvc->regHandle(this, m_writeKey));
ATH_CHECK(detStore()->retrieve(m_detManager, m_detManagerName));
// used only if they exist
if(not m_trtDetElContKey.empty()){
ATH_CHECK(m_trtDetElContKey.initialize());
}
if(not m_muonManagerKey.empty()){
ATH_CHECK(m_muonManagerKey.initialize());
}
if(not m_pixelReadKey.empty()){
ATH_CHECK(m_pixelReadKey.initialize());
}
return StatusCode::SUCCESS;
}
......@@ -72,6 +83,31 @@ StatusCode SCT_DetectorElementCondAlg::execute(const EventContext& ctx) const
// Add dependency
writeHandle.addDependency(readHandle);
// Additional dependencies for IOV range to limit lifetime to TrackingGeometry lifetime
if (not m_muonManagerKey.empty()){
SG::ReadCondHandle<MuonGM::MuonDetectorManager> muonDependency{m_muonManagerKey, ctx};
if (*muonDependency != nullptr){
writeHandle.addDependency(muonDependency);
} else {
ATH_MSG_WARNING("MuonManager not found, ignoring Muons for PixelDetElement lifetime");
}
}
if (not m_trtDetElContKey.empty()){
SG::ReadCondHandle<InDetDD::TRT_DetElementContainer> trtDependency{m_trtDetElContKey, ctx};
if (*trtDependency != nullptr){
writeHandle.addDependency(trtDependency);
} else {
ATH_MSG_WARNING("TRT DetEls not found, ignoring TRT for PixelDetElement lifetime");
}
}
if (not m_pixelReadKey.empty()){
SG::ReadCondHandle<GeoAlignmentStore> pixelDependency{m_pixelReadKey, ctx};
if (*pixelDependency != nullptr){
writeHandle.addDependency(pixelDependency);
} else {
ATH_MSG_WARNING("Pixel AlignmentStore not found, ignoring Pixels for SCT_DetElement lifetime");
}
}
// ____________ Update writeCdo using readCdo ____________
std::map<const InDetDD::SiDetectorElement*, const InDetDD::SiDetectorElement*> oldToNewMap;
......
......@@ -17,6 +17,10 @@
#include "GaudiKernel/ICondSvc.h"
//dependencies to limit lifetime of SiDetElColl for TrackingGeometry
#include "MuonReadoutGeometry/MuonDetectorManager.h"
#include "TRT_ReadoutGeometry/TRT_DetElementContainer.h"
namespace InDetDD {
class SCT_DetectorManager;
}
......@@ -37,6 +41,15 @@ class SCT_DetectorElementCondAlg : public AthReentrantAlgorithm
SG::ReadCondHandleKey<GeoAlignmentStore> m_readKey;
SG::WriteCondHandleKey<InDetDD::SiDetectorElementCollection> m_writeKey{this, "WriteKey", "SCT_DetectorElementCollection", "Key of output SiDetectorElementCollection for SCT"};
// The DetElement Collection must have a life time <= the Tracking Geometry due to DetElt-> Surface -> Layer connection,
// which is why we intersect with the IOV Ranges from the TG's dependencies.
SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_muonManagerKey
{this, "MuonManagerKey", "MuonDetectorManager", "MuonManager ReadKey for IOV Range intersection"};
SG::ReadCondHandleKey<InDetDD::TRT_DetElementContainer> m_trtDetElContKey
{this, "TRT_DetEltContKey", "TRT_DetElementContainer", "TRT ReadKey for IOV Range intersection"};
SG::ReadCondHandleKey<GeoAlignmentStore> m_pixelReadKey
{this, "PixelAlignmentStore", "PixelAlignmentStore", "PixelAlignmentStore ReadKey for IOV Range intersection"};
ServiceHandle<ICondSvc> m_condSvc{this, "CondSvc", "CondSvc"};
std::string m_detManagerName;
const InDetDD::SCT_DetectorManager* m_detManager{nullptr};
......
......@@ -36,11 +36,6 @@ def PixelGeometryCfg( flags ):
acc.merge(addFoldersSplitOnline(flags,"INDET","/Indet/Onl/Align","/Indet/Align"))
if flags.Common.Project != "AthSimulation": # Protection for AthSimulation builds
if flags.Common.ProductionStep != ProductionStep.Simulation or flags.Overlay.DataOverlay:
PixelAlignCondAlg=CompFactory.PixelAlignCondAlg
pixelAlignCondAlg = PixelAlignCondAlg(name = "PixelAlignCondAlg",
UseDynamicAlignFolders = flags.GeoModel.Align.Dynamic)
acc.addCondAlgo(pixelAlignCondAlg)
PixelDetectorElementCondAlg=CompFactory.PixelDetectorElementCondAlg
pixelDetectorElementCondAlg = PixelDetectorElementCondAlg(name = "PixelDetectorElementCondAlg")
acc.addCondAlgo(pixelDetectorElementCondAlg)
from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDetectorElementCondAlgCfg
acc.merge(PixelDetectorElementCondAlgCfg(flags))
return acc
......@@ -3,6 +3,7 @@
from AthenaConfiguration.ComponentFactory import CompFactory
from AthenaConfiguration.Enums import ProductionStep
from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
def SCT_GeometryCfg( flags ):
from AtlasGeoModel.GeoModelConfig import GeoModelCfg
......@@ -31,7 +32,31 @@ def SCT_GeometryCfg( flags ):
sctAlignCondAlg = SCT_AlignCondAlg(name = "SCT_AlignCondAlg",
UseDynamicAlignFolders = flags.GeoModel.Align.Dynamic)
acc.addCondAlgo(sctAlignCondAlg)
SCT_DetectorElementCondAlg=CompFactory.SCT_DetectorElementCondAlg
sctDetectorElementCondAlg = SCT_DetectorElementCondAlg(name = "SCT_DetectorElementCondAlg")
acc.addCondAlgo(sctDetectorElementCondAlg)
acc.merge(SCT_DetectorElementCondAlgCfg(flags))
return acc
def SCT_DetectorElementCondAlgCfg(flags, name = "SCT_DetectorElementCondAlg", **kwargs):
# set up dependencies to limit IOV Range for athena MT
MuonMgrKey = ""
TRT_DetEltKey = ""
PixelAlignStoreKey = ""
# To avoid setting up conditions algorithms in the right order, only set up for athena MT
if flags.Concurrency.NumThreads > 0:
if flags.Detector.GeometryMuon:
MuonMgrKey = "MuonDetectorManager"
if flags.Detector.GeometryTRT:
TRT_DetEltKey = "TRT_DetElementContainer"
if flags.Detector.GeometryPixel:
PixelAlignStoreKey = "PixelAlignmentStore"
kwargs.setdefault("MuonManagerKey", MuonMgrKey)
kwargs.setdefault("TRT_DetEltContKey", TRT_DetEltKey)
kwargs.setdefault("PixelAlignmentStore", PixelAlignStoreKey)
SCT_DetectorElementCondAlg=CompFactory.SCT_DetectorElementCondAlg
sctDetectorElementCondAlg = SCT_DetectorElementCondAlg(name, **kwargs)
acc = ComponentAccumulator()
acc.addCondAlgo(sctDetectorElementCondAlg)
return acc
\ No newline at end of file
......@@ -49,16 +49,17 @@ def tmpSetupTrackServices(inputFlags):
PixelAlignCondAlg=CompFactory.PixelAlignCondAlg
result.addCondAlgo(PixelAlignCondAlg(name = "PixelAlignCondAlg",UseDynamicAlignFolders = inputFlags.GeoModel.Align.Dynamic))
PixelDetectorElementCondAlg=CompFactory.PixelDetectorElementCondAlg
result.addCondAlgo(PixelDetectorElementCondAlg(name = "PixelDetectorElementCondAlg"))
from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDetectorElementCondAlgCfg
result.merge(PixelDetectorElementCondAlgCfg(inputFlags))
#Setup SCT conditions
SCT_AlignCondAlg=CompFactory.SCT_AlignCondAlg
result.addCondAlgo(SCT_AlignCondAlg(name = "SCT_AlignCondAlg",UseDynamicAlignFolders = inputFlags.GeoModel.Align.Dynamic))
SCT_DetectorElementCondAlg=CompFactory.SCT_DetectorElementCondAlg
result.addCondAlgo(SCT_DetectorElementCondAlg(name = "SCT_DetectorElementCondAlg"))
from SCT_GeoModel.SCT_GeoModelConfig import SCT_DetectorElementCondAlgCfg
result.merge(SCT_DetectorElementCondAlgCfg(inputFlags))
GeometryDBSvc=CompFactory.GeometryDBSvc
result.addService(GeometryDBSvc("InDetGeometryDBSvc"))
......
......@@ -59,16 +59,16 @@ def PFCfg(inputFlags,**kwargs):
#Setup Pixel conditions
PixelAlignCondAlg=CompFactory.PixelAlignCondAlg
result.addCondAlgo(PixelAlignCondAlg(name = "PixelAlignCondAlg",UseDynamicAlignFolders = inputFlags.GeoModel.Align.Dynamic))
PixelDetectorElementCondAlg=CompFactory.PixelDetectorElementCondAlg
result.addCondAlgo(PixelDetectorElementCondAlg(name = "PixelDetectorElementCondAlg"))
from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDetectorElementCondAlgCfg
result.merge(PixelDetectorElementCondAlgCfg(inputFlags))
#Setup SCT conditions
SCT_AlignCondAlg=CompFactory.SCT_AlignCondAlg
result.addCondAlgo(SCT_AlignCondAlg(name = "SCT_AlignCondAlg",UseDynamicAlignFolders = inputFlags.GeoModel.Align.Dynamic))
SCT_DetectorElementCondAlg=CompFactory.SCT_DetectorElementCondAlg
result.addCondAlgo(SCT_DetectorElementCondAlg(name = "SCT_DetectorElementCondAlg"))
from SCT_GeoModel.SCT_GeoModelConfig import SCT_DetectorElementCondAlgCfg
result.merge(SCT_DetectorElementCondAlgCfg(inputFlags))
GeometryDBSvc=CompFactory.GeometryDBSvc
result.addService(GeometryDBSvc("InDetGeometryDBSvc"))
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment