Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-15 08:17:51

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 <spdlog/logger.h>
0010 #include <memory>
0011 #include <mutex>
0012 
0013 class ActsGeometryProvider;
0014 
0015 class ACTSGeo_service : public JService {
0016 public:
0017   ACTSGeo_service(JApplication* app) : m_app(app) {}
0018   virtual ~ACTSGeo_service();
0019 
0020   virtual std::shared_ptr<const ActsGeometryProvider> actsGeoProvider();
0021 
0022 protected:
0023 private:
0024   ACTSGeo_service() = default;
0025   void acquire_services(JServiceLocator*) override;
0026 
0027   std::once_flag m_init_flag;
0028   JApplication* m_app                 = nullptr;
0029   const dd4hep::Detector* m_dd4hepGeo = nullptr;
0030   std::shared_ptr<ActsGeometryProvider> m_acts_provider;
0031 
0032   // General acts log
0033   std::shared_ptr<spdlog::logger> m_log;
0034 };