Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-06-30 07:55:49

0001 // SPDX-License-Identifier: LGPL-3.0-or-later
0002 // Copyright (C) 2022 Whitney Armstrong, Wouter Deconinck, Dmitry Romanov
0003 
0004 #pragma once
0005 
0006 #include <DD4hep/Detector.h>
0007 #include <JANA/JApplicationFwd.h>
0008 #include <JANA/JServiceFwd.h>
0009 #include <JANA/Services/JServiceLocator.h>
0010 #include <spdlog/logger.h>
0011 #include <memory>
0012 #include <mutex>
0013 
0014 class ActsGeometryProvider;
0015 
0016 class ACTSGeo_service : public JService {
0017 public:
0018   ACTSGeo_service(JApplication* app) : m_app(app) {}
0019   virtual ~ACTSGeo_service();
0020 
0021   virtual std::shared_ptr<const ActsGeometryProvider> actsGeoProvider();
0022 
0023 protected:
0024 private:
0025   ACTSGeo_service() = default;
0026   void acquire_services(JServiceLocator*) override;
0027 
0028   std::once_flag m_init_flag;
0029   JApplication* m_app                 = nullptr;
0030   const dd4hep::Detector* m_dd4hepGeo = nullptr;
0031   std::shared_ptr<ActsGeometryProvider> m_acts_provider;
0032 
0033   // General acts log
0034   std::shared_ptr<spdlog::logger> m_log;
0035 };