StandardGeometryHelperGAr.h
Go to the documentation of this file.
1 /**
2  * @file StandardGeometryHelperGAr.h
3  * @brief Geometry helper service for detectors with strictly standard mapping
4  * @author rs@fnal.gov
5  *
6  * Handles detector-specific information for the generic Geometry service
7  * within GArSoft. Derived from the ExptGeoHelperInterface class. This version
8  * provides strictly standard functionality
9  */
10 
11 #ifndef GEO_StandardGeometryHelperGAr_h
12 #define GEO_StandardGeometryHelperGAr_h
13 
14 // GArSoft libraries
15 #include "Geometry/ExptGeoHelperInterface.h"
16 
17 // C/C++ standard libraries
18 #include <memory> // std::shared_ptr<>
19 
20 // Declaration
21 //
22 namespace gar
23 {
24  namespace geo
25  {
26  /**
27  * @brief Simple implementation of channel mapping
28  *
29  * This ExptGeoHelperInterface implementation serves a ChannelMapStandardAlg
30  * for experiments that are known to work well with it.
31  */
33  {
34  public:
35 
36  /// Constructor; follows the standard art service signature
38  ( fhicl::ParameterSet const & pset, ::art::ActivityRegistry &reg );
39 
40  /*
41  Public interface for ExptGeoHelperInterface (for reference purposes)
42 
43  Configure, initialize and return the channel map:
44 
45  void ConfigureChannelMapAlg
46  (fhicl::ParameterSet const& sortingParameters, geo::GeometryCore* geom);
47 
48  Returns null pointer if the initialization failed:
49 
50  ChannelMapAlgPtr_t GetChannelMapAlg() const;
51  */
52 
53  private:
54 
55  virtual void doConfigureChannelMapAlg
56  (fhicl::ParameterSet const& sortingParameters, geo::GeometryCore* geom)
57  override;
58  virtual ChannelMapAlgPtr_t doGetChannelMapAlg() const override;
59 
61  (fhicl::ParameterSet const& segParameters, geo::GeometryCore* geom)
62  override;
63  virtual SegmentationAlgPtr_t doGetECALSegmentationAlg() const override;
64 
66  (fhicl::ParameterSet const& segParameters, geo::GeometryCore* geom)
67  override;
68  virtual SegmentationAlgPtr_t doGetMinervaSegmentationAlg() const override;
69 
71  (fhicl::ParameterSet const& segParameters, geo::GeometryCore* geom)
72  override;
73  virtual SegmentationAlgPtr_t doGetMuIDSegmentationAlg() const override;
74 
75  fhicl::ParameterSet fPset; ///< copy of configuration parameter set
76  std::shared_ptr<geo::seg::ChannelMapAlg> fChannelMap; ///< channel map algorithm
77  std::shared_ptr<geo::seg::SegmentationAlg> fECALSegmentationAlg; ///< ECAL Segmentation Alg
78  std::shared_ptr<geo::seg::SegmentationAlg> fMinervaSegmentationAlg; ///< Tracker Sc Segmentation Alg
79  std::shared_ptr<geo::seg::SegmentationAlg> fMuIDSegmentationAlg; ///< MuID Segmentation Alg
80 
81  };
82 
83  }
84 } // end gar
85 
87 
88 #endif // GEO_StandardGeometryHelperGAr_h
DECLARE_ART_SERVICE_INTERFACE_IMPL(MySharedService, art::test::MyServiceInterface, SHARED) DEFINE_ART_SERVICE_INTERFACE_IMPL(MySharedService
std::shared_ptr< const seg::ChannelMapAlg > ChannelMapAlgPtr_t
std::shared_ptr< const seg::SegmentationAlg > SegmentationAlgPtr_t
fhicl::ParameterSet fPset
copy of configuration parameter set
Description of geometry of one entire detector.
Definition: GeometryCore.h:436
std::shared_ptr< geo::seg::SegmentationAlg > fECALSegmentationAlg
ECAL Segmentation Alg.
virtual void doConfigureMuIDSegmentationAlg(fhicl::ParameterSet const &segParameters, geo::GeometryCore *geom) override
Implementation of ConfigureECALSegmentationAlg (pure virtual)
std::shared_ptr< geo::seg::SegmentationAlg > fMinervaSegmentationAlg
Tracker Sc Segmentation Alg.
Interface to a service with detector-specific geometry knowledge.
virtual ChannelMapAlgPtr_t doGetChannelMapAlg() const override
Returns the ChannelMapAlg.
virtual SegmentationAlgPtr_t doGetMinervaSegmentationAlg() const override
Returns the Tracker Sc SegmentationAlg.
Simple implementation of channel mapping.
virtual SegmentationAlgPtr_t doGetECALSegmentationAlg() const override
Returns the ECAL SegmentationAlg.
virtual void doConfigureChannelMapAlg(fhicl::ParameterSet const &sortingParameters, geo::GeometryCore *geom) override
Implementation of ConfigureChannelMapAlg (pure virtual)
StandardGeometryHelperGAr(fhicl::ParameterSet const &pset,::art::ActivityRegistry &reg)
Constructor; follows the standard art service signature.
virtual void doConfigureMinervaSegmentationAlg(fhicl::ParameterSet const &segParameters, geo::GeometryCore *geom) override
Implementation of ConfigureECALSegmentationAlg (pure virtual)
virtual void doConfigureECALSegmentationAlg(fhicl::ParameterSet const &segParameters, geo::GeometryCore *geom) override
Implementation of ConfigureECALSegmentationAlg (pure virtual)
General GArSoft Utilities.
std::shared_ptr< geo::seg::SegmentationAlg > fMuIDSegmentationAlg
MuID Segmentation Alg.
virtual SegmentationAlgPtr_t doGetMuIDSegmentationAlg() const override
Returns the MuID SegmentationAlg.
std::shared_ptr< geo::seg::ChannelMapAlg > fChannelMap
channel map algorithm
LArSoft geometry interface.
Definition: ChannelGeo.h:16