From 330841ce28be3f1820bf0c9f0467da8afe083091 Mon Sep 17 00:00:00 2001 From: Andre Sailer Date: Fri, 8 Sep 2023 13:22:21 +0200 Subject: [PATCH] TrackingCellIDEncodingSvc: add GeoSvcName parameter to allow picking the correct geosvc --- doc/starterkit/k4MarlinWrapperCLIC/Readme.md | 2 ++ .../k4MarlinWrapper/TrackingCellIDEncodingSvc.h | 8 +++++--- .../src/components/TrackingCellIDEncodingSvc.cpp | 6 +++++- test/gaudi_opts/geoTest_cld.py | 1 + 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/doc/starterkit/k4MarlinWrapperCLIC/Readme.md b/doc/starterkit/k4MarlinWrapperCLIC/Readme.md index 46a2a340..76d7a9b1 100644 --- a/doc/starterkit/k4MarlinWrapperCLIC/Readme.md +++ b/doc/starterkit/k4MarlinWrapperCLIC/Readme.md @@ -165,6 +165,7 @@ The ``MarlinDD4hep::InitializeDD4hep`` processor can be replaced by the ``k4SimG For example: ```python +from Configurables import GeoSvc, TrackingCellIDEncodingSvc svcList = [] geoservice = GeoSvc("GeoSvc") geoservice.detectors = [os.environ["K4GEO"]+"/CLIC/compact/CLIC_o3_v15/CLIC_o3_v15.xml"] @@ -174,6 +175,7 @@ svcList.append(geoservice) cellIDSvc = TrackingCellIDEncodingSvc("CellIDSvc") cellIDSvc.EncodingStringParameterName = "GlobalTrackerReadoutID" +cellIDSvc.GeoSvcName = geoservice.name() cellIDSvc.OutputLevel = INFO svcList.append(cellIDSvc) ``` diff --git a/k4MarlinWrapper/k4MarlinWrapper/TrackingCellIDEncodingSvc.h b/k4MarlinWrapper/k4MarlinWrapper/TrackingCellIDEncodingSvc.h index 3b0e52c3..bd41d9ae 100644 --- a/k4MarlinWrapper/k4MarlinWrapper/TrackingCellIDEncodingSvc.h +++ b/k4MarlinWrapper/k4MarlinWrapper/TrackingCellIDEncodingSvc.h @@ -32,15 +32,17 @@ class TrackingCellIDEncodingSvc : public extends { public: TrackingCellIDEncodingSvc(const std::string& name, ISvcLocator* svc); - virtual ~TrackingCellIDEncodingSvc(); - virtual StatusCode initialize() final; - virtual StatusCode finalize() final; + ~TrackingCellIDEncodingSvc(); + StatusCode initialize() final; + StatusCode finalize() final; /// Property to configure which DD4hep constant to use for the encodingString Gaudi::Property m_encodingStringVariable{ this, "EncodingStringParameterName", "GlobalTrackerReadoutID", "The name of the DD4hep constant that contains the Encoding string for tracking detectors"}; + Gaudi::Property m_geoSvcName{this, "GeoSvcName", "GeoSvc", "The name of the GeoSvc instance"}; + private: SmartIF m_geoSvc; }; diff --git a/k4MarlinWrapper/src/components/TrackingCellIDEncodingSvc.cpp b/k4MarlinWrapper/src/components/TrackingCellIDEncodingSvc.cpp index 08837df0..46f42c04 100644 --- a/k4MarlinWrapper/src/components/TrackingCellIDEncodingSvc.cpp +++ b/k4MarlinWrapper/src/components/TrackingCellIDEncodingSvc.cpp @@ -26,12 +26,16 @@ DECLARE_COMPONENT(TrackingCellIDEncodingSvc); TrackingCellIDEncodingSvc::TrackingCellIDEncodingSvc(const std::string& name, ISvcLocator* svc) - : base_class(name, svc), m_geoSvc(svc->service("GeoSvc")) {} + : base_class(name, svc) {} TrackingCellIDEncodingSvc::~TrackingCellIDEncodingSvc() {} StatusCode TrackingCellIDEncodingSvc::initialize() { try { + info() << "Looking for GeoSvc with the name" << m_geoSvcName.value() << endmsg; + + m_geoSvc = serviceLocator()->service(m_geoSvcName); + info() << "Taking the encoding string as specified in dd4hep constant: " << m_encodingStringVariable.value() << endmsg; diff --git a/test/gaudi_opts/geoTest_cld.py b/test/gaudi_opts/geoTest_cld.py index 60efec27..73b07157 100644 --- a/test/gaudi_opts/geoTest_cld.py +++ b/test/gaudi_opts/geoTest_cld.py @@ -30,6 +30,7 @@ cellIDSvc = TrackingCellIDEncodingSvc("CellIDSvc") cellIDSvc.EncodingStringParameterName = "GlobalTrackerReadoutID" +cellIDSvc.GeoSvcName = geoservice.name() cellIDSvc.OutputLevel = DEBUG svcList.append(cellIDSvc)