Juggler
Juggling algorithms and event processing using gaudi framework
IGeoSvc.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: LGPL-3.0-or-later
2 // Copyright (C) 2022 Whitney Armstrong
3 
4 #ifndef IGEOSVC_H
5 #define IGEOSVC_H
6 
7 #include <GaudiKernel/IService.h>
8 #include <unordered_map>
9 
10 namespace dd4hep {
11  class Detector;
12  class DetElement;
13  namespace rec {
14  class CellIDPositionConverter;
15  class Surface;
16  }
17 } // namespace dd4hep
18 
19 namespace Acts {
20  class TrackingGeometry;
21  class Surface;
22  class MagneticFieldProvider;
23 }
24 
25 namespace genfit {
26  class DetPlane;
27 }
28 
29 /** Geometry service interface.
30  *
31  * \ingroup base
32  * \ingroup geosvc
33  */
34 class GAUDI_API IGeoSvc : virtual public IService {
35 public:
36  using VolumeSurfaceMap = std::unordered_map<uint64_t, const Acts::Surface*>;
37 
38 public:
39  /// InterfaceID
41  // receive DD4hep Geometry
42  virtual dd4hep::DetElement getDD4HepGeo() = 0;
43  virtual dd4hep::Detector* detector() = 0;
44  virtual std::shared_ptr<const dd4hep::rec::CellIDPositionConverter> cellIDPositionConverter() const = 0;
45  virtual std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry() const = 0;
46 
47  virtual std::shared_ptr<const Acts::MagneticFieldProvider> getFieldProvider() const = 0;
48  virtual double centralMagneticField() const = 0;
49 
50  virtual const VolumeSurfaceMap& surfaceMap() const = 0;
51 
52  // Note this hsould return a const& but is just copied for the moment to get around genfit's api
53  /// Genfit DetPlane map
54  virtual std::map<int64_t, std::shared_ptr<genfit::DetPlane>> getDetPlaneMap() const = 0;
55  virtual std::map< int64_t, dd4hep::rec::Surface* > getDD4hepSurfaceMap() const =0;
56 
57  //virtual std::map< int64_t, dd4hep::rec::Surface* > getDetPlaneMap() const = 0 ;
58 
59  virtual ~IGeoSvc() {}
60 };
61 
62 #endif // IGEOSVC_H
IGeoSvc::getDD4HepGeo
virtual dd4hep::DetElement getDD4HepGeo()=0
IGeoSvc::~IGeoSvc
virtual ~IGeoSvc()
Definition: IGeoSvc.h:59
genfit
Definition: IGeoSvc.h:25
IGeoSvc::getDD4hepSurfaceMap
virtual std::map< int64_t, dd4hep::rec::Surface * > getDD4hepSurfaceMap() const =0
IGeoSvc::VolumeSurfaceMap
std::unordered_map< uint64_t, const Acts::Surface * > VolumeSurfaceMap
Definition: IGeoSvc.h:36
IGeoSvc::detector
virtual dd4hep::Detector * detector()=0
IGeoSvc
Definition: IGeoSvc.h:34
IGeoSvc::cellIDPositionConverter
virtual std::shared_ptr< const dd4hep::rec::CellIDPositionConverter > cellIDPositionConverter() const =0
IGeoSvc::getFieldProvider
virtual std::shared_ptr< const Acts::MagneticFieldProvider > getFieldProvider() const =0
IGeoSvc::surfaceMap
virtual const VolumeSurfaceMap & surfaceMap() const =0
dd4hep
Definition: IGeoSvc.h:10
IGeoSvc::DeclareInterfaceID
DeclareInterfaceID(IGeoSvc, 1, 0)
InterfaceID.
IGeoSvc::trackingGeometry
virtual std::shared_ptr< const Acts::TrackingGeometry > trackingGeometry() const =0
IGeoSvc::centralMagneticField
virtual double centralMagneticField() const =0
IGeoSvc::getDetPlaneMap
virtual std::map< int64_t, std::shared_ptr< genfit::DetPlane > > getDetPlaneMap() const =0
Genfit DetPlane map.
Acts
Definition: MaterialWiper.hpp:20