All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PmtGainService.h
Go to the documentation of this file.
1 /**
2  * @file PmtGainService.h
3  * @brief Interface for experiment-specific service for pmt gain info
4  * @author Brandon Eberly (eberly@fnal.gov)
5  * @date August 30, 2015
6  */
7 
8 #ifndef PMTGAINSERVICE_H
9 #define PMTGAINSERVICE_H
10 
11 // Framework libraries
12 #include "art/Framework/Services/Registry/ServiceDeclarationMacros.h"
13 
14 //forward declarations
15 namespace lariov {
16  class PmtGainProvider;
17 }
18 
19 namespace lariov {
20 
21  /**
22  \class PmtGainService
23  This service provides only a simple interface to a provider class
24  */
26 
27  public:
29 
30  /// Destructor
31  virtual ~PmtGainService() = default;
32 
33  //retrieve provider
35  { return DoGetProvider(); }
36 
38  { return DoGetProviderPtr(); }
39 
40  private:
41 
42  /// Returns a reference to the service provider
43  virtual PmtGainProvider const& DoGetProvider() const = 0;
44 
45  virtual PmtGainProvider const* DoGetProviderPtr() const = 0;
46 
47 
48 
49  }; // class PmtGainService
50 } // namespace lariov
51 
52 
53 DECLARE_ART_SERVICE_INTERFACE(lariov::PmtGainService, LEGACY)
54 
55 #endif
virtual PmtGainProvider const & DoGetProvider() const =0
Returns a reference to the service provider.
PmtGainProvider const & GetProvider() const
virtual ~PmtGainService()=default
Destructor.
PmtGainProvider const * GetProviderPtr() const
virtual PmtGainProvider const * DoGetProviderPtr() const =0