Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-07-03 07:05:27

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