diff --git a/Service/TrackSystemSvc/src/TrackSystemSvc.cpp b/Service/TrackSystemSvc/src/TrackSystemSvc.cpp index 78bb2779324d89edf505492d67e566667dcf414e..3f1abc0d3489f5a01c883afd613131dcf61f4433 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;