From 89b75b2e0cedf8ce5dd68ccb3b2a13b5d1f6d6db Mon Sep 17 00:00:00 2001
From: Chengdong Fu <fucd@ihep.ac.cn>
Date: Tue, 29 Sep 2020 23:12:20 +0800
Subject: [PATCH] allow only one of GearSvc and GeoSvc

---
 Service/TrackSystemSvc/src/TrackSystemSvc.cpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/Service/TrackSystemSvc/src/TrackSystemSvc.cpp b/Service/TrackSystemSvc/src/TrackSystemSvc.cpp
index 78bb2779..3f1abc0d 100644
--- a/Service/TrackSystemSvc/src/TrackSystemSvc.cpp
+++ b/Service/TrackSystemSvc/src/TrackSystemSvc.cpp
@@ -17,18 +17,24 @@ TrackSystemSvc::~TrackSystemSvc(){
 
 MarlinTrk::IMarlinTrkSystem* TrackSystemSvc::getTrackSystem(){
   if(!m_trackSystem){
+    gear::GearMgr* mgr=0; 
     auto _gear = service<IGearSvc>("GearSvc");
     if ( !_gear ) {
-      error() << "Failed to find GearSvc ..." << endmsg;
-      return 0;
+      info() << "Failed to find GearSvc ..." << endmsg;
+    }
+    else{
+      mgr = _gear->getGearMgr();
     }
-    gear::GearMgr* mgr = _gear->getGearMgr();
 
     auto _geoSvc = service<IGeoSvc>("GeoSvc");
     if ( !_geoSvc ) {
-      error() << "Failed to find GeoSvc ..." << endmsg;
+      info() << "Failed to find GeoSvc ..." << endmsg;
+    }
+    if(mgr==0&&_geoSvc==0){
+      fatal() << "Both GearSvc and GeoSvc invalid!" << endmsg;
       return 0;
     }
+
     m_trackSystem = new MarlinTrk::MarlinKalTest( *mgr, _geoSvc ) ;
   }
   return m_trackSystem;
-- 
GitLab