Belle II Software  release-05-02-19
FilterFactory.dcl.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/filters/base/FilterFactory.fwd.h>
13 
14 #include <map>
15 #include <string>
16 #include <memory>
17 
18 namespace Belle2 {
23  namespace TrackFindingCDC {
24 
26  template<class AFilter>
27  class FilterFactory {
28 
29  public:
31  using CreatedFilter = AFilter;
32 
33  public:
35  FilterFactory(const std::string& defaultFilterName = "");
36 
38  virtual ~FilterFactory();
39 
40  public:
42  virtual std::string getIdentifier() const = 0;
43 
45  virtual std::string getFilterPurpose() const = 0;
46 
48  virtual std::map<std::string, std::string> getValidFilterNamesAndDescriptions() const = 0;
49 
55  virtual std::unique_ptr<AFilter> create(const std::string& filterName) const;
56 
58  virtual std::string createFiltersNameDescription() const;
59 
61  virtual std::string createFiltersParametersDescription() const;
62 
63  public:
65  const std::string& getDefaultFilterName() const;
66 
67  private:
69  std::string m_defaultFilterName;
70  };
71  }
73 }
Belle2::TrackFindingCDC::FilterFactory::~FilterFactory
virtual ~FilterFactory()
Make destructor of interface class virtual.
Belle2::TrackFindingCDC::FilterFactory::create
virtual std::unique_ptr< AFilter > create(const std::string &filterName) const
Create a filter with the given name, does not set filter specific parameters.
Definition: FilterFactory.icc.h:54
Belle2::TrackFindingCDC::FilterFactory::FilterFactory
FilterFactory(const std::string &defaultFilterName="")
Fill the default filter name values.
Definition: FilterFactory.icc.h:45
Belle2::TrackFindingCDC::FilterFactory::createFiltersNameDescription
virtual std::string createFiltersNameDescription() const
Create a string with a description mentioning the names of the chooseable filter.
Definition: FilterFactory.icc.h:96
Belle2::TrackFindingCDC::FilterFactory::getIdentifier
virtual std::string getIdentifier() const =0
Getter for a short identifier of the factory. Currently unused.
Belle2::TrackFindingCDC::FilterFactory::CreatedFilter
AFilter CreatedFilter
Type of the filter that this factory creates.
Definition: FilterFactory.dcl.h:39
Belle2::TrackFindingCDC::FilterFactory::getDefaultFilterName
const std::string & getDefaultFilterName() const
Legacy - Return the default filter suggested by the factory.
Definition: FilterFactory.icc.h:156
Belle2::TrackFindingCDC::FilterFactory::m_defaultFilterName
std::string m_defaultFilterName
Legacy - Default filter name suggested by this factory.
Definition: FilterFactory.dcl.h:77
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::FilterFactory::createFiltersParametersDescription
virtual std::string createFiltersParametersDescription() const
Create a string with a description mentioning the parameters of the chooseable filter.
Definition: FilterFactory.icc.h:113
Belle2::TrackFindingCDC::FilterFactory::getValidFilterNamesAndDescriptions
virtual std::map< std::string, std::string > getValidFilterNamesAndDescriptions() const =0
Getter for the valid filter names and a description for each.
Belle2::TrackFindingCDC::FilterFactory::getFilterPurpose
virtual std::string getFilterPurpose() const =0
Getter for a descriptive purpose of the filter.