LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
ExptGeoHelperInterface.h
Go to the documentation of this file.
1 
21 
22 #ifndef GEO_ExptGeoHelperInterface_h
23 #define GEO_ExptGeoHelperInterface_h
24 
25 
26 // framework libraries
28 #include "fhiclcpp/ParameterSet.h"
29 
30 // C/C++ standard libraries
31 #include <memory> // std::shared_ptr<>
32 #include <vector>
33 
34 
35 // prototypes of geometry classes
36 namespace geo
37 {
38  class ChannelMapAlg;
39  class GeometryCore;
40 }
41 
42 namespace geo
43 {
44 
62  {
63  public:
64  using ChannelMapAlgPtr_t = std::shared_ptr<const ChannelMapAlg>;
65 
67  virtual ~ExptGeoHelperInterface() = default;
68 
80  (fhicl::ParameterSet const & sortingParameters, geo::GeometryCore* geom);
81 
86 
87  private:
88 
90  virtual
92  fhicl::ParameterSet const & sortingParameters, geo::GeometryCore* geom
93  ) = 0;
94 
96  virtual
98 
99  }; // end ExptGeoHelperInterface class declaration
100 
101 
102 
103  //-------------------------------------------------------------------------------------------
104 
105  inline
107  (fhicl::ParameterSet const& sortingParameters, geo::GeometryCore* geom)
108  {
109  doConfigureChannelMapAlg(sortingParameters, geom);
110  }
111 
112  inline
115  {
116  return doGetChannelMapAlg();
117  }
118 }
119 
121 
122 #endif // GEO_ExptGeoHelperInterface_h
123 
ChannelMapAlgPtr_t GetChannelMapAlg() const
Interface to a service with detector-specific geometry knowledge.
std::shared_ptr< const ChannelMapAlg > ChannelMapAlgPtr_t
virtual ~ExptGeoHelperInterface()=default
Virtual destructor; does nothing.
virtual ChannelMapAlgPtr_t doGetChannelMapAlg() const =0
Returns the ChannelMapAlg.
Description of geometry of one entire detector.
void ConfigureChannelMapAlg(fhicl::ParameterSet const &sortingParameters, geo::GeometryCore *geom)
Configure and initialize the channel map.
#define DECLARE_ART_SERVICE_INTERFACE(svc, scope)
Definition: ServiceMacros.h:99
Namespace collecting geometry-related classes utilities.
virtual void doConfigureChannelMapAlg(fhicl::ParameterSet const &sortingParameters, geo::GeometryCore *geom)=0
Implementation of ConfigureChannelMapAlg (pure virtual)